1636 Computer Programming Lab
Anton Yeshchenko, M.Sc.Ph.D.
Contact details
Weekly hours
Language of instruction
09/01/21 to 10/01/21
Registration via LPIS
Notes to the course
Subject(s) Bachelor Programs
Day Date Time Room
Tuesday 10/12/21 09:00 AM - 11:30 AM D2.0.025 Workstation-Raum
Thursday 10/14/21 09:00 AM - 11:30 AM D2.0.025 Workstation-Raum
Tuesday 10/19/21 09:00 AM - 11:30 AM D2.0.025 Workstation-Raum
Thursday 10/21/21 09:00 AM - 11:30 AM D2.0.025 Workstation-Raum
Thursday 10/28/21 09:00 AM - 11:30 AM D2.0.025 Workstation-Raum
Tuesday 11/02/21 09:00 AM - 11:30 AM D2.0.025 Workstation-Raum
Thursday 11/04/21 09:00 AM - 11:30 AM D2.0.025 Workstation-Raum
Tuesday 11/09/21 09:00 AM - 11:30 AM D2.0.025 Workstation-Raum
Thursday 11/11/21 09:00 AM - 11:30 AM D2.0.025 Workstation-Raum

The course is about algorithms and data structures, that would be the basic course on any computer science program, or any tech-interview.


You will be challenged on the way to think about problems in real world and computing, touching next topics:

  1. Binary search, big O (complexity)
  2. Selection sort, Array, linked lists
  3. Recursion, Memoization
  4. Quicksort, divide and conquer
  5. Breadth first search, depth first search, graphs,
  6. Directed graphs, weighted graphs, Dijkstra algo
  7. Greedy algorithms
  8. Dynamic algorithms (optional)
  9. K nearest neighbours (optional)
  10. Strings algorithms (optional)

Learning outcomes

After completing this lecture, students will be able to: 

  •    Think of any problem in terms of algorithms
  •  Use advanced data structures, and algorithms 


Attendance requirements

Attendance is mandatory. 
In order to pass this course, students are required to have an attendance of at least 80%. It is therefore allowed to miss max. 2 classes

Every missed lecture is - (minus) 5% potential percent of your grade in active participation and in-class exercises

Teaching/learning method(s)

Short presentations of algorithms and algorithmic thinking rich with exercises and tasks on logic.


8pt - Active class participation
        - Regular attendance, taking part in discussions, actively working on various programming tasks during the lecture. 

32pt - In class exercises
        - Algorithm exercises solved during the class

40pt - Homework
        - Programming exercises
20pt - Final exam (20-30 min)

   - on the last lecture exam about all covered in the course in the written form.

Grading scale: 

100% - 90% = Excellent
90% - 76% = Good
75% - 61% = Satisfactory 
60% - 50% = Sufficient
49% - 0% = Insufficient

Prerequisites for participation and waiting lists
  • Registration in LPIS (first-come, first-serve)
  • Attendandce on the first lecture (Unless the absence was communicated via email in advance)
    • If you do not attend the first lecture, your place will be given to other students on the waiting list

Prior knowledge:

  • The students are expected to have programming skills in a programming language (e.g. C++, Python, Java...). In case there is a doubt on programming skills, at least the level of  the graduate from the "Principles of Programming" course is strongly expected. If you do not have any programming prior knowledge, please start with the course mentioned above. The course will give exercises and examples in the Python programming language.
  • Interest in logical thinking, computers, and algorithms.



Recommended previous knowledge and skills

A level of expertise in a programming language (C++, Python, or Java)


Availability of lecturer(s)


Additional information on MyLEARN.

Course materials will be discussed in class and published after the class has started.

Last edited: 2021-06-14