CIS200 lecture notes
CIS200 Lecture Notes: Introduction to Software Development Using Python
Week 1
-
Chapter 0A: Introduction to computing
Week 2
-
Chapter 0B: Computer hardware and operating systems
-
Chapter 1: Introduction to the Python programming
language
-
Optional:
Dawson, Chapter 1
Week 3
-
Chapter 2: Arithmetic, variables, and input-output
-
Chapter 3A: Conditional control
-
Optional:
Dawson, Chapter 2 and the first half of Chapter 3
- The demo programs that compute square roots:
-
A naive program that crashes after receiving a negative int:
sq00.py
-
A program that contains an assert command that prevents
a negative number from arriving to the point where square roots
are computed:
sq0.py
-
A program that uses an if-command to ask if a number
is nonnegative before allowing square-root computation:
sq.py
-
A program that uses an if-else-command to specify
a computation for nonnegatives and a computation for negatives:
sq2.py
-
A program that uses an if-command embedded within an
if-else to deal with two forms of invalid input:
sq3.py
Week 4
-
Chapter 3B: Iterative control
-
A repetitive version of the coin-flip game:
LotsOfDeals.py
-
Chapter 4: Computing with strings
(Sections 4.1-4.4 only)
-
Optional:
Dawson, the second half of Chapter 3 and the first half of Chapter 4
Week5
-
Examples from the lectures:
Week 6
-
Chapter 5: List data structures
(Sections 5.1-5.3, 5.5, 5.6 only)
-
Optional:
Dawson, the first half of Chapter 5
-
Examples from lecture:
-
Votes.py
-
Move1.py
-
ApptMgr.py
Week 7
-
Examples from lecture:
-
Grid.py
-
Puzzle.py
-
Chapter 6A: Small pieces: functions
-
Optional: the first half of Dawson, Chapter 6
-
The ATM examples:
-
ATM1.py |
ATM2.py |
ATM3.py
-
ATM4.py
and
BankDatabase.py
(You must download and use these together in the same folder.)
Week 8
-
A series of examples that show how to introduce functions
while refining an algorithm into a program --- a tic-tac-toe-like game:
- TTT0.py |
TTT1.py |
TTT2.py |
TTT3.py |
TTT4.py |
TTT5.py
-
Chapter 6B: Big pieces: modules
-
Optional: the second half of Dawson, Chapter 6
Week 9 (spring-break week)
-
Chapter 7: How to read and write text files
(This is for your information and is not required reading. It matches
Dawson's book, Chapter 7.)
Week 10
-
Chapter 8:
Objects for GUIs and animations
-
Optional: Dawson, Chapters 9-12
-
Note:
A good reference to Tkinter is found at
http://www.pythonware.com/library/tkinter/introduction/
-
The telephone book example:
TelBook.zip |
TelBookGUI.py |
TelephoneBook.py
Week 11
GUI examples from lecture:
-
A three-button counter written with copy-and-paste:
Counters0.py
-
How to use a function to manufacture customized functions:
Fcns.py
-
A generalized counter GUI using the previous technique:
Counters2.py
-
How to collect the addresses of button objects and reset all the buttons:
Counters3.py
-
How to use a class to generate controller objects that hold the
event-handling functions:
CounterGUI.py |
CounterButton.py
-
Counters.zip, a zipped folder that
contains all the examples listed here.
Week 12
-
A slide puzzle built with controller objects constructed
from a controller class:
PuzzleModel.py |
PuzzleView3.py
SlideControllers3.py
-
SlidePuzzle.zip, a zipped folder that
contains the previous three modules.
Week 13
-
Chapter 99:
Programming with C#
- Examples:
Reciprocal.cs |
ReciprocalEx.cs |
Votes.cs |
SlidePuzzle.cs
- A zip file that holds the examples:
Ch99.zip
Week 14
Examples of clocks:
-
Clock.cs
(compile with the command, csc /debug+ /t:library Clock.cs)
-
TestClock.cs
(compile with the command, csc /debug+ /R:Clock.dll TestClock.cs)
-
ThreeClocks.cs
(compile with the command, csc /debug+ /R:Clock.dll /t:library ThreeClocks.cs)
-
StartClocks.cs
(compile with the command, csc /debug+ /R:ThreeClocks.dll StartClocks.cs)
-
Clocks.zip: a zipped folder holding these files.
Week 15
-
Exam 3 review
This work is licensed under a Creative Commons License.