| Instructor: | Iluju Kiringa |
| Email: | kiringai@cs.toronto.edu |
| Office Hours: | Monday 4-5pm and Thursday 3-4pm and by appointment |
| Office: | Sanford Fleming Building 4301E |
| Lectures: | Monday 3-4pm and Thursday 2-3pm |
| Tutorials: | Tuesday 2-3pm |
| Lab: | Monday 4-7pm, EA 109 |
| Notes Online: | Most material for this course is available here |
| Tutorials Online: | Most Tutorials for this course are available here |
| News Group: | You must read the CSC 326 newsgroup for announcements |
| Tutors: | Alexander Budanitsky (abm@qobi.ai.toronto.edu)(WB119) |
| Marcus Santos (marcus@jazz.db.toronto.edu)(GB405) | |
| Michal Aleksander Karczmarek (karczma@ecf.utoronto.ca)(Lab) | |
| Antonina Kolokova (kol@cs.toronto.edu)(Lab) | |
Watch the page for homeworks, due dates for assignments, exam dates and locations, and the like.
Study of programming styles and paradigms. Included are imperative, object-oriented, functional, and logic-based approaches. Languages that support these programming styles will be introduced. Languages treated in this course include C, C++, Scheme and Prolog.
This course has four goals:
Overview of procedural programming languages, parameter passing, procedure activation, data structures layout; data encapsulation, inheritance, and object-oriented programming using C++; recursion, second-order and functional programming using Scheme; notion of logic programming using Prolog.
R. Sethi, Programming languages: concepts and constructs, 2nd ed., Addison Wesley, 1996
R. Sebesta, Concepts of Programming Languages 3rd ed., Addison Wesley, 1993
B. Kernighan and D. Ritchie, The C Programming Language, 2nd ed., Prentice-Hall, 1991
S. Lippman, C++ Primer, 2nd ed., Addison-Wesley, 1992
B. Stroustrup, The C++ Programming Language, 2nd edition, Addison Wesley, 1993
Dybvig, The Scheme Programming Language, Prentice-Hall, 1987
Friedman, Scheme and the Art of Programming, MIT Press and McGraw-Hill, 1989
W. Clocksin and C. Mellish, Programming in Prolog, 4th ed., Springer-Verlag, 1994
The coursework consists of three assignments, a midterm and a final. The midterm exam is worth 35%. The three assignments are worth 25%. finally, the final exam is worth 40%.
Assignments are to be submitted electronically and are due at midnight of the due date. A grace period of 30 minutes is given. No further extensions are allowed. Penalty for late projects: 10% reduction per day up to 7 days (penalty calculated on actual assignment mark).
Extensions to assignment deadlines will only be granted for medical reasons. For that, you need to present an official doctor's note stating the period during which you are unable to do coursework .
Note that all assignments have to be turned in working correctly in order to receive a passing grade for the course. Please work on the assignments alone; avoid plagiarism which is a serious academic offense. It is a current practice to exchange ideas with fellow students, but your answers should be clearly formulated as your own.
The programming assignments will make use of the ECF Unix facilities. Although you may do your work at your home PC, all assignments should be uploaded and run on ECF machines in order to receive credit for them. Those unfamiliar with ECF should find information in http://www.ecf.toronto.edu/ecf useful.
Some of the course material will be available online. It will be announced in class when this material is available. It is your responsibility to obtain this information in the timely matter.
A course newsgroup, ut.ecf.csc326, will be installed and used as a forum for posting notices of general interest to the class. To read this newsgroup from ECF, type rn ut.ecf.csc326. To post to this newsgroup, mail to ut.ecf.csc326@ecf.