Authorised by Academic Registrar, April 1996
Objectives On completion of the subject students will be able to design, implement and debug simple computer programs using a variety of data structures and algorithms; have the ability to use a computer system and its tools such as editors and compilers; have some understanding from a practical viewpoint of how computers work.
Synopsis This subject will introduce a modern structured programming language with reference to a simple machine model. Concepts include solving problems computationally, algorithms, simple boolean algebra. Topics include (1) Control structures: statements, sequence, selection, iteration; (2) Programs: procedures, parameters, recursion; (3) Data structures: scalars, arrays, records, strings, files, pointers, lists; (4) Algorithms: insertion, deletion, merge, search, sorting (of various data structures); (5) Numerical computing: number representation, representational and arithmetic errors; (6) Software engineering principles: modularity, design, documentation, debugging; (7) Systems: sufficient overview of system and system software to enable programming to be practised in a realistic context.
Assessment Examination (3 hours): 70% + Compulsory assessed laboratory classes: 20% + Mid-semester test 10%