The purpose of the CS Track Core Course is to provide an overview of fundamental problems

in computer science, and introduce to the students some key computational techniques that have

broad applicability.

Course goals. The key goals of the course are as follows:

• Develop solid foundation about reasoning and thinking about computational problems.

• Algorithmic approaches for problems that are both fundamental in computer science and

broad enough to be applicable to other disciplines of research.

• Build a community within the students through mini-projects.

Course structure. The course will be sub-divided into three segments. Each segment will focus

on some key topic of computer science. Each segment will be of 4 weeks (8 lectures). The topic

of each segment will be announced by the instructor in advance, and it will be ensured that it is a

central topic in computer science as well as of broad relevance.

**Target group:** Students planning to affiliate in a CS group

**Prerequisites:** The topics of the course will be theoretical in nature and suitable for students with background in

CS undergraduate, or students with strong background in mathematics with some exposure to CS.

The prerequisites for the course are as follows:

• Undergraduate CS: basic knowledge of algorithms and programming.

• Basic knowledge in probability theory.

• Basic knowledge of CS complexity theory.

An excellent book on the prerequisites is Introduction to Algorithms by Thomas H. Cormen,

Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Some relevant chapters from the book

are Chapter 6-7 (Sorting), Chapter 10 (Elementary data structures), Chapter 15-16 (Algorithmic

techniques such as Dynamic programming), Section VI on Graph Algorithms, Chapter 29 (on Linear

programming), and Chapter 34 (Complexity). While all of the above are not strictly prerequisites,

basic knowledge about these concepts will definitely help.

**Evaluation:** The grading for the course will be done as follows:

• Homeworks: The homeworks will consist of solving theoretical exercises to provide hands-

on-experience to tackle theoretical problems and apply the techniques learnt in the course.

In addition there may be some programming assignments. The homework will be the major

aspect of the grading.

• Mini-projects: A part of the grading (in some segment) will consist of reading research papers in groups and presenting a write-up summary.

• Exam: In some segment a written/oral exam may be conducted.

The weight of the homework, project, exam will depend on the instructor of the segment,

and typically homeworks will be 60-100% of the grading. The instructor will present the precise

breakdown at the beginning of the respective segment.

**Teaching format:** Each segment will follow the same structure and will primarily consist of lectures

from the instructors. The lectures will be either blackboard lectures or slide presentation.

**ECTS:** 6 **Year:** 2020

**Track segment(s): ****CS-CORE** Computer Science - track core course

**Teacher(s): **

Dan Alistarh Krishnendu Chatterjee Vladimir Kolmogorov

**Teaching assistant(s): **

Djordje Zikelic

If you want to enroll to this course, please click: REGISTER

- Teacher: Dan-Adrian ALISTARH
- Teacher: Krishnendu CHATTERJEE
- Teacher: Vladimir KOLMOGOROV
- Teaching Assistant: Peter DAVIES
- Teaching Assistant: Martin DVORAK
- Teaching Assistant: Giorgi NADIRADZE
- Teaching Assistant: Djordje ZIKELIC