University of Ottawa, Canada's University Robert Laganière

CSI 2120 : Programming Paradigms

Description
Presentation of the major programming paradigms: object-oriented, concurrent, imperative, logic, functional. Related programming languages, their essential properties and typical applications. Programming in imperative, object-oriented, concurent, logic and functional languages. Influence of programming paradigms on problem solving and program design strategies.

Professor
Robert Laganière
STE 5023
562-5800 poste 6707
laganier@eecs.uottawa.ca
http://www.site.uottawa.ca/~laganier

Online references
Outils
Évaluation
17% [EF] Midterm Exam*
27% [EF] Final Exam*
18% [ND] Assignments (3)
32% [PI] Comprehensive assignment (4 parts)
6% [NL] Lab Participation**
* Attendance at the midterm and final exams is mandatory. The final evaluation mark will not overwrite the midterm mark(s). To pass this course you have to obtain at least 50% on your exams (midterm + final).
*** To evaluate your participation, you have to submit 1 Go lab, 1 Prolog lab and 1 Scheme lab.

Plan
Week Topic
1 Introduction and Object-oriented paradigm
2 Imperative programming wih Go
3,4,5 Concurrent programming wih Go
6 Overview of functional prohramming with Scheme
7 Midterm
8,9,10 Logic programming with Prolog
11 Functional programming with Scheme
12 Algorithms and data structures in Prolog and Scheme

Academic Fraud and Plagiarism
Any form of plagiarism or fraud including on an assignment or lab submissions will be reported. The TAs and myself are using software that identifies code similarity automatically.