Winter 2018

CSI2120 Programming Paradigms



Study different paradigms to understand programming at a more abstract level for a better overall understanding, to realize that different problems, different challenges benefit from different approaches and to be able to chose the best paradigm and language for a new task. In addition, knowing many languages will help to learn new (future) languages.

Calendar Description:

Presentation of the major programming paradigms: object-oriented, imperative, logic, functional. Related programming languages, their essential properties and typical applications. Programming in imperative, logic and functional languages. Influence of programming paradigms on problem solving and program design strategies. An overview of other paradigms, such as constraint-based, rule-based and event-driven programming.

Student Expectations:

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.

Course Prerequisites:

CSI2110 See also the official description in the University of Ottawa calendar.


Recommended: General:

Student Evaluation

Student evaluation will be based on exams (a midterm and a final exam) as well as six assignments, 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 resources.

Selected On-line Resources:

Back to CSI2120
© Jochen Lang