CIT 590 Programming Languages and Techniques
  Fall 2016, David Matuszek

This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email team@piazza.com.

Find our class page at: https://piazza.com/upenn/fall2016/cit590/home

Meeting times
Lecture MW 4:30-6:00 Levine 101 (Wu & Chen)
Recitations F 11:00-12:30
F 2:00-3:30
F 3:00-4:30
Towne 321
Towne 311
Towne 315
 Office hours
Piazza (For fastest response, try here first!) Always open, 24/7  
Tuesdays 1:00-2:30 Levine 160
For TA routine office hours, and changes to those hours, check Piazza.
Search Dave's web sites:
Loading
Links
Last year's CIT 590
Academic Integrity Policy
Textbooks
Academic resources
Piazza
Canvas
Late Policy
Concise Python 3
Java Syntax Pages


Date Lectures Readings, Assignments, etc.
Aug 31 PDF Introduction to CIT 590
PDF Just enough Python
Assignment Lunar Lander (Python)
Optional Read Why is Programming Fun? external link
Sept 5 Labor Day (no classes)
Sept 7 PDF Variables and values
PDF Unit testing
Read Unit Testing in Python
Assignment Pig
Sept 12 PDF Using IDLE Example number_personalities.py and number_personalities_test.py
Sept 14 PDF More about values
PDF Collections
Read The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) external link
Assignment Three Musketeers
Sept 19 PDF Loops
PDF
Functions
PDF
Errors

Sept 21 PDF Math
PDF
Strings
Assignment Traveling Salesman, city-data.txt, earth-distance.py
Sept 26 PDF References
Sept 28 PDF Files and Directories Assignment Squarelotrons
Oct 3 PDF Classes and Objects  Assignment Voting Booth (due Oct. 18)
Oct 5 No class
Fall Term Break is October 6 to 9, so no Friday recitations this week.
Oct 10 PDF Tkinter
PDF Functional Python

Oct 12 Quiz  Midterm and Answers
Oct 17 PDF Processing Syntax
PDF Processing Drawings
Read Python to Java
Assignment
Picture assignment and student submissions
Oct 19 PDF Processing Transformations
PDF Processing Animation

Oct 24 PDF Control Structures
PDF Processing and Java
PDF Refactoring
Assignment Game 
Oct 26 PDF Getting Java and Eclipse
PDF Class Structure
Read Starting Eclipse
Oct 31 PDF Polymorphism
 Read Unit Testing in Java
Nov 2 PDF JUnit Assignment Simple21
Nov 7 PDF Java I/O
PDF Simple Text I/O

Nov 9 PDF Exceptions
PDF Error Messages
Assignment Percolation
Nov 14 PDF Strings
PDF Collections
PDF Generics

Nov 16 PDF Namespace, Scope, Access
PDF Arrays
Assignment Fractions
Nov 21 PDF Operators
PDF Comments
PDF Style Rules
 Assignment Caesar Cipher
Due next Tuesday Midnight, as usual
Nov 23 Day before Thanksgiving (No class)
No Friday recitations the week of Thanksgiving.
Nov 28 PDF Inner Classes
PDF Abstract Classes

Nov 30 PDF More about Classes
PDF
Managing Complexity
  Assignment Battleship
Dec 5 PDF Analysis
PDF Searching

Dec 7 PDF Hashing
PDF Enums

Dec 12 PDF Java O-O Summary  
Dec 20 DRLB A1
3:00 - 5:00 p.m.
Registrar's final exam schedule
Exam dates and times are set by the Registrar and are non-negotiable.
Key
PDF A PDF document, usually one of my lectures Assignment An assignment Software Software that will be useful in this course
Tutorial A tutorial More information Additional information about the assignment or topic official spec Official specification (always external link offsite)
Read An article; external link indicates offsite Example Example Quiz Quiz or exam
d