<!---
This guide was developed by Susi Remondi for COHORT NAME / DATE / LOCATION HERE.

Questions? Comments?
1. Log an issue to this repo to alert me of a problem.
2. Suggest an edit yourself by forking this repo, making edits, and submitting a pull request with your changes back to our master branch.
3. Hit me up on Slack @susiremondi
--->

![](https://ga-dash.s3.amazonaws.com/production/assets/logo-9f88ae6c9c3871690e33280fcf557f33.png)

# Python Programming

---

> This course introduces beginners to the Python programming language, with a brief working intro to Data Science (Pandas).

## Overview

In this Python Programming course, students will walk away with a solid foundation in Python, able to confidently build basic applications. Students will also get an 8 hour dive into Pandas (for Data Science), and walk away with a project of their choosing they've built using that library.

## Quick Links

- [Course Details](#course-details)
- [Schedule](#schedule)

## Course Details

Python Programming is a 40-hour course, delivered in a 5 day full-time format. There is no admittance requirement - this course is open to and encouraged for absolute beginners.

Once enrolled, students complete 2 hours of pre-work on the myGA platform.

## Instructional Team

|Role | | GA Profile  | Contact |
| :--- | :--- | :--- | :--- |
| Lead Instructor (LI) | <img src="deployment/images/GA_Headshots_055.jpg" height="50"> | [Andrew Riddle](https://generalassemb.ly/instructors/andrew-riddle/21916) | andrew.riddle@generalassemb.ly |
  

## Final Project
Details for the final project can be found [here](unit-7-data-wrap-up/02-project)

Example projects from previous classes [here](https://drive.google.com/drive/folders/1wEz_sRjoYmwY-u8I9saa9ItZrKOhkqia)
   (no need to create a presentation, just make sure your .ipynb file has Markdown fields of text)
   
Submissions: you will collect all relevant files for your project into a Google Drive folder and submit the shareable link via Slack DM.

Make sure the cells in your Jupyter notebook have been run before saving so we can see all results without having to re-run.


## Schedule

Day 1 | Day 2 | Day 3 | Day 4 | Day 5 | Day 6 |
----  | --- | --- | ---| --- | --- |
[:30] Course Introductions | [:30] Day 2 Kickoff & Review  | [:30] Day 3 Kickoff & Review | [:30] Day 4 Kickoff & Review | [:30] Day 5 Kickoff & Review | [3:00] [In-Class: Final Project Workshop][6-1C] |
[:30] Python Installations | [1:00] [Functions (cont'd)][2-1B] | [:30] [Inheritance][3-1A] | [:45] [Modules & Libraries][4-1E] | [:30] [Intro to Charts][5-1E2] | [1:00] Lunch |
[:05] Break | [:10] Break | [:05] Break | [:10] Break | [:05] Break | [1:30] [Project Presentations][6-1E] | 
[1:00] [Defining Variables][1-1B] | [1:15] [Advanced Arguments][2-1C] | [1:00] [Lab #3: OOP][3-1C] | [:30] [Intro to Python for Data][5-1B] | [1:00] [Plots and Charts][5-1E] | [:30] [Wrap-up & Celebrations][6-1G] |
[:10] [Lab #1: Fundamentals][1-1D] | [:10] Break | [:10] Break | [:05] Break | [:10] Break | -- |
[:10] Break | [:20] [Lab #2: Control Flow][2-1D] | [:45] [Variable Scope][3-1D] | [1:30] [Pandas1][5-1C] ([Code][5-1C2]) | [1:00] [Pandas Datetime][5-1I] | -- | 
[1:00] [Conditionals][1-1E] | [1:00] Lunch | [:15] Mid-Week Check-in | [1:00] Lunch | [1:00] Lunch | -- | 
[1:00] Lunch | [:45] [Dictionaries][2-1E] | [1:00] Lunch | [:30] [Pandas 1 (cont'd)][5-1C] ([Code][5-1C2]) | [1:00] [Pandas Joins][5-1J]  | -- | 
[1:00] [Lists][1-1F] | [:05] Break | [:45] [Debugging Principles][3-1F] | [:05] Break | [:05] Break | -- |
[:05] Break | [:45] [Sets & Tuples][2-1F] | [:05] Break | [1:30] [Pandas 2][5-1F] | [1:15] [Lab #6: Pandas][5-1G] | -- |
[1:00] [Loops][1-1G] | [:05] Break | [1:00] [Lab #4: Debugging][3-1G] | [:10] Break | [:10] Break | -- |
[:05] Break | [1:15] [Classes][2-1G] | [:10] Break | [:15] Final Project Discussion | [:45] Independent Work/Review | -- |
[1:00] [Functions][2-1B] | [:10] End-of-Day Recap | [:30] [Intermediate Python Discussion][4-1B] | [:30] Independent Work/Review | [:30] [End-of-Day Recap][5-1H] | -- |
[:10] End-of-Day Recap  | -- | [:30] Independent Work/Review | [:10] End-of-Day Recap | -- | -- |
--  | -- | [:10] End-of-Day Recap | -- | -- | -- |

[1-1A]: unit-1-variables/01-welcome
[1-1B]: unit-1-variables/02-variables/variables_starter.ipynb
[1-1D]: unit-1-variables/03-unit-lab-1/starter-code/starter.ipynb
[1-1E]: unit-2-control-flow/04-conditionals/conditionals_starter.ipynb
[1-1F]: unit-2-control-flow/05-lists/lists_starter.ipynb
[1-1G]: unit-2-control-flow/06-loops/loops_starter.ipynb
[2-1B]: unit-2-control-flow/07-functions/functions_starter.ipynb
[2-1C]: unit-2-control-flow/08-args/args_starter.ipynb
[2-1D]: unit-2-control-flow/09-unit-lab-2/starter-code/starter.ipynb
[2-1E]: unit-3-oop/10-dictionaries/dictionary_starter.ipynb
[2-1F]: unit-3-oop/11-sets-tuples/sets-tuples_starter.ipynb
[2-1G]: unit-3-oop/12-classes/classes_starter.ipynb
[3-1A]: unit-3-oop/13-inheritance/inheritance_starter.ipynb
[3-1B]: unit-3-oop/13-inheritance
[3-1C]: unit-3-oop/14-unit-lab-3/starter-code/starter.ipynb
[3-1D]: unit-4-troubleshooting/15-variable-scope/variable-scope_starter.ipynb
[3-1E]: unit-4-troubleshooting/16-intermediate-variables
[3-1F]: unit-4-troubleshooting/17-debugging/debugging_starter.ipynb
[3-1G]: unit-4-troubleshooting/18-unit-lab-4/starter-code/starter.ipynb
[4-1B]: unit-5-intermediate/19-intermediate-intro/intermed-intro.ipynb
[4-1C]: unit-5-intermediate/20-scripting/20-scripting_starter.ipynb?instructor=1#/scripting-part-1-files
[4-1E]: unit-5-intermediate/22-modules/modules_starter.ipynb
[4-1F]: unit-5-intermediate/23-apis/23-api_starter.ipynb?instructor=1#/section
[4-1G]: unit-5-intermediate/24-unit-lab-5/starter-code/starter.ipynb
[5-1B]: unit-6-pandas/01-ds-intro/01-ds-intro-slides.md
[5-1C]: unit-6-pandas/02-pandas-i/02-pandas-i.md
[5-1C2]: unit-6-pandas/02-pandas-i/code/intro-to-pandas-i.ipynb
[5-1D]: unit-6-pandas/04-data-viz
[5-1E]: unit-6-pandas/05-plotting-with-pandas/code/05-plotting-with-pandas.ipynb
[5-1E2]: unit-6-pandas/04-data-viz/04-data-viz-slides.md
[5-1F]: unit-6-pandas/03-pandas-ii/code/pandas-ii.ipynb
[5-1G]: unit-6-pandas/06-pandas-unit-lab/code/Pandas-Unit-Lab.ipynb
[5-1H]: unit-6-pandas/07-next-steps
[5-1I]: unit-6-pandas/08-pandas-datetime/code/pandas-datetime.ipynb
[5-1J]: unit-6-pandas/09-pandas-join/code/pandas-join.ipynb
[6-1A]: unit-7-data-wrap-up/01-review
[6-1B]: unit-7-web-dev-wrap-up/01-review
[6-1C]: unit-7-data-wrap-up/02-project
[6-1D]: unit-7-web-dev-wrap-up/02-project
[6-1E]: unit-7-data-wrap-up/02-project
[6-1F]: unit-7-web-dev-wrap-up/02-project
[6-1G]: unit-7-data-wrap-up/03-summary
[6-1H]: unit-7-web-dev-wrap-up/03-summary
<!--
[Day1]: course recording links go here
[Day2]: 
[Day3]: 
[Day4]: 
[Day5]: 
--->

Day      | Suggested Homework 
-------- | --------- 
1        | [Lists, `if/elif/else`, and `for/while`][7-1A] 
2        | [Functions, Dictionaries, *Bonus: Kwargs*][7-1B] 
3        | [Type Conversion, TRY/EXCEPT, Debugging ][7-1C] 
4        | [Pandas EDA, Pandas Visualizations][7-1D] 
5        | Work on final project, [Consumer Sales Exercise][7-1E] 

<!--
[5-2B]: unit-6-flask/01-web-dev-intro
[5-2C]: unit-6-flask/02-flask
[5-2D]: unit-6-flask/03-styling-flask
[5-2E]: unit-6-flask/04-flask-routing
[5-2F]: unit-6-flask/05-flask-templates
[5-2G]: unit-6-flask/06-flask-apis
[5-2H]: unit-6-flask/07-flask-unit-lab
[5-2I]: unit-6-flask/08-next-steps
--->
[7-1A]: unit-1-variables/hw-5day-day1/hw_day1.ipynb
[7-1B]: unit-2-control-flow/hw-5day-day2/hw_day2.ipynb
[7-1C]: unit-5-intermediate/hw-5day-day3/hw_day3.ipynb
[7-1D]: unit-6-pandas/hw-5day-4pandas/code/lab.ipynb
[7-1E]: unit-6-pandas/10-pandas-consumersales/code/lab.ipynb

