Fall 2017

CSI2372 Advanced Programming Concepts with C++


General and Specific Objectives of the Course

The course will give students a comprehensive introduction into C++ and reinforce programming skills gained with Java, Python or C. The emphasis of the course is on modern use of C++ using object-oriented, imperative, generic and functional programming paradigms. Successful students will be able to design and implement reasonably complex applications in C++.

Calendar Description

Differences between C++ and Java programming. C++ data types. Pointers and memory management. Object oriented programming in C++. File and stream I/O. Preprocessor macros. Templates and the Standard Template Library. Numerical computation in C++. Interfacing with hardware. Engineering applications.

Course Prerequisites

ITI1121, ITI1100 See the official descripton in the University of Ottawa calendar.

Teaching Methods and Student Expectations

The course material will be covered in lectures, labs and tutorials. Additional resources in form of textbooks and on-line references are listed below. Attendance of and participation in lectures, labs and tutorials is mandatory. The course will be using group work and interactive student feedback using a web clicker. You must register for an account (details to follow on virtual campus) and answer questions during lectures. Although this is motivated by wanting to help you to learn and to retain the material better (and hopefully enjoy learning it more), it is also used to determine if you complied with the Faculty of Engineering rule of minimum attendance of 80% of lectures.


Student Evaluation

Student evaluation will be based on a midterm mark (better of two midterms written) and final exam as well as five short assignments and a course project, see the marking scheme of the course for details.

Course Topics and Readings

Course notes will be made available through Virtual Campus, see a tentative list of topics with relevant chapters of the textbook.

Selected On-line Resources


Back to CSI2372
© Jochen Lang