Aims of this module are that despite the popularity of newer languages such as Java and Python, C and C++ languages remain core skills in the software business, ranking in the top ten desired skills. For example, C is one of the most popular languages for programming embedded systems that are found in automobiles, cameras, DVD players and many other modern appliances, and C++ is often used in writing compilers for other software as well as software applications requiring user interactions.
This module aims to enable students to:
1. Learn the syntax and structuring of the C and C++ programming languages
2. Use the C and C++ languages to solve real engineering problems
3. Acquire fundamental software development skills covering program design, coding and testing
A. Demonstrate knowledge and understanding of the basic principles of the C programming language;
B. Demonstrate knowledge and understanding of the basic role and function of hardware and software components of a computer;
C. Design, code, debug, test and document computer programs written in the ANSI C language to meet requirements supplied in a specification;
D. Demonstrate knowledge and understanding of software design in an object-oriented approach by programming in C++;
E. Demonstrate knowledge and understanding of the software development process
The teaching philosophy of the module follows very much the philosophy of Syntegrative Education. This has meant that the teaching delivery pattern, which follows more intensive block teaching, allows more meaningful contribution from industry partners. This philosophy is carried through also in terms of assessment, with reduction on the use of exams and increase in coursework, especially problem-based assessments that are project focused. The delivery pattern provides space in the semester for students to concentrate on completing the assessments.
This module is delivered with a combination of delivery in lectures, seminar as well as computer laboratory.
The concepts introduced during the lecture are illustrated using step-by-step analysis of example code, complete case studies and live programming tutorials. Each week the students have to solve a set of exercises during the laboratory classes and submit the completed work electronically.
The students are assisted during the practical laboratory classes by demonstrators.