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)
After completing this lecture, students will be able to:
- Think of any problem in terms of algorithms
- Use advanced data structures, and algorithms
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
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.
100% - 90% = Excellent
90% - 76% = Good
75% - 61% = Satisfactory
60% - 50% = Sufficient
49% - 0% = Insufficient
A level of expertise in a programming language (C++, Python, or Java)