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

Code from Lab:
inlab1.py
inlab1test.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

Code from Lab:
inlab2.py - starter file
lab2.py - completed file

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
sort.py

Code from Lab:
scope.py
inlab3.py
lab3tests.py
lab3times.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?

Code from Lab:
inlab4.py
factorial.py

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

Code from Lab:
regexp.py
obama-nh.txt
example.html
lab5.py
moatscrape.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

Code from Lab:
pollsterpy
gmaps.py

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

Code from Class:
sqlex.py

Code from Lab:
lab7geog.py

Homework 7 - Due next class
Week 8:
NoSQL Data stores
What do we mean by NoSQL?
Why should we care?
MongoDB for structured documents

Code from Class:
mongo.py
mongolab.py

Code from Lab:
mapcities.py
create_db.py
inlab8.py
latlong.csv

No Homework this week
Week 9:
Classification
Classification algorithms
Naive Bayes
Nearest Neighbor
Neural Networks

Code from Class:
naivebayes.py


Code from Lab:
lab9.csv
inlab9.py


No Homework this week
Week 10:
Linear Programming
What is an LP?
What types of problems can we solve?
Applications in MathProg
Applications in Python

Code from Class:
paninting.lp
paninting.mod
matching.mod


Code from Lab:
hello.py


Week 11:
Slack / Special Topics
Week 12:
Project Checkins / Code Reviews
Week 13:
Project Checkins / Code Reviews