In this unit of study, elementary methods for developing robust, efficient, and re-usable software will be covered. The unit is taught in C, in a Unix environment. Specific coding topics include memory management, the pragmatic aspects of implementing data structures such as lists and hash tables and managing concurrent threads. Debugging tools and techniques are discussed and common programming errors are considered along with defensive programming techniques to avoid such errors. Emphasis is placed on using common Unix tools to manage aspects of the software construction process, such as version control and regression testing. The subject is taught from a practical viewpoint and it includes a considerable amount of programming practice.
through semester assessment (50%), final exam (50%)
INFO1113 OR INFO1105 OR INFO1905 OR INFO1103Co-requisites
COMP2123 OR COMP2823 OR INFO1105 OR INFO1905Prohibitions