Introduction to Programming in Python (BCH 2203)
Winter 2022
University of Toronto


This (quarter) course will introduce graduate students to the programing language Python in a biochemical context. It will teach them how to install Python on their laptop and then use Python to perform data analysis and visualization. It will also introduce them to running on an HPC cluster

Python is a popular programming language made more powerful by common external packages that offer functionality and performance beyond what its core language offers. This course will cover (in varying levels of detail) the following packages: numpy, scipy, matplotlib, scikit-learn, biopython, pandas. Students should need only modest programming experience to be able to take the course.


The course will be given over 12 weeks, with one online lecture of one hour per week, on Wednesdays at 11:00 am. In addition, there will be a one-hour office hour per week. Every other week, an assignment will be given, that is due the following week.


  • Python basics
  • Numerics and data representations
  • Scientific Software Packages: NumPy and SciPy
  • Genomics Analysis: BioPython
  • Simulation techniques
  • File Input and Output
  • Machine Learning
  • ...


The lecturer for this courses is Dr.Ramses van Zon, a Computational Science Specialist at the SciNet High Performance Computing Consortium. You can contact him through email (rzon AT scinet D0T utoronto D0T ca).


Students do not need to have substantial programming experience, but they are expected to have a little bit of programming experience in one language or another. If in doubt on whether you should take this course, feel free to contact the instructor and explain your (programming) background.

Web site

The website will be maintained during the course. It's where you find the Zoom links and lecture slides, where you hand in your assignments, and get feedback on those from the instructor. It also has a forum for online discussions.

Location and Times

The lectures will be online meetings using Zoom. You can get the Zoom link from the course website. You must be logged in to see the link. The lectures will be on

  • Wednesdays 11:00 am - 12:00 noon

Lecture dates:

The first lecture is on Wednesday January 12, 2022, the last is on April 6, 2022.

Office hours

For the duration of the course, office hours will be on

  • Mondays from 2:00 pm to 3:00 pm on Zoom.

Course Forum

You can post questions on the course forum (you must login to be able to post) or send them by email to the instructor.

Assignments and Grading

Every other week, students will be given a programming assignment, with a due date set to one week later. These assignments are designed to help absorb the course material.

There will be five or six such assignments. The average of the assignments will make up your grade. To ensure a timely reporting of student grades, we will adhere to the following policy:

Homework may be submitted up to one week after the due date, at a penalty of 5% per day taken off from your mark. Deviations of this rule will only be considered, on a case-by-case basis, in exceptional circumstances.
All sets of homework need to be handed in for a passing grade, which is based on the average of the set. If, due to exceptional circumstances, an assignment was missed, a make-up assignment can be given at the end of the course. Rather than focusing on the topic of a specific week, the make-up assignment may involve any of the material of the course.

Course Credit

This course is an official Biochemistry graduate (quarter) course at the University of Toronto.

This course also counts for 9 credit-hours towards the SciNet Scientific Computing Certificate and 9 credit-hours towards the SciNet Data Science Certificate.

More information on the SciNet's Certification Program, can be found here.

Last modified: Friday, 7 January 2022, 10:39 PM