CIT 590 Programming Languages
Spring 2013, David Matuszek
When you send me email about this course, please:
|May 6, 2013||Posted squarelotron_tests.zip.|
|Date||Lectures||Readings, Examples, etc.|
|Wed Jan 9||Introduction. Python vs. Java. Active learning vs. spectator sports. Using IDLE. Data types, expressions, and assignments. Program constituents: Input, arithmetic, decision making, looping, and output. Naming conventions.||Pages v-vii, 3-38 in Python book.
How NOT to go about a programming assignment
Grading Criteria for Assignments
|Fri Jan 11||Warm-up exercises (not to be turned in!)
01 Number Personalities
|Mon Jan 14||Functions. Abstraction, information hiding, software reuse. Testing, code walkthroughs. Scope.|| Pages 38-54 in Python book.
coke_machine.py and coke_machine_2.py
|Wed Jan 16||Recursion, global names, exceptions, functions,
||Pages 54-59 in Python book.|
|Fri Jan 18||02 Balanced Ternary|
|Mon Jan 21||MLK Day -- no classes|
|Wed Jan 23||Lists, and operations on sequences. Unit testing and Test Driven Design. Pair programming.|
|Fri Jan 25||03 Playfair Cipher|
|Mon Jan 28||References, identity, equality. Unit tests. Test-driven design.|| Pages 70-72 in Python book.
Wiki page on TDD
|Wed Jan 30||Sorting. Tuples, and strings. Deep and shallow copies. Dictionaries.||Pages 72-83.|
|Fri Feb 1||04 Circuits and Spanning Trees|
|Mon Feb 4||Sets, dynamic programming.|| Pages 88-99 in Python book.
|Wed Feb 6||Recursion||
Pages 100-110 in Python book.
|Fri Feb 8||05 KWIC index|
|Mon Feb 11||Shelves, file I/O, keyword arguments||Pages 112-123 in Python book.|
|Wed Feb 13||DRY. Doc comments. Functional programming. Quicksort.||Pages 127-137 in Python book.|
|Fri Feb 15||06 Battleship|
|Mon Feb 18||Object-oriented programming. Agile Programming and eXtreme Programming.|| Pages 141-152 in Python book.
bags.py (Example from class)
|Wed Feb 20||Comparison of Python and Java.|| Python to Java
|Fri Feb 22|| 07 Jigsaw Puzzle
|Mon Feb 25||Using the debugger. Style. More Java/Python comparisons.||Concise Guide to Python 2|
|Wed Feb 27||Midterm exam|
|Fri Mar 1||No lab Friday March 1.|
|Mon Mar 4||Spring break; no classes|
|Wed Mar 6|
|Mon Mar 11||Discussion of exam|| JUnit for Java
Java syntax (reference), especially
print statements, printf statements, and Scanner.
|Wed Mar 13||Sudden Java|
|Fri Mar 15||08 Pig|
|Mon Mar 18|| Class Structure
|Wed Mar 20||JUnit testing||SimpleIO.java|
|Fri Mar 22|| 09 Squarelotrons
|Mon Mar 25||Swing|
|Wed Mar 27||Swing, continued
|Fri Mar 29||10 Magic Squares|
|Mon Apr 1|| Simple I/O
|Wed Apr 3||
|Fri Apr 5||11 Cryptograms|
|Mon Apr 8|| MVC
|Wed Apr 10|| Animation
|Fri Apr 12||12 Snipe|
|Mon Apr 15|| Uncommon Syntax
Java Bits and Pieces
|Wed Apr 17||Introduction to Collections|
|Fri Apr 19||No lab this week. However, this would be a good time to work with your partner on the final assignment.|
|Mon Apr 22|| Java O-O Summary
|Mon May 6||Final
Exam 12:00 noon to 2:00pm.
Levine 101 (Wu & Chen).
|Exam will cover Java and programming concepts, but not Python syntax.|
|An assignment||Software that will be useful in this course||An article; indicates offsite||A tutorial|
|Official specification (always offsite)||A PowerPoint document, usually one of my lectures||Additional information about the assignment or topic||Example|