CSC108H (St George, Winter 2018): Introduction to Computer Programming


[Jacqueline Smith]
Jacqueline Smith
L0101, L9901 (online)
BA 4262
Office hours
[Paul Gries]
Paul Gries
L0301, L5101, L0201 (self-paced)
BA 4234
Office hours

Just dropped down from CSC148? Didn't manage to enroll? Click here.

Welcome to the course webpage for the Winter 2018 term of CSC108H, an Introduction to Computer Programming, on the St. George campus. This course teaches the basics of programming in Python, which is an industrial-strength programming language used at companies like Google and Industrial Light and Magic.

You will find most information about the course on this page, or linked to from this page. This website is required reading for the course. Course Announcements will be sent using Portal, and we expect that you will regularly check both Portal and your UofT email.

There are five lecture sections of this course with two different instructors: Jacqueline and Paul. You are welcome to attend office hours with any of us.

Jacqueline is the course coordinator, which means that she deals with all administrative matters: missed work, problems with your grades, problems with assignment partners, the course website, and TA issues. If you're not sure who to contact, though, feel free to ask either of us!

On-campus vs. online vs. mastery-based

Three sections (L0101, L0301, and L5101) are on campus and are delivered through 3 lecture hours a week. For weeks 2 through 12, you will also watch video lectures to prepare for the on-campus lectures.

One section (L9901) is online (except for the final exam) and has additional online exercises in lieu of the on-campus lectures. You can find some advice here on choosing between the online section versus an on-campus section of CSC108.

One section (L0201) is mastery-based and has a different format than the other sections. You can find out more about the mastery-based section here, and you'll also learn more when you attend your first lecture. Students in the mastery-based section will find their course materials in Portal, instead of on this webpage.

Outside of class, all on-campus and online students will do weekly exercises, 3 assignments, a midterm test, and a final exam.


The course textbook is Practical Programming: An Introduction to Computer Science Using Python 3. The third edition was just released at the end of December, so the UofT bookstore only has copies of the second edition.

If you prefer an eBook (about $27 USD; available in PDF, ePub, and mobi) or wish to we recommend Practical Programming (third edition): An Introduction to Computer Science Using Python 3. You can also order the paper version there.

If you prefer a paper copy, the 2nd edition (at the UofT bookstore) is fine for this course — we used it last semester.

The books is also available on Amazon and other resellers.

The textbook is optional. We will point out which sections of the book are applicable each week on the Lectures page.

A typical week: Prepare, Rehearse, Perform

Each week, you'll use the an online tool called the Programming Course Resource System (PCRS) to view course materials and complete exercises. The weekly tasks are divided into three phases:

The three assignments are due in weeks 4, 8, and 12. Don't leave these to the last minute: they are substantially more work than the weekly lab exercises, and we expect that it might take you several days to finish them.

Getting help

In addition to this website, please see the Syllabus, which is required reading.

We will use an online discussion forum for general class discussion. Follow the link in the navigation bar.

For office hours, please see Office hours.

For general inquiries regarding the undergraduate computer science program, please contact the Computer Science Undergraduate Office.