The study of algorithms is a fundamental aspect of computing. This unit of study covers data structures, algorithms, and gives an overview of the main ways of computational thinking from simple list manipulation and data format conversion, up to shortest paths and cycle detection in graphs. Students will gain essential knowledge in computer science, including basic concepts in data structures, algorithms, and intractability, using paradigms such as dynamic programming, divide and conquer, greed, local search, and randomisation, as well NP-hardness.
Through semester assessment (40%) and Final Exam (60%)
This unit of study assumes that students have general knowledge of mathematics (especially Discrete Math) and problem solving. Having moderate knowledge about Data structures can also help students to better understand the concepts of Algorithms taught in this course.