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: Thursdays, 12:00-1:30pm
Location: DRL 2C8
Fall 2015 Instructor: Robert Rand
Current (Spring 2017) Instructor: Harry Smith
email: sharry@sas
Current TAs:
Luke Mainwaringemail: lukemain@sas
Surabhi Sureshemail: surabhis@seas
Prerequisites: CIS 110 or equivalent; basic programming knowledge
Links: Piazza
Canvas
Official Python 2.7 Documentation

Please feel free to peruse the lectures and code snippets posted here on this website. The lecture code is intended to be used as a set of examples that are relevant to the slides. Feel free to stop by office hours running this semester if you happen to have questions. The material below was originally taught by instructor Robert Rand.

Date Topic Class Material Homework
Aug 27 Week 1:
Introduction
Slides
Code
HW 1 (Due: Sept 6)
Test 1
Sept 3 Week 2:
Data Types
Slides
Code
HW 2 (Due: Sept 13)
Test 2
Sept 10 Week 3:
Functional Programming
Slides
Code
HW 3 (Due: Sept 20)
Test 3
Sept 17 Week 4:
Object-Oriented Programming
Slides
Code
HW 4 (Due: Sept 27)
Test 4
Sept 24 Week 5:
Iterators, Generators, Exceptions and IO
Slides
Code
HW 5 (Due: Oct 4)
Test 5
Test Inputs: 1 2 3 4 5
Oct 01 Week 6:
Regular Expressions and OS
Slides
Code
HW 6 (Due: Oct 11)
Test 6
Test Inputs: 1 2 3
Oct 15 Week 7:
Probability and Simulations
Slides
Code
HW 7 (Due: Oct 26)
Oct 22 Week 8:
Machine Learning (part 1)
Slides
Code
HW 8 (Due: Nov 8)
Training data
Oct 29 Week 9:
Machine Learning (part 2)
Slides
Code
HW 9 (Due: Also Nov 8)
Nov 05 Week 10:
HTTP Requests and HTML Parsing
Slides
Code
HW 10 (Due: Nov 15)
Test 10
Nov 12 Week 11:
Web Servers and Web APIs
Slides
Code + HTML
HW 11 (Due: Nov 22)
Test 11
Test Inputs: 1, 2, 3
Nov 19 Week 12:
Shell Commands and Fabric
Slides
Code, Fab
Nov 23
(Tuesday)
Week 13:
Graphical User Interfaces
Slides
Code
Dec 04
(Tuesday)
Week 14:
Concurrency and Performance
Slides
Code