The purpose of this course is to introduce students to various techniques in Algorithms Design.
Algorithms is a key engine of modern computer science. This course will give you important algorithmic and mathematical tools for handling modern challenges in computing. We will start with basic principles and will delve into advanced algorithmic tools where you will get to learn, for instance, how to deal with intractability, uncertainty, and (time permitting) big data.
We will focus on rigorous analysis of algorithms, i.e., we will try to understand mathematically why certain algorithms work (and sometimes why certain approaches will never work.)
The course is suitable for computer science students at all levels (bachelor, master and doctoral students) who seek to enhance their algorithmic, mathematical and analytical toolboxes in computer science.
Parinya Chalermsook (Responsible professor)
Ameet Gadekar (Teaching assistant)
Nidia Obscura Acosta (Teaching Assistant)
Ly Orgo (Teaching assistant)
Andreas Schmid (Teaching assistant)
Denis Sedov (Teaching assistant)
INTENDED LEARNING OUTCOMES
- Analysis: Students are able to formally (or mathematically) argue about the efficiency and correctness of an algorithm.
- Design: Students are able to design algorithms using basic algorithmic paradigms.
- Modelling: Students are able to model real-world problems formally as computational problems.
Implementation of algorithms is considered a bonus. Students will get bonus points if they are able to show great implementation abilities.
Remark: This is not the best course to sharpen your programming skills. We focus here more on practicing how to think systematically and scientifically about algorithms. For more hands-on programming courses, you may want to consider competitive programming.
CLASS SESSIONS AND EXPECTATIONS
Ideally (but not necessarily), you are expected to attend
- 8 Overview Lectures: Each lecture is 2-hour long. Check the schedules for detail. The purpose of the lectures is NOT to provide a detailed account of course materials but rather to introduce students to the topics so as to facilitate student's independent studies.
- 9 Exercises: Submit class exercises and get feedbacks on your work. Check the schedules for detail.
- Final project report:
To be eligible to work on the project, at least 160 points must be obtained from exercises. A final report (need at least 160 points to submit) & 15-minute interview (at least 240 points to schedule an interview) with teaching staffs is required if you want to get grade 5. A final report should be 5-page and can be either a theoretical or implementation project.
There will be no exam.
Each exercise set is worth 40 points (360 points in total). The final project is worth 120 points.
- Grade 5. 240 points from exercises&bonus + 60 from the project
- Grade 4. 240 points in total
- Grade 3. 200 points in total
- Grade 2. 160 points from exercises & bonus
- Grade 1. 120 points from exercises & bonus
Additionally, in each exercise session that you attend, you will have an opportunity to submit a small exercise set for 5 bonus points.