Skip to content

UofT-DSI/python

Repository files navigation

Python

 

Content

Description

This module introduces participants to the fundamentals of programming using Python. Participants will be introduced to the concepts of functions and object-oriented programming to make use of reusable blocks of code and models, respectively. We also introduce numPy, an important library in data science and machine learning. By the end of this module, participants will be able to write reusable code to analyze data.

Learning Outcomes

By the end of the module, participants will be able to:

  1. Identify the differences between data types
  2. Identify and resolve errors
  3. Write a block of code as a reusable function
  4. Write blocks of code in Python using variables and conditionals
  5. Use a loop to go over elements of an array
  6. Describe the benefits of Object Oriented programming
  7. Use the numPy library to perform mathematical operations on arrays and datasets

Assignments

Participants should review the Assignment Submission Guide for instructions on how to complete assignments in this module.

There are two assignments (one per week) in this module:

  1. Anagram Checker: Due Sunday December 1 at 11:59 PM
  2. Efficacy Analysis of a Hypothetical Arthritis Drug: Due Sunday December 8 at 11:59 PM

Contacts

Questions can be submitted to the #cohort-5-help channel on Slack

Delivery of the Learning Module

This module will include live learning sessions and optional, asynchronous work periods. During live learning sessions, the Technical Facilitator will introduce and explain key concepts and demonstrate core skills. Learning is facilitated during this time. Before and after each live learning session, the instructional team will be available for questions related to the core concepts of the module. The Technical Facilitator will introduce concepts through a collaborative live coding session using the Python notebooks found under /01_materials/slides. The Technical Facilitator will also upload live coding files to this repository for participants to revisit under ./04_this_cohort/live_code.

Optional work periods are to be used to seek help from peers, the Learning Support team, and to work through the homework and assignments in the learning module, with access to live help. Content is not facilitated, but rather this time should be driven by participants. We encourage participants to come to these work periods with questions and problems to work through.  

Participants are encouraged to engage actively during the learning module. They key to developing the core skills in each learning module is through practice. The more participants engage in coding along with the instructional team, and applying the skills in each module, the more likely it is that these skills will solidify.

Schedule

Day 1 Day 2 Day 3 Day 4 Day 5
Week 1 Live Learning Session 1 (Introduction, Data Types, Error) Live Learning Session 2 (Functions, Strings, Converting Types, Input) Live Learning Session 3 (Control Flow) Work Period 1 Work Period 2
Week 2 Live Learning Session 4 (Reading/Writing, Object Oriented Programming) Live Learning Session 5 (numPy) Case Study Work Period 3 Work Period 4

While Testing, pandas, Visualization, and APIs are not covered in this course, you are encouraged to explore the slides at your own pace to deepen your understanding.  

Requirements

  • Participants are not expected to have any coding experience; the learning content has been designed for beginners.
  • Participants are encouraged to ask questions, and collaborate with others to enhance their learning experience.
  • Participants must have a computer and an internet connection to participate in online activities.
  • Participants must not use generative AI such as ChatGPT to generate code in order to complete assignments. It should be used as a supportive tool to seek out answers to questions you may have.
  • We expect participants to have completed the instructions mentioned in the onboarding repo.
  • We encourage participants to default to having their camera on at all times, and turning the camera off only as needed. This will greatly enhance the learning experience for all participants and provides real-time feedback for the instructional team.

Resources

Feel free to use the following as resources:

Documents

Videos

How to get help

image


Folder Structure

.
├── .github
├── 01_materials/slides
├── 02_activities
├── 03_instructional_team
├── 04_this_cohort
├── 05_src/data
├── .gitignore
├── LICENSE
├── README.md
└── steps_to_ask_for_help.png
  • .github: Contains issue templates and pull request templates for the repository.
  • materials/slides: Module slides and interactive notebooks (.ipynb files) used during learning sessions.
  • activities: Contains graded assignments, exercises, and homework to practice concepts covered in the learning module.
  • instructional_team: Resources for the instructional team.
  • this_cohort: Additional materials and resources for this cohort, including live coding files.
  • src/data: Source code, databases, logs, and required dependencies (requirements.txt) needed during the module.
  • .gitignore: Files to exclude from this folder, specified by the Technical Facilitator
  • LICENSE: The license for this repository.
  • README: This file.
  • steps_to_ask_for_help.png: Guide on how to ask for help.