Final Examination: 60%
Supervised tutorials done in many computer labs, including Multimedia Design Lab,
Multimedia Computing Lab, etc. Tutorials are mostly programming tutorials, while a few involve application of theory in paper exercises.
The programming tutorials will be conducted using the GCC compiler in the LINUX operating system.
I. Chai & J. D. White, “Structuring Data and Building Algorithms”, McGraw-Hill Education (Asia), 2009, ISBN 978-007-127188-2. (Textbook)
Kruse, Tondo & Leong, “Data Structures and Program Design in C”, 2nd Edition, Prentice Hall, 1997.
Kingston, “Algorithms and Data Structures: Design, Correctness, Analysis”, 2nd Edition, Addison-Wesley, 1997.
Theory of Computing
Finite state automata, Turing machines.
Variables, pointers, arrays, records, linked lists, trees, graphs, sets. Stacks, queues. Implementation using arrays, linked lists, etc. Traversal of binary trees.
Basic techniques, such as recursion, mutual recursion, backtracking and look-ahead. Key concepts in qualifying algorithms in terms of asymptotic performance, such as time complexity, Big-O.