Table of Contents


General Information

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)

Announcements:

Watch the announcement page for homeworks, due dates for assignments, exam dates and locations, and the like.


Synopsis (adopted from the catalog):

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.


Overview:

This course has four goals:

Topics include:

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.


Reading List

Required Text Book

R. Sethi, Programming languages: concepts and constructs, 2nd ed., Addison Wesley, 1996

References

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


Coursework, Marking Scheme, and Policies

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.


Computing Facilities

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.


Distribution of Information

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.