Competitive Programming

Course Description

Competitive programming is the course in which students will learn how to apply algorithms in order to solve complex problems. The goal of this course is to teach students how to apply familiar algorithms to non-intuitive problems.

General Competencies

Competitive programming is the course in which students will learn how to apply algorithms in order to solve complex problems. The goal of this course is to teach students how to apply familiar algorithms to non-intuitive problems.

Learning Outcomes

  1. describe how algorithmic problems are solved
  2. recognize the time and memory complexity of an algorithm or a structure
  3. explain the concrete algorithms and data structures
  4. analyze the given problem and recognize subproblems
  5. apply the knowledge on a wider set of problems
  6. assemble the solutions of subproblems to solve the whole problem
  7. assess advantages and shortcomings of different algorithms

Forms of Teaching

Lectures

Exams

Grading Method

Continuous Assessment Exam
Type Threshold Percent of Grade Comment: Percent of Grade
Homeworks 0 % 20 % 0 % 0 %
Mid Term Exam: Written 0 % 40 % 0 %
Final Exam: Written 0 % 40 %
Exam: Written 0 % 100 %
Comment:

No grades, students either pass or fail.

Week by Week Schedule

  1. Introduction lecture.
  2. Graph theory.
  3. Searching algorithms.
  4. Searching algorithms.
  5. Advanced data structures.
  6. Advanced data structures.
  7. Number theory and linear algebra.
  8. Number theory and linear algebra.
  9. Dynamic programming.
  10. Dynamic programming.
  11. Hashing.
  12. Hashing.
  13. Sweep line.
  14. Heuristics.
  15. Heuristics.

Study Programmes

University undergraduate
Computer Engineering (module)
Skills (5. semester)
Computer Science (module)
Skills (5. semester)
Computing (study)
Skills (3. semester)
Control Engineering and Automation (module)
Skills (5. semester)
Electrical Engineering and Information Technology (study)
Skills (3. semester)
Electrical Power Engineering (module)
Skills (5. semester)
Electronic and Computer Engineering (module)
Skills (5. semester)
Electronics (module)
Skills (5. semester)
Information Processing (module)
Skills (5. semester)
Software Engineering and Information Systems (module)
Skills (5. semester)
Telecommunication and Informatics (module)
Skills (5. semester)
Wireless Technologies (module)
Skills (5. semester)
University graduate
Computer Engineering (profile)
Skills (1. semester)
Computer Science (profile)
Skills (1. semester)
Control Engineering and Automation (profile)
Skills (1. semester)
Electrical Engineering Systems and Technologies (profile)
Skills (1. semester)
Electrical Power Engineering (profile)
Skills (1. semester)
Electronic and Computer Engineering (profile)
Skills (1. semester)
Electronics (profile)
Skills (1. semester)
Information Processing (profile)
Skills (1. semester)
Software Engineering and Information Systems (profile)
Skills (1. semester)
Telecommunication and Informatics (profile)
Skills (1. semester)
Wireless Technologies (profile)
Skills (1. semester)

Literature

Thomas H. Cormen, Charles E. Leiserson (2001.), Introduction to Algorithms, 2/e, The MIT Press; 2nd edition
Robert Sedgewick (2002.), Algorithms in C++, Addison-Wesley Professional; 3 edition

Lecturers in Charge

Grading System

ID 65973
  Winter semester
4 ECTS
L1 English Level
L1 e-Learning
30 Lecturers
0 Exercises
30 Laboratory exercises

General

100 Excellent
90 Very Good
70 Good
50 Acceptable