/python

Primary LanguageJupyter Notebook

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. Use manual and automated testing to ensure block of code work as expected
  5. Write blocks of code in Python using variables and conditionals
  6. Use a loop to go over elements of an array
  7. Describe the benefits of Object Oriented programming
  8. 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 May 5 at 11:59 PM
  2. Efficacy Analysis of a Hypothetical Arthritis Drug: Due Sunday May 12 at 11:59 PM

Contacts

Questions can be submitted to the #cohort-3-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_slides. The Technical Facilitator will also upload live coding files to this repository for participants to revisit under ./06_cohort_three/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, Testing, Strings, Converting Types, Input) Live Learning Session 3 (Control Flow) Work Period 1 Work Period 2
Week 2 Live Learning Session 4 (Control Flow, Reading/Writing) Live Learning Session 5 (Object Oriented Programming, numPy) Case Study Work Period 3 Work Period 4

While 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

.
├── 01_slides
├── 02_assignments
├── 03_homework
├── 04_instructional_team
├── 05_data
├── README.md
└── steps_to_ask_for_help.png
  • slides: Module slides as interactive notebooks (.ipynb files)
  • assignments: Assignments
  • homework: Homework to practice concepts covered in class
  • instructors: This folder guides Technical Facilitators and the Learning Support team on teaching methodologies and content delivery.
  • data: Contains all data associated with the module
  • README: This file!
  • .gitignore: Files to exclude from this folder, specified by the Technical Facilitator