Week Topics
Week 0:
Prep for class
Work through ”Learn Python the Hard Way, 2nd Ed.”. Email the group about things that don’t make sense. It is not expected that everything will be crystal clear, but figuring out which parts of this are hazy will give us a good starting point and some momentum going into the start of class.
Week 1:
Building Software: Some Best Practices
Python Review
Source Control: DVC, Git, github
Exceptions in Python
Testing: Motivations, TDD, Unit Testing

Code from Class:
inclass.py
inclasstest.py

Homework 1 - Due next class
Week 2:
Object Oriented Programming
Object Oriented Concepts: Motivations, Polymorphism, Inheritance, Encapsulation, Static/Instance, Public/Private
How does Python do it?: Python classes, constructors, __str__

Code from Class:
fib.py
polymorphism.py
polymorphismtest.py
sports.py

Homework 2 - Due next class
Week 3:
Algorithms
Exception Handling
Sort: Selection Sort, Merge Sort, Quick Sort, others
Search: Binary Search
Complexity: How is it measured? Big O notation

Code from Class:
exc_ex.py

Homework 3 - Due next class
Week 4:
Data Structures
Common Data Structures: Array, List, Stack, Queue, Tree, Graph, Dictionary
Python’s Data Structures: What does Python have?

Homework 4- Due next class
Week 5:
I/O
File I/O: reading and Writing
HTTP: GET/POST
The structure of the web: HTML
Performance

Code from Class:
filestuff.py
csvstuff.py
url_grabbing.py

Homework 5 - Due next class
Week 6:
APIs
What are APIs?
HTTP in depth
REST/SOAP
Twitter API with Tweepy

Code from Class:
twitter.py
urlparsing.py

Homework 6 - Due next class
Week 7:
Databases
Relational Database Design
Database performance considerations
Using databases with Python

Code from Class:
sqlex.py

Homework 7 - Due next class
Week 8:
Classification
Classification algorithms
Naive Bayes
Nearest Neighbor
Neural Networks

Homework 8 - Due next class
Week 9:
Linear Programming
What is an LP?
What types of problems can we solve?
Applications in MathProg
Applications in Python

Homework 9 - Due next class
Week 10:
Slack / Special Topics
Week 11:
Project Checkins / Code Reviews
Week 12:
Project Checkins / Code Reviews