Undergraduate Course: Algorithmic Foundations of Data Science (INFR11156)
Course Outline
School  School of Informatics 
College  College of Science and Engineering 
Credit level (Normal year taken)  SCQF Level 11 (Year 4 Undergraduate) 
Availability  Available to all students 
SCQF Credits  10 
ECTS Credits  5 
Summary  The course aims to introduce algorithmic techniques that form the foundations of processing and analysing massive datasets of various forms. In particular, the course discusses how to preprocess massive datasets, efficiently store massive datasets, design fast algorithms for massive datasets, and analyse the performance of designed algorithms. Through various examples and the coursework, the students will see applications of the topics discussed in class in other areas of computer science, e.g., machine learning, and network science. 
Course description 
The course is to discuss algorithmic techniques that form the foundations of processing and analysing massive datasets of various forms. Specific techniques covered in the course include effective representation of datasets, extracting useful information from a dataset based on algebraic tools, designing faster algorithms based on sampling and sketching techniques. Students in class will learn these techniques through intuitions, theoretical reasoning, and practical examples.
The syllabus includes:
Highdimensional spaces
Bestfit subspaces and singular value decomposition
Spectral algorithms for massive datasets
Data streaming algorithms
Clustering
Graph sparsification

Entry Requirements (not applicable to Visiting Students)
Prerequisites 
It is RECOMMENDED that students have passed
Algorithms and Data Structures (INFR10052)

Corequisites  
Prohibited Combinations  
Other requirements  This course has the following mathematics prerequisites:
1 Calculus: limits, sums, integration, differentiation, recurrence relations
2 Graph theory: graphs, digraphs, trees
3 Probability: random variables, expectation, variance, Markov's inequality, Chebychev's inequality
4 Linear algebra: vectors, matrices, eigenvectors and eigenvalues, rank
5 Students should be familiar with the definition and use of bigO notation, and must be comfortable both reading and constructing mathematical proofs using various methods such as proof by induction and proof by contradiction. 
Information for Visiting Students
Prerequisites  As above. 
High Demand Course? 
Yes 
Course Delivery Information
Not being delivered 
Learning Outcomes
On completion of this course, the student will be able to:
 demonstrate familiarity with fundamentals for processing massive datasets.
 describe and compare the various algorithmic design techniques covered in the syllabus to process massive datasets
 apply the learned techniques to design efficient algorithms for massive datasets
 apply basic knowledge in linear algebra and probability theory to prove the efficiency of the designed algorithm
 use an appropriate software to solve certain algorithmic problems for a given dataset

Reading List
The main textbook for the course is:
Avrim Blum, John Hopcroft, and Ravindran Kannan: Foundations of Data Science.
https://www.cs.cornell.edu/jeh/book.pdf 
Additional Information
Graduate Attributes and Skills 
As the outcome of the course, a student should be able to apply the learned mathematical knowledge to analyse and process massive datasets, and use these tools to solve algorithmic problems occurring in practice. 
Keywords  Machine Learning,Computer Science,Artificial Intelligence,Theoretical Computer Science 
Contacts
Course organiser  Dr He Sun
Tel: (0131 6)51 5622
Email: H.Sun@ed.ac.uk 
Course secretary  Mrs Helen Tweedale
Tel: (0131 6)50 2692
Email: Helen.Tweedale@ed.ac.uk 

