Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time


This course is offered by the Institute of Biomaterials and Biomedical Engineering (course descriptions page) at the University of Toronto. It is intended for graduate students from different backgrounds who have entered any of the Biomaterial, Biomedical or clinical engineering programs.

Course description

Today’s biomedical engineers will encounter many situations where an ability to perform basic computer programming is desirable if not essential. This is a hands-on course, teaching graduate students the basics of coding and data analysis in the context of different biomedical engineering scenarios. Students will become familiar with the UNIX operating environment, Python scripting, task automation, and version control using Git and GitHub; in addition to analyzing, modelling, and manipulating data. The class will involve working through practical examples and solving scientific problems through a mix of online video lectures and live-coding sessions in which the students do the programming live with the instructor in the class. This course requires no previous programming experience.

Learning outcomes

Students will learn how to

  • Apply "tidy data" principles.
  • Develop a proficiency in coding and doing data analysis in Python.
  • Clean, manipulate, and manage data in Python.
  • Write well-documented and modular Python code.
  • Apply common statistical and basic machine learning techniques to biomedical data.
  • Recognize the importance of and ensure reproducibility of analysis documents.
  • Generate publication quality outputs such as figures and documents that effectively communicate technical content.

Course structure

Each week students will be sent course materials, including a video tutorial, sample files, and a set of exercises. The course can be completed entirely online. Students will have opportunity to get one-on-one guidance from TAs in person once a week and be able to ask for help online on the course's GitHub issue tracker.


  1. Introduction & computer setup
  2. Introduction to the command line
  3. Python introduction: data types, conditional statements, loops, functions, packages
  4. Python introduction continued
  5. Object-oriented programming and data analysis
  6. Command line programming and version control
  7. Using Python instead of Excel
  8. Data visualisation
  9. Data visualisation continued
  10. Data cleaning and tidy data
  11. Statistics and introduction to machine learning
  12. Machine learning continued

Course offerings

Fall 2020

  • Course instructor: Michael Garton
  • Course developers: Lina Tran, Sara Mahallati, Joel Ostblom
  • Teaching assistants: Ryan Cheuk Long Lee, Dae Hwang, Maryam Moadeli, Andrew Mocle, Amir Peimani, Mustafa Haiderbhai, Amir Mostofinejad