The key deliverables of this course are about:
- using various aspects of standard
C
programming language appropriately such as basic language constructs, Abstract Data Types, dynamic memory management, dynamic data structures, file management, and managing large projects containing multiple source files. - analysing and solving computing problems, develop suitable algorithmic solutions.
- employing good programing style, standards and practices.
- discussing software design and development strategies. Exploring underpinning concepts as related to practical projects using advanced programming techniques.
- implementing small to medium programs of varying complexity, using the most commonly used features of the C language, whilst also adhering to standard (ISO) language features.
- debugging skills, including identifying appropriate debugging tools.
- adapting programming experience and language knowledge to / from other programming language contexts.
Assignment 1: Develop a command-line Car Board Game.
- Display a menu with options: play game, student information and quit.
- To play game, users can select 1 of 3 Board layouts then start playing the game. Users enter commands to move car across the Board.
- See details of the game in the attachments on the side.
Assignment 2: Implement a command-line Address Book App.
- There are 3 address books of small - medium - large size to load into memory.
- The contacts in Address Book are stored in a Doubly Linked List, which is manually implemented inside the App.
- Users use commands to display the Addess Book in a table, select a contact in Address Book to display its details, insert a new contact, find a contact by name, delete a contact, sort and reverse the Address Book randomly or alphabetically, save new changes to file.
- Write makefile to dinamically compile the program.
In this course, I was learnt about advanced programming techniques and data structures such as Function Pointers, Linked List, Enum, Buffer Handling and Program Designs. There were also chances for critical thinking to come up with an algorithm solution for some requirements in the assignments. My programming and debugging skills were significantly improved thanks to this course.