Welcome! This is a half-credit mini course on Python programming.

Why learn Python? The short answer is:

>>> print("Hello World")

The longer answer is that Python is a powerful and popular programming language, useful for building large systems as well as writing small scripts. It has intuitive syntax, extensive libraries, and supports both object-oriented and functional programming methodologies. In this class, we will explore a variety of these features through hands-on exercises and a final open-ended project.

Time/Place: Thursdays, 12:00-1:30pm in Towne 309
Harry Smith sharry@sas
Office Hours:
Harry Smith (DRL 2N36):Monday and Wednesday, 1:00-2:00
Luke Mainwaring (Location TBD):Wednesday, 3:00-4:30 PM & Thursday, 3:30-5:30 PM
Prerequisites: CIS 110; CIS 120 highly recommended
Links: Piazza
Official Python 3.4 Documentation

There will be weekly homeworks and a final project. Homeworks account for 70% of the grade, the final project accounts for 25%, and the remaining 5% is for class participation.

Homework for this class will typically take the form of weekly coding assignments, typically designed to be completed in the range of 1-5 hours of effort.

Working on Homeworks - Policy

Project Requirements

40 pts Functionality Does it work? How well? Do you have your features implemented?
30 pts Content Did you choose a concept that was sufficiently interesting and challenging? Did you make a reasonable attempt to meet these goals?
15 pts Tech Demo Can you effectively present your project? Does the finished product work cohesively?
15 pts Style Good PEP8 and general style, good coding practices (e.g. "with" to open files), useful documentation

This course will be taught with a minimum Python version of 3.4. Part of the first lecture will be walking students through an effective and helpful Python setup on their personal computers.

--> -->
Date Topic Class Material Homework
January 11 Week 1:
HW 1
Test 1
Hangman (Optional)
Hangman Template
January 18 Week 2:
Data Types & Comprehensions
HW 2
Test 2
January 25 Week 3:
Comprehensions, Functional Programming
HW 3
Test 3
February 1 Week 4:
Object Oriented Programming
HW 4
February 15 Week 5: File I/O, Exceptions, Iterators, Generators Slides
HW 5
Test (py)
Test (zip)
February 22 Week 6: Regular Expressions and Other Modules Slides
HW 6
Sample Script
Sample Output
March 1 Week 7: Probability, Simulations, and Machine Learning I Slides
HW 7
March 15 Week 8: Unsupervised Machine Learning Slides
KMeans Visualization
Datasaurus Rex
March 22
March 29
April 5
April 12
April 19