Science One Computer Science, 2015-2016

The University of British Columbia

Administrative Info

Instuctor: Mike Gelbart,

TA: Noah Bayless, n (tod) bayless (ta) alumni (tod) ubc (tod) ca

Mike's office hours: Fridays 1:00pm-2:30pm in ICCS 225.

Noah's office hours: Thursdays 12:30-1:30pm in IBLC 361.

Lectures: Usually Tuesdays 11:30am-12:30pm in IBLC 261, but see the Schedule below for more accurate information.


9/10/2015: introduction, course outline and demos of assignments
9/11/2015: using a terminal, installing Anaconda Python 2.7, Spyder, "Hello, World!"
9/15/2015: variables, data types, literals, statementsReadings: Think Python, 2.1-2.11(post-class notes)
9/22/2015: Boolean expressions, floats, conditionals, command-line arguments, commentsReadings: Think Python, 5.1-5.7(class transcript)
9/24/2015: loopsReadings: Think Python, 7.1-7.4(class transcript)
9/29/2015: plotting; in-class coding activity (please bring your laptops)Readings: none(class transcript)
10/8/2015: arraysReadings: none(class transcript)
10/13/2015: functionsReadings: Think Python, 3.1-3.14(class transcript)
10/22/2015: typesetting with LaTeX (please bring your laptops)Readings: Overleaf tutorial part 1(class transcript)
10/29/2015: work on Assignment 2 in class (please bring your laptops)Readings: Assignment 2
11/3/2015: functions (continued)Readings: same as 10/13 above(class transcript)
11/10/2015: binary numbersReadings: Khan Academy video(class transcript)
11/17/2015: floating pointReadings: none(class transcript)
11/24/2015: pseudo-random numbersReadings: none(class transcript)
12/1/2015: reviewReadings: try the practice problems posted below(see solutions below)
12/15/2015: extra review session (in the regular classroom, 11:30am-1:30pm)
----winter break----
1/7/2016: Term 1 exam discussionReadings: Term 1 exam and solutions
1/12/2016: 2D arraysReadings: none(class transcript)
1/19/2016: Python listsReadings: Think Python, 10.1-10.6
1/28/2016: work on Assignment 3 in class (please bring your laptops)Readings: Assignment 3 (see below)
2/2/2016: [class cancelled]
2/9/2016: indirection
----reading week----
2/23/2016: running timesReadings: none(class transcript)
3/1/2016: dictionariesReadings: Think Python, 11.0-11.4(class transcript)
3/8/2016: work on Assignment 4 in class (please bring your laptops)Readings: Assignment 4 (see below)
3/15/2016: other programming languages
3/22/2016: bits and bytes
3/29/2016: debugging
4/5/2016: CS@UBC(prerequisite chart)

Course Materials, Handouts, Links

  1. Python install guide
  2. A list of Python text editors (many of which are free) in case you do not want to use Spyder.
  3. Codecademy, a free online tool for learning Python (and other languages).
  4. Think Python, a free online Python textbook.
  5. Practice questions for the Term 1 final exam.
  6. Solutions to the practice questions
  7. Solutions to the physics/CS Euler method tutorial (but try to do them on your own first!)
  8. Term 1 Exam Outline and Term 1 Exam cover sheet.
  9. Term 1 Exam and Term 1 Exam Solutions.


Homework collaboration policy:
You are welcome to discuss assignments with others, but the assignments you submit must be entirely your own work. Here are some things that are OK and not OK: If you are caught cheating, the penalty is typically suspension from the University. Please don't do it! If you are struggling to the point that you are tempted to cheat, please come talk to one of us and we will work through the situation. We are here to support you, but there are 75 of you and sometimes we need your help identifying where and when our support is most needed.

Homework submission instructions:
  1. Make sure there is a comment at the top of EVERY Python file you are submitting, containing:
    • your first name
    • your last name
    • your UBC student number
    • a list of everyone you discussed the assignment with, including classmates (first and last name), TAs, instructors, anyone else
    • (optional) the amount of time you spent working on the program
  2. Make sure the name(s) of your file(s) EXACTLY match the name(s) asked for in the assignment.
  3. Go to
  4. Sign in with your CWL
  5. Navigate to Science One Computer Science (not the general Science One page)
  6. Click on the assignment you are submitting
  7. Click on Browse My Computer and attach all relevant files, one by one
  8. Press Submit
Note that you will be unable to sumbit assignments on Connect once the submission deadline has passed.


The computer science component is worth 6% of your overall Science One grade. The tentative breakdown for this grade is as follows: assignments (2%), Term 1 exam (2%), Term 2 exam (2%). The instructor reserves the right to change this grading scheme at any point during the course.