Basic algorithms and data structures: A systematic review of the concepts of abstract data types, stacks, queues, lists, trees, searching, sorting and recursion. Hashing, priority queues, search trees and problem trees, simple syntax analysis and regular expressions.
Algorithm analysis with regard to both efficiency and correctness. Correctness proofs.
Programming: software development methodology, software quality, abstraction, testing, standard libraries.
