Git Product home page Git Product logo

python's Introduction

Python

 

Content

  1. Description
  2. Learning Outcomes
  3. Course Contacts
  4. Pre-Course Work
  5. Design
  6. Schedule
  7. Prerequisites
  8. Expectations
  9. Policies
  10. Folder Structure
  11. Key Texts
  12. Acknowledgements  

Description

This section of the course will focus on the essentials of coding in Python. You will learn how to design functions, repeat code using loops, store data in lists, test and debug your code, and manipulate data using various data analysis and visualization tools such as numpy, pandas, matplotlib, seaborn, and plotly.   

Learning Outcomes

After completing this section of the course, the students will:

  1. Understand various Python data types and their role in coding. This includes being able to differentiate and evaluate expressions using numeric types (integer, long, and floating-point numbers), Booleans, strings, and lists. This will be assessed in Assignment 1.
  2. Be able to reduce the duplication of code by following the Function Design Recipe and creating functions in Python. This will be assessed in Assignment 1.
  3. Be able to use numpy and pandas to analyze a dataset, more specifically, be able to use these libraries to manipulate numerical and tabular data in Python. This will be assessed in Assignments 1 and 2.
  4. Know how to interact with databases via Python. This includes using visualization techniques like matplotlib, seaborn, and plotly. This will be assessed in Assignment 2.
  5. Know how to debug and test Python code. Students will learn to troubleshoot errors and select test cases to check for the correctness, reliability, and robustness of code. This will be assessed in Assignments 1 and 2.

Course Contacts

Questions can be submitted to the #questions channel on Slack

  • Instructor: Kaylie Lau (she/her). Emails to the instructor can be sent to [email protected].
  • Instructor: Simeon Wong (he/him). Emails to the instructor can be sent to [email protected].
  • TA: Julia Gallucci (she/her). Emails to the teaching assistant can be sent to [email protected].
  • TA: Tong Su (she/her). Emails to the teaching assistant can be sent to [email protected].

Pre-Course Work

Before the first class please get your computer set up by following these instructions: https://github.com/UofT-DSI/Onboarding/tree/tech-onboarding-docs  

Design

The course runs synchronously over Zoom. The Python section consists of eight classes over two weeks. Classes are 6:00 PM - 8:30 PM EDT on weekdays, and 9:00 AM - 11:30 AM EDT on Saturday. Being mindful of online fatigue, there will be one or two breaks during each class where students are encouraged to stretch, grab a drink and snacks, or ask any additional questions. 

Tutorial sessions with a TA will also be offered over Zoom. These will take place from 5:30 PM - 6:00 PM EDT and 8:30 PM - 9:00 PM on weekdays, and 8:30 AM - 9:00 AM EDT and 11:30 AM - 12:00 PM EDT on Saturdays.  

Schedule

The schedule is tentative and may be modified as needed. Learners will be notified of schedule changes.

  • Day 1 (Saturday, January 20, 9:00 AM - 11:30 AM): Getting Started I (Introduction; Python fundamentals)
  • Day 2 (Monday, January 22, 6:00 PM - 8:30 PM): Getting Started II (Python fundamentals)
  • Day 3 (Tuesday, January 23, 6:00 PM - 8:30 PM): Dealing with Reality (Control flow using conditionals and loops; Lists, tuples, sets, and dictionaries)
  • Day 4 (Wednesday, January 24, 6:00 PM - 8:30 PM): In/Out (Modules; Working with files; Object-oriented programming)
  • Day 5 (Thursday, January 25, 6:00 PM - 8:30 PM): Doing More with Data I (numpy)
  • Day 6 (Tuesday, January 30, 6:00 PM - 8:30 PM): Doing More with Data II (pandas)
  • Day 7 (Wednesday, January 31, 6:00 PM - 8:30 PM): Visualizing Data (matplotlib; seaborn; plotly)
  • Day 8 (Thursday, February 1, 6:00 PM - 8:30 PM): Review
  • Day 9 (Saturday, February 3, 9:00 AM - 11:30 AM): Case Study Speaker

Prerequisites

Learners are expected to know how to operate a computer and are also expected to be familiar with the parts of a data table or spreadsheet, summary statistics, and basic data visualizations. No prior programming knowledge is required.

Expectations

The course is a live coding class. Learners are expected to follow along with the coding in their own Python notebooks. Learners should be active participants while coding and are encouraged to ask questions throughout. Although slides will be available, they should be referenced before or after class, as the class will be dedicated to coding with the instructor.  

Technology requirements

  • Learners must have a computer and an internet connection to participate in online activities.
  • Learners must have set up their computer using this link.  

Policies

  • Accessibility: We want to provide an accessible learning environment for all. If there is something we can do to make this course more accessible to you, please let us know.
  • Course communications: Communications take place over email or on Slack. If communicating over email, please include "DSI-Python" or similar in the subject line, e.g. "DSI-Python: pandas question"
  • Camera: Keeping your camera on is optional.
  • Microphone: Please keep microphones muted unless you need to speak. Please indicate your name before speaking as some Zoom configurations make it hard to tell who is talking!
  • Assessment: There will be homework which is not graded, but highly recommended, and there will be two assignments which are graded.  

Folder Structure

  • 01-slides: Course slides as interactive notebooks (.ipynb files)
  • 02-html-slides: Course slides as HTML files that can be downloaded and viewed in a web browser
  • 03-pdf-slides: Course slides as PDF files
  • 04-homework: Optional homework to practice concepts covered in class
  • 05-assignments: Graded assignments
  • 06-html-assignments: Assignments as HTML files
  • 07-pdf-assignments: Assignments as PDF files
  • 08-live-code: Notebooks from class live coding sessions
  • data: Datasets used in the course
  • README: This file!
  • LICENSE: Copyright information for these materials
  • .gitignore: Files to exclude from this folder, specified by the instructor

Slides

Assignments

  • Class attendance: To ensure everyone actively participates in class activities, attendance is mandatory and will be monitored. If you are unable to attend class, it is your responsibility to make up the work that was covered.
  • Assignment 1
  • Assignment 2
Format Details Submission Instructions
Assignment 1 Due on Tuesday, January 30 at 11:59pm Submit assignment via your Google Drive. Upload your code file (LASTNAME_FIRSTNAME_python_assignment1_code.ipynb).
Assignment 2 Due on Tuesday, February 6 at 11:59pm Submit assignment via your Google Drive. Upload your (1) code file (LASTNAME_FIRSTNAME_python_assignment2_code.ipynb), (2) original data file (LASTNAME_FIRSTNAME_python_assignment2_orig.csv), and (3) processed DataFrame file (LASTNAME_FIRSTNAME_python_assignment2_proc.csv)

Key Texts

Gries, Campbell, and Montojo, 2017, Practical Programming: An Introduction to Computer Science Using Python 3.6. Adhikari, DeNero, and Wagner, Computational and Inferential Thinking: The Foundations of Data Science.  

Acknowledgements

Course materials were originally developed by Asel Kushkeyeva under the supervision of Rohan Alexander. Materials have been modified by A. Mahfouz and Kaylie Lau for 2022, 2023, and 2024.

python's People

Contributors

kaylielau avatar danielrazavi avatar rohanalexander avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.