CSCI 220-02 - Computer Programming I
Lecture: MWF 09:30-10:20AM / HWE 300
Lab: W 2:30-5PM / HWE 334
An introduction to programming and problem solving. Topics include data types, variables, assignment, control structures (selection and iteration), lists, functions, classes, and an introduction to object-oriented programming.
Prerequisite: CSCI 120 or CSCI 180 or CSCI 210 or MATH 111 or higher or permission of the department.
Co-requisite: CSCI 220L - Programming I Laboratory.
- Test 1: Friday, Feb 27, 2015
- Test 2: TBA
- Final: noon-3pm, Monday, May 4, 2015
Homework 1, Homework 2, Homework 3, Homework 4, Homework 5.
Readings & References
- Antikythera Mechanism - 2100-year-old computer is working again. ("Its user interface is deceptively simple; it hides a complex mathematical model, which tracks the movements of planetary bodies.")
- Also a virtual reconstruction showing the complexity of its inner workings and the movement of the planet dials.
- Babbage's Difference Engine and how it works gives as a hint to the complexity and elegance of the Antikythera Mechanism. (Also the amount of pre-existing knowledge that was needed to build it - the mechanism is just the tip of the iceberg. Clearly, an artifact from an advanced civilization, whose theoretical records did not survive.)
- Lewyn, M. "Flying in Place: The FAA's Air Control Fiasco", Business Week, April 26, 1993. A follow up. And closure (!?).
- Gleick, J. "A Bug and a Crash", (appeared as "Little Bug, Big Bang" in The New York Times Magazine), December 1, 1996.
- An introduction to pair programming. This 9-minute video describes what pair programming is, the do's and don'ts of effective pairing, and the pros and cons of pair programming.
- Intro to Python
- Sorting algorithms:
- Selection sort. This 9-minute video visually describes the selection sort algorithm.
- Insertion sort. This 9-minute video visually describes the selection sort algorithm.
- Bubble sort. This 5-minute video visually describes the selection sort algorithm.
Artifacts & Rules
- Sounds - find sound effects and musical instrument samples.
- Python language and IDLE development environment.
- jythonMusic provides software for music-making and creative computing. It is a collection of Jython libraries for music, images, graphical user interfaces (GUIs), and connecting to external MIDI devices, smartphones, and tablets, among others.