CS3335 Design and Analysis of Algorithms

Course Aims & Objectives:
This course aims to introduce the classic algorithms in various domains, and techniques for designing efficient algorithms..

Upon completion of this course the student should be able to:

1.    apply the algorithms and design techniques to solve problems;
2.    have a sense of the complexities of various problems in different domains.

Units:
3

Level: B3

Medium of Instruction:  English 

Keyword Syllabus:
Algorithm analysis. Algorithm design : divide-and-conquer approach, greedy approach. Graph algorithms : graph searching, topological sort, minimum spanning tree, shortest paths, backtracking and its applications in games. String matching. Dynamic programming and longest common subsequence. Theory of NP-completeness. Turing machines and the halting problem. Introduction to computational complexity.

Teaching Pattern:
Duration of course: 1 semester
Current mix of lecture/tutorial/laboratory, other: 2 hrs. lecture; 1 hr. tutorial.

Assessment Pattern:
Examination duration: 2 hours
Percentage distribution of marks for coursework, examination, other: 30% CW; 70% Exam
Grading pattern: Standard (A+AA-...F)
For a student to pass the course, at least 30% of the maximum mark for the examination must be obtained.

Pre-requisite(s): Nil

Pre-cursor(s):
CS2302 /or
CS2364 Data Structures and Algorithms /or
CS2468 /or
CS3334 /or
EE2331 /or equivalent

Equivalent Course(s): Nil

Related Links
Department of Computer Science