| || |
In the course students will be introduced to principles and practices of object oriented software analysis, design, and programming using C++. The course will be delivered in two halves. The first half will focus on taking students from the basics of C++, through to objected oriented and generic programming. Topics covered will include (i) basic C++ syntax and program structure, (ii) primitive and abstract data-types, (iii) arrays, pointers, and dynamic memory management, (iv) object oriented programming (encapsulation, inheritance, polymorphism, etc.), and (v) generic programming and the STL. Note that the course assumes that students already have a good level of programming competency, but that they have not previously programmed in C++.
The second half will cover the general principles object oriented analysis and design (OOA/D) and in particular the application of design patterns in developing well-structured, extensible, and reusable software systems.