Learning Outcomes:
On successful completion of this module, a student will be able to:
1. Write a program to solve a specific problem
2. Use basic tools common to software engineering such as compiling and linking of multiple source files into a single executable
3. Recognise and interpret the purpose of a piece of C code
4. Carry out an analytical comparison of the computational complexity of two algorithms which solve the same problem
5. Use advanced data structures such as linked lists and stacks.