Computing
CS209: Algorithms and Scientific Computing (5 ECTS)
This course covers algorithm design, analysis and implementation. The programming language used is PYTHON.
Taught in Semester(s) 1 and 2. Examined in Semester(s) 2.
Workload: 106 hours (24 Lecture hours, 24 Lab hours, 58 Self study hours).
Module Learning Outcomes.
On successful completion of this module the learner should be able to:
- calculate the computational complexity of simple algorithms;
- construct algorithms and corresponding code) for a number of sorting problems;
- given a number of solutions to a problem, determine which is computationally more efficient;
- write programs using both iteration and recursion;
- apply the technique of Dynamic Programming to solving particular problems.
Indicative Content
Constructing algorithms using various approaches: Recursion, Brute Force, Divide and Conquer, Dynamic Programming. Computational Complexity. Big Oh notation. The halting problem. Algorithms for sorting and searching. Graph based algorithms. Programming in Python.
Module Resources
- 'Introduction to Algorithms', Cormen, Leiserson, Rivest, Stein, MIT Press (3rd. Edition)
- 'Discrete Mathematics and its Applications', K. H. Rosen (4th. Edition)
Back