Undergraduate Course: Randomized Algorithms (INFR11201)
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  This course is about randomness as a resource in algorithms and computation. The course introduces basic mathematical models and techniques and applies them to the design and analysis of various randomized algorithms. We will also cover a variety of applications of probabilistic ideas and randomization in several areas of computer science. 
Course description 
1) Introduction, review of discrete probability, and elementary examples including randomized algorithms for checking identities, matrix multiplication verification, minimum cut in graphs.
2) Discrete Random Variables, Moments, Deviations and Tail Inequalities; applications, including the coupon collector problem.
3) Chernoff bounds and applications: random sampling and estimation of discrete distributions. The birthday paradox and applications.
4) The Probabilistic Method: random graphs and threshold phenomena. Maxcut approximation. Lovasz Local Lemma and application to boolean satisfiability.
5) Random Walks and Markov Chains: hitting and cover times; stationary distributions, random walks on undirected graphs.
6) The Monte Carlo Method; applications including sampling and approximate counting, the markov chain monte carlo method, the Metropolis algorithm.
7) Coupling of Markov Chains, mixing time, and applications, including card shuffling and sampling of graph colourings and independent sets.

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 is open to all Informatics students including those on joint degrees. For external students where this course is not listed in your DPT, please seek special permission from the course organiser.
A mathematical course with no programming.
Basic knowledge of (1) discrete probability and (2) algorithms is required. In particular, the students should have a good understanding of the following concepts:
(1) probability spaces and events, conditional probability and independence, random variables, expectations and moments, conditional expectation.
(2) asymptotic notation, basic sorting algorithms (Quicksort, Mergesort), basic graph algorithms (BFS, DFS, Dijkstra).
Some mathematical maturity is required, and concretely some basic background in the following:
 Linear Algebra
 Discrete Mathematics
 Probability
Secondly, some background in algorithms is required, roughly at the level of Informatics 2 Introduction to Algorithms and Data Structures (INFR08026), and preferably at the level of the 3rd year course, Algorithms and Data Structures (INFR10052). Some exposure to computational complexity theory (NP  completeness, etc.) would be desirable but is not required. 
Information for Visiting Students
Prerequisites  As above. 
High Demand Course? 
Yes 
Course Delivery Information

Academic year 2023/24, Available to all students (SV1)

Quota: None 
Course Start 
Semester 1 
Timetable 
Timetable 
Learning and Teaching activities (Further Info) 
Total Hours:
100
(
Programme Level Learning and Teaching Hours 2,
Directed Learning and Independent Learning Hours
98 )

Assessment (Further Info) 
Written Exam
80 %,
Coursework
20 %,
Practical Exam
0 %

Additional Information (Assessment) 
Exam 80%
Coursework 20%
You should expect to spend approximately 30 hours on the coursework for this course. 
Feedback 
Not entered 
Exam Information 
Exam Diet 
Paper Name 
Hours & Minutes 

Main Exam Diet S1 (December)  Randomized Algorithms (INFR11201)  2:00  
Learning Outcomes
On completion of this course, the student will be able to:
 understand and apply fundamental tools in discrete probability (e.g. expectation, concentration inequalities, the probabilistic method, random walks) toward the design and analysis of randomized algorithms
 understand randomized algorithms for selected combinatorial and graph problems
 analyze expected running time and error probabilities of randomized algorithms
 understand the fundamentals of Markov chains and their algorithmic applications
 apply Monte Carlo methods such as MCMC to some discrete algorithmic problems

Reading List
Probability and Computing: Randomized Algorithms and Probabilistic Analysis, by Michael Mitzenmacher and Eli Upfal. (Required)
Randomized Algorithms, by Rajeev Motwani and Prabhakar Raghavan. (Useful) 
Additional Information
Graduate Attributes and Skills 
Not entered 
Keywords  Not entered 
Contacts
Course organiser  Dr Raul GarciaPatron Sanchez
Tel: (0131 6)50 2692
Email: rgarcia3@exseed.ed.ac.uk 
Course secretary  Miss Yesica Marco Azorin
Tel: (0131 6)505113
Email: ymarcoa@ed.ac.uk 

