Skip to the content.

Lectures and Class Material

Link to the GitHub Repository containing the lecture materials

QLS612 Slack workspace


1. Reproducibility in Life Sciences

Instructor: JB Poline

Outline

With this lecture, you will get a general introduction to reproducible - or irreproducible - life sciences. Specifically, you will

Material: GitHub Link

Pre-recorded lecture video: YouTube Link

Slides: Slides

Lecture Resources

Questions you will be able to answer after taking this module:


2. Introduction to the Terminal and Bash

Instructors: Brent McPherson, Alyssa Dai

Outline

To follow most of the other modules, you will have to have some basic understanding of the command line. In this module we’ll take a look at the the BourneAgainSHell (BASH), the default command line in most Linux systems. You will learn how to:

Materials:

Pre-recorded lecture video (by Sebastian Urchs): YouTube Link

Slides: Slides

Questions you will be able to answer after taking this module:


3. Introduction to Python

Instructor: Michelle Wang, Jacob Sanz-Robinson

Outline

Material: GitHub Link

Pre-recorded lecture video (by Jacob Sanz-Robinson): YouTube Link

Lecture Resources

Questions you will be able to answer after taking this module:

(1) How does the use of a break statement alter the flow of a loop in Python?

(2) What happens if you attempt to append new elements to a Tuple?

(3) Without running the code on your machine, what is the printed output when the following code is run?

my_dictionary = {"a" : 1, "b" : {"c" : {"d" : [4,5,6,4]}}, "c" : [1,2,3]}
x = my_dictionary["b"]["c"]["d"].append(my_dictionary["c"][-3])
print(my_dictionary.values())

(4) Without running the code on your machine, which string is returned by my_function when called with the specified parameters?

def my_function(x, y, z):
    result = ""
    if len(z) <= 6 and len(z) > 2:
        result = z[-2] + y
    else:
        result = x + y
    return x + x + result

my_function("111", "abc", "0100")

4. Scientific Python: NumPy and Scipy

Instructor: Jérôme Dockès

Outline

This lecture will introduce NumPy and its ndarray data structure, which are at the core of most scientific Python packages. At the end of the lecture, participants will be able to:

Materials: GitHub Link

Lecture Resources

5. Introduction to Git and GitHub

Instructor: Kendra Oudyk

Outline

Git and GitHub are key tools for doing version control in both academia and industry. These tools can help students do more efficient, open, and reproducible research. Further, knowing these tools can help prepare students for careers in academia and industry. In this lecture, students will learn

Materials: GitHub Link

Pre-recorded lecture video: YouTube Link

Slides: Slides

Lecture Resources

Questions you will be able to answer after taking this module:

  1. In a ____ version control system, individuals have the entire repository and its history in their local repository.
  1. What is the basic workflow for tracking a change and sharing it on github?
  1. How do you start a parallel line of development, in order to do nonlinear version control?
  1. How do you make a copy of another GitHub repo on your GitHub account?

6. Data Wrangling with Pandas

Instructor: Jacob Sanz-Robinson

This module is designed to introduce students to the Pandas Python library for manipulating data in tables and time series (not to be confused with the bear of the same name). It aims to build a basic understanding of what happens underneath the hood in Pandas, and arm you with the essential practical knowledge to fearlessly tackle the next CSV file you encounter in the wild.

Outline

  1. Introduction
  1. Pandas Objects
  1. Pandas Wrangler Essentials

Materials: GitHub Link

Pre-recorded lecture video: YouTube link

Lecture resources

Questions you will be able to answer after taking this module:

  1. Which of the following is an immutable Pandas Object?
  1. What function would you use to combine two Pandas DataFrames if you wanted to align their rows based on common column values?

7. Classical statistics pitfalls and remedies

Instructor: JB Poline

Outline

Most of published results still rely on some statistical inference. With this lecture, you will

Materials: GitHub Link

Pre-recorded lecture video: YouTube Link

Slides: Slides

Lecture Resources


8. Introduction to Machine Learning part 1: supervised learning

Instructor: Nikhil Bhagwat

Outline

Materials: GitHub Link

Pre-recorded lecture video: YouTube Link

Slides: Slides

Lecture Resources

IMPORTANT! To fully understand the material taught in this module, you should make sure that you are already familiar with the following concepts (please take some time to review them if needed):

Questions you will be able to answer after taking this module:

Things you will NOT learn in this module (if you are an advanced ML student)


9. Introduction to Machine Learning part 2: Model selection & validation; dimensionality reduction

Instructor: Jérôme Dockès

Outline

In this module, you will:

Materials: GitHub Link

Pre-recorded lecture video: YouTube Link

Slides: Link

Lecture Resources

Questions you will be able to answer after taking this module:

10. Introduction to Data Visualization in Python

Instructor: Kendra Oudyk

Outline

Materials: GitHub Link

Pre-recorded lecture video, Part 1 Decoding: YouTube link
Pre-recorded lecture video, Part 2 Encoding: YouTube link

Slides for Part 1 Decoding: Slides
Slides for Part 2 Encoding: Slides


11. Virtualization of computing environments

Instructor: Sebastian Urchs

Outline

Materials: GitHub Link

Pre-recorded lecture video: YouTube Link

Slides: Slides

Questions you will be able to answer after taking this module:


12. High Performance Computing (HPC)

Instructor: Brent McPherson

Outline

Materials: GitHub Link

Pre-recorded lecture video (by Darcy Quesnel): YouTube Link

Slides: Slides

Lecture Resources

Questions you will be able to answer after taking this module:

  1. Choose the area that Advanced Research Computing traditionally does not include
  1. Choose all components that are part of an HPC Compute Node
  1. Choose all ways to access an HPC Cluster