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, 1:30-3:00pm in Towne 305
Instructor:
Sumit Shyamsukha ssumit@seas.upenn.edu
TAs:
Sumit Shyamsukha
Arun KirubarajanMonday: 12-2pm (Weiss Tech House)
Cassandra LiMonday: 4-6pm (Weiss Tech House)
Shivansh InamdarWednesday: 3-5pm (Weiss Tech House)
Prerequisites: CIS 110; CIS 120 highly recommended
Links: Piazza
Canvas
Official Python 3.4 Documentation

There will be weekly homeworks and a final project. Homeworks account for 65% of the grade and the final project accounts for 35%.


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
August 30 Week 1:
Introduction
Jupyter Notebook
Slides
HW 1
September 6 Week 2:
Comprehensions and Functions
Jupyter Notebook
HW 2
September 13 Week 3:
Object-Oriented Programming
Jupyter Notebook
HW 3