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: Fridays, 1:30-3:00pm
Location: Towne 303
Instructor: Eric Kutschera
email: kute@seas
TAs:
Guillermo Gutierrezemail: gguti@seas
David Xuemail: davix@seas
Office Hours:
Eric Kutschera:
Guillermo Gutierrez:2-4 PM Sundays Moore 207
David Xu:Friday 5-7PM Moore 207
Prerequisites: CIS 110 or equivalent; basic programming knowledge
Links: Piazza
Canvas
Official Python Documentation

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

Date Lecture Slides Homework
Jan 16 Week 1:
Introduction
Slides
Code
HW 1 (Due: Jan 25)
Jan 23 Week 2:
Data Types
Slides
Code
HW 2 (Due: Feb 1)
Jan 30 Week 3:
Functional Programming
Slides
Code
HW 3 (Due: Feb 8)
Feb 6 Week 4:
Object Orientation
Slides
Code
HW 4 (Due: Feb 15)
Feb 13 Week 5:
Generators Exceptions and IO
Slides
Code
HW 5 (Due:Feb 22)
Feb 20 Week 6:
Regular Expressions and Other Modules
Slides
Code
HW 6 (Due: Mar 1)
Feb 27 Week 7:
HTTP Requests and HTML Parsing
Slides
Code
HW 7 (Due: Mar 15)
Mar 6 Week 8:
Web Servers and Web APIs
Slides
Code
jinja_template
jinja_extends
HW 8 (Due: Mar 22)
Mar 13 Spring Break
Mar 20 Week 9:
Scientific Computing
Slides
Code
Exon Mobile CSV
HW 9 (Due: Mar 29)
Mar 27 Week 10:
User Interfaces (Graphical and Text)
Slides
Tkinter Code
Curses Code
In class code Code
imgs zip
HW 10 (Due: Apr 5)

Project Proposal
(Due: Apr 5)
Example Final Project (Python 2.7)
Apr 3 Week 11:
Concurrency and Performance
Slides
Code
Plot
Work on Project
Apr 10 Week 12:
More Webservers
Slides
Code Zip file
Work on Project
Apr 17 Week 13:
Bash Script Replacement
Slides
Code
Work on Project
Apr 24 Week 14:
Mixing C with Python
and
Python Module and Package System
Slides
Code
Project Code Due:
Wed April 29 23:59
(Last day of classes)
Demo Time Slots
During Finals Week
(Mon May 4 - Tues May 12)