CSC 104: The Why and How of Computing

University of Toronto, Fall 2011

If you are looking for the Spring 2011 version of this course you can find it here: Spring 2011


Tim Capes

Exam Review Section:

Exam Date and Time: Arts and Science Current Exam Schedule

As discussed in class I'm not able to post the exam date and time, but it is available in the Arts and Science Exam Schedule linked above.

The Exam Review Lecture Slides

The example python code from the review lecture

Exam Clarifications:

There are 120 total marks and 7 total questions. The 24 mark topic is divided into 2 questions.

Exam Review Office Hours:

Monday Dec 5th: 1 pm to 5pm, William Zhang, BA2210
Wednesday Dec 7th: 5pm to 6pm, Tim Capes, BA4261
Thursday Dec 8th: 5pm to 7pm, Manos Papagelis, BA2210
Monday Dec 12th: 4pm to 8pm, William Zhang, BA2210
Tuesday Dec 13th: 10am to noon, Khurram Rashid, BA2210
Wednesday Dec 14th: 1pm to 4pm, Manos Papagelis, BA2210
Wednesday Dec 14th: 4pm to 5pm, Tim Capes, BA4261
Thursday Dec 15th: 1pm to 3pm, Erin Deslisle, BA2210
Khurram's office hours are being rescheduled. He is out of town on Friday.


Here are instructions:

Lectures for this course will be held Wednesday 6-8.

Office Hours:

Office Hours for this course will be held Wednesday 5-6 (not including before the first lecture) in BA 4261. If you cannot make this time slot, please contact me by e-mail to set up an appointment.


Tutorials for this course will be held Wednesday 8-9; Use your last name to find your teaching assistant and room number:

  • A to E, Michelle Tran, BA1130

  • F to Li, Khurram Rashid, BA2139

  • Lim to R, Johan Harjono, BA3012

  • S to Z, Erin Delisle, BA3116

    TA Lab Hours:

    In this course there will be fixed times where the TA's will be located in BA2210 available to help you. They will be wearing stickers indicating they are the CSC104 TA. I highly recommend you attend these regularly if you have any difficulty with any of the course material. One learns computer science, in part by thinking, but largely by doing, and it's natural to try things, make mistakes and learn to do them better. These times are:

  • Monday 6:00-7:00pm

  • Tuesday 2:30-3:30pm

  • Tuesday 6:00-7:00pm

  • Thursday 2:30-3:30pm


    Monday Dec 5: Some exam office hours posted. More coming. Some clarifications posted.

    Wednesday Nov 30: Congratulations on completing the course. The exam remains. Exam slides are posted.

    Tuesday Nov 29: Please hand in your essay in class by printout and on MarkUs with a filename of your choice.

    Tuesday Nov 29: Due to problems with the CDF servers, hosting your website will be optional rather than required for A3.

    Monday Nov 28: Marks for A2 have been released. The average is 77 percent. I expect this to increase as there appear to be some assignments where no file was visible. If your mark is unusually low, please contact me to deal with this issue (some of your files may be invisible to the markers).

    Friday Nov 25: A webpage setup FAQ This is useful for A3 webpages if you don't have yours up.

    Thursday Nov 24: Assignment 2 Returns are further delayed; I'm hoping to be able to release marks this monday. My apologies for the inconvenience.

    Wednesday Nov 23: Office hours posted.

    Wednesday Nov 23: Lecture slides posted, apologies for the delay

    Monday Nov 14: This weeks material including Assignment 3 has been posted to the course website.

    Monday Nov 14: Assignment 2 marking will continue throughout the week. I'm hoping to have it back next wednesday.

    Tuesday Nov 8: CDF (including Stanley, the MarkUs servers) will be down for maintenance today from 12:30 to 7:30.

    Monday Nov 7: Slides for this weeks lecture have been posted.

    Monday Nov 7: A2: Earlier versions of the question 2 code had "return targetPicture" located inside the for loop. The new tabbing has correctly moved it outside.

    Monday Nov 7: A2: Please follow the loop order in the revisedQ2 code, and not the loop order originally suggested in the question.

    Monday Nov 7: A2: A typo in the A2 code involving a misplaced bracket has been corrected. The line (ySetter + 1 %2) should read (ySetter+1)%2.

    Friday Nov 4: A2: MarkUs submission for A2 is enabled. Grace days are enabled. MarkUs requires the new files for Q2 and Q3.

    Friday Nov 4: A2: I have posted revised source code for A2 due to it being more difficult than I anticipated. The revised code is in A2's assignment section and should make the assignment easier.

    Wednesday Nov 2: A2: My office hours for A2 are posted in the assignments section.

    Wednesday Nov 2: A2: FAQ for A2 has been added to site

    Wednesday Nov 2: Khurram Rashid's tutorial will be located in BA2139 not BA2159 for the remainder of the term.

    Tuesday Nov 1: Due to a large number of requests I'd like to clarify the midterm is happening in BA1130 from 6:10-7:00pm. The material for 7:10-8:00 is now posted.

    Thursday Oct 27: The midterm will cover all lectures, tutorials and readings up to last lecture. As discussed only the in-class material from Chapter 5 and Chapter 8 will be covered.

    Wednesday Oct 26: Assignment 2 version is unchanged from beta.

    Tuesday Oct 25: Slides and code for this weeks lecture have been posted.

    Monday Oct 24: I am closing remark requests on MarkUs and ask that you submit them by e-mail. The current remark version is erasing all existing marks not just for the requested questions.

    Monday Oct 24: A practice midterm is posted along with solutions. I recommend trying the problems on your own before going the solutions. Solutions are as .py files so you can run them on pictures!

    Monday Oct 24: A beta version of Assignment 2 is posted a final version will be up by the start of class on Wednesday.

    Lecture 6 Code is up (8:15PM wednesday). A reminder that "Exercise:" is something I've recommended for you to do that may appear on an assignment.

    The second half of A1 is marked, but the first half will be delayed until friday. The mark distribution for the second half was:

    A+ 21; A 9; B 9; C 7; D 6; 40-49 9; F 6

    I'll discuss this further in lecture.

    Chapter 07 slides are posted.

    Chapter 04 slides are posted. I understand the difficulty with copying multiple pixels onto the same location I will be posting additional resources for this on Friday (after A1 has been handed in).

    I will be having additional office hours for assignment 1 in BA2200:

    Friday October 7th: 11am to 2pm

    Tuesday October 11th: 2pm to 4pm

    MarkUs link and web-submit instructions are posted.

    Accessibility services is looking for a volunteer notetaker for CSC104. Go to: or come in person to Accessibility Services 215 Huron St. Suite 939 to sign up. The notetaker will receive a certificate of recognition, and feedback on their notes which has been shown to improve their notetaking skills.

    Assignment #1 is up.

    For the sound unit in this course, if you want to work in the CDF lab, you will need headphones. This applies when using your own laptop (to avoid disrupting other students), but CDF computers will not play sounds unless you are using headphones.

    A common problem students have is that UNIX does not display any characters when you type a password (no *'s or anything of that nature). Nothing is going wrong, just type and hit return/enter and it will work.


    MarkUs will be used to hand in assignment solutions. You must log in to submit your assignment using your CDF account. Ensure you have your password set up from in the lab well in advance of the deadline. Instructions for MarkUs: MarkUs Assignment Submission .

    Assignment 3 Handout

    Assigment 3 Question 2 part a starter code

    Assignment 3 Question 2 part b starter code

    OFFICE HOURS FOR A3 will be held on Monday November 28th from 2-4 and Tuesday November 29 from 12-2 in BA4261

    Assignment 2

    I will have office hours for A2 in BA2200 on Friday November 4th from 1pm to 3pm and Monday November 7th from 11am to 1pm.

    Question 1 starter code

    Question 2 starter code

    Question 3 starter code

    REVISED A2 Q2 Starter Code

    REVISED A2 Q3 Starter Code


    For A2 Q2 you will make a checkerboard pattern of 10 by 10 squares, which alternate from picture 1 and picture 2.

    Assignment 1


    While previous tests are available on the old course webpage, there will be some differences as some of the material has been changed or refined and the order of presentation is different. Rely more on the course notes and the test advice given in lecture than on the previous tests.

    Practice Midterm

    Question 1 Solutions

    Question 2 Solutions

    Question 3 Solutions

    Question 4 Solutions


    This section will contain exercises posted from time to time for practice, or exam advice.

    Some Binary Number references and practice problems. Do not do any problems with multiplication or division that is not needed for this course.

    Slides and Resources:

    This section will contain lecture slides and other material for the course which is fair game for tests. I am planning on posting slides before lectures and I recommend you read over them briefly as part of your weekly work, and flag questions you may have.

    The same exam review lecture slides as in the Exam Review Section

    Speed Slides

    HTML Slides for first part of lecture and start of the assignment

    Chapter 12 Lecture Slides

    Internet Topic Lecture for first half of Wednesday Nov 9th

    Other topic lecture for Wednesday Nov 9th

    One topic lecture for Wednesday Nov 9th

    Videoless powerpoint of Lecture 8

    Lecture 7 slides

    Lecture 7 Code

    Lecture 6 Code

    Lecture 6 Slides

    Programming Resource

    Lecture 5 Slides

    Lecture 4 Slides

    Lecture 3 Slides

    Lecture 2, Part 1 Slides

    Lecture 2, Part 2 Slides

    Academic Skills Session Slides

    Time Management Tips Sheet from ASC

    Lecture 1, Part 1 Slides. There is also audio of Vardi giving the lecture 1 talk available at that site.

    Lecture 1, Part 2 Slides

    Additional References:

    This section will contain additional material on topics in this course for personal enrichment. None of the material in this section will be tested directly and you are not responsible for knowing it. It is my hope that you get interested in some of the topics enough to spend some time here. This section may contain links to videos, which are not viewable on the lab computers.

    Some Useful links and handouts:

    The (unmonitored) course bulletin board

    Course Information Sheet

    Find your CDF account name

    Accessibility services