Please note! Course description is confirmed for two academic years (1.8.2018-31.7.2020), which means that in general, e.g. Learning outcomes, assessment methods and key content stays unchanged. However, via course syllabus, it is possible to specify or change the course execution in each realization of the course, such as how the contact sessions are organized, assessment methods weighted or materials used.
Having completed the course, you can define, compare and implement many fundamental data structures and algorithms. For instance, you understand how the most commonly used sorting algorithms such as insertion sort, mergesort and quicksort work and are familiar with the divide and conquer algorithm design approach. You know some data structures and algorithms based on trees. You understand how different set and map/dictionary data structures can be implemented either with trees or with hashing, and can compare their properties. You know the idea of dynamic programming and can apply it to some problems. You understand how elementary graph algorithms such as depth first search, breadth first search, and shortest path search algorithms work. You are aware that there are computational problems for which no efficient algorithms are known and can name some. You have implemented many of the above mentioned data structures and algorithms or their variants yourself. You master the basic terminology used in the domain and are able to independently study algorithms not covered in the course. You know basics of algorithm analysis and can, for instance, deduce the worst-case running time of a given algorithm in some simple cases.
Schedule: 10.09.2018 - 12.12.2018
Teacher in charge (valid 01.08.2020-31.07.2022): Tommi Junttila
Teacher in charge (applies in this implementation): Tommi Junttila
Contact information for the course (applies in this implementation):
CEFR level (applies in this implementation):
Language of instruction and studies (valid 01.08.2020-31.07.2022):
Teaching language: English
Languages of study attainment: English
CONTENT, ASSESSMENT AND WORKLOAD
Dynamic arrays, trees, hash tables, graphs and other data structures. Sorting and searching methods, dynamic programming, graph and other algorithms. Principles of algorithm analysis. Detailed contents will be described on the MyCourses page of the course instance.
Assessment Methods and Criteria
Personal online exercises. and examination.
Self-study and non-obligatory exercise sessions. Lectures, self-study and teaching in small groups, and examination.
Will be announced on the MyCourses page of the course.
CS-A1120 Programming 2 / ICS-A1120 Programming 2
SDG: Sustainable Development Goals
4 Quality Education
7 Affordable and Clean Energy
9 Industry, Innovation and Infrastructure
- Teacher: Tommi Junttila