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.
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:
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.)
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% (best 9 of 10) 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 it might take you several days to finish them.
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.