Welcome to the course webpage for the Winter 2017 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 three lecture sections of this course with two different instructors: Tom and Paul. You are welcome to attend office hours with either of us.
Tom is the course coordinator, which means that he 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
Two sections (L0101 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 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.
The textbook, Practical Programming (2nd edition): An Introduction to Computer Science Using Python 3, matches very closely with the course material. Some notes:
- The first edition is out of date: it uses Python 2, not Python 3. Also, the material in the second edition is much, much closer to what we teach in this course.
- You can purchase an eBook or a paper book. eBook ($25 USD): available in PDF, ePub, and mobi.
- The book is also available from the UofT Bookstore and online retailers including amazon.ca.
- The textbook is optional, but we will post the sections of the book that 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:
- Prepare (5%)
We will post lecture videos and problems that cover the course topics for the upcoming week. After watching the videos and working through the problems, you must complete the Prepare exercise. Each Prepare exercise is worth 0.5% (best 10 of 11) and is due Sunday by 9:00pm.
Next, you will practice applying the concepts covered in the lecture videos by completing activities of various kinds and working through more complex examples.
During lecture, you'll practice the material with the support of your instructor and teaching assistants. (CSC108H is being run as an inverted class.)
- Online (L9901):
Using the PCRS, you'll practice the material with the support of explanatory videos, your instructor, and teaching assistants.
- Perform (9%) Finally, using the PCRS, you'll complete a Perform exercise based on material covered in the Prepare and Rehearse phases. Each Perform exercise is worth 1% and is due Friday by 6:00pm.
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 you will work on them for several hours each week.
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.