Computer Programming I
Comp 150

Fall Semester 2009

Tip of the Day

Course Information

Moodle

Zelle Programs

Graphics API graphics.py RGB Values
ASCII Codes
Computer Science in the News




Calendar / Syllabus

This calendar provides:

Please check this calendar and your wittenberg.edu email at least once daily for updates and announcements. You will be held responsible for the content.  You should always feel free to contact me with any questions, comments, or concerns.

Note that, although 16 weeks are listed, there are only 15 full weeks in the semester once fall and Thanksgiving breaks are accounted for.

The content of this and all web pages affiliated with this course is subject to change.

Note that this is the website for both sections of Comp 150 offered this semester: the 11:30 - 12:30 class (section 1), and the 12:40 - 1:40 class (section 2).  For any differences between the two classes, a reference to either (1) for section 1, or (2) for section 2, will be used.

Dates

Topics

Readings Due

Announcements

Week 1
8/24 - 8/28

Comp 150 Introduction
Simple Programs

- Welcome to Comp 150! I hope you find it a rewarding learning experience.

- Be sure you look through this site. It contains important information.

-
If you have a home computer you'd like to program in Python with, download Python here and install it now(!) so you have time to get help from me if you need it.  Most of you will probably want the "Windows x86 MSI Installer" or the "Mac Installer disk image".  If you need more details, please let me know.
Note:
Download Python from the link above: it is version 2.6.2.  Do not download Python version 3, as this is a rather different language that we will not be working with in this course.

You can view details of Python installation on my Software Installation page.

M

- Letter from 2009 Witt graduate and former Comp 150 student
- Computer Science at Wittenberg - Slides
- Class procedures - Computers and Programs - Slides

- Zelle 1.1 - 1.5

- Computer Science Career Trends
Courtesy Dr. Todd Neller of Gettysburg College
- Technology: It's Where the Jobs Are
- IT Talent Shortage
- Top 10 Reasons to Major in Computing

W

- Writing Simple Programs
simple-1.py, simple-2.py

Zelle 1.5 - 1.9

R (Lab)
- Begin Lab 1

F

- for loops, range

Zelle 2

Week 2
8/31 - 9/4

Computing with Numbers


M

- Expressions versus statements
- Software development
- Computing with numbers
quadratic.py
- Debugging tips
factWrong.py
Zelle 3.1 - 3.5

W

- Turtle graphics trial
turtle.py, turtleDemo.py
- Types
- Number systems and base conversions

Chp3Numbers.ppt
Zelle 3.6 - 3.7
Number Systems and Base Conversions
R (Lab)
- Lab 1 due
- Begin Lab 2

F

- Math workshop presentation
- Number systems and base conversions

Week 3
9/7 - 9/11

Computing with Strings


M

- Wrap up computer representation of numbers
- Working with strings
stringPrac-1.py, stringPrac-2.py
Zelle 4.1 - 4.4

W

Altered schedule (convocation):
Section 1: 12:30 - 1:15
Section 2: 1:25 - 2:10
- Working with strings
Zelle 4.5 - 4.6
R (Lab)
- Lab 2 due
- Begin Lab 3

F

- Working with strings

Week 4
9/14 - 9/18

Computing with Strings
Objects and Graphics


M

- String formatting
Chp4Strings.ppt

W

- Working with files
filePrac-1.py, filePrac-2.py, data.txt
Zelle 5.1 - 5.4
R (lab)
- Lab 3 due
- Begin Lab 4

F

- Working with files
- Introduction to objects and graphics
Chp5Graphics.ppt

Week 5
9/21 - 9/25

Objects and Graphics

For the test, you are allowed:
- One 3x5 notecard, handwritten notes on one side, blank on the other
- calculator
This goes for both the handwritten and the programming portions.

M

- Objects and graphics
graphicsPrac-1.py, graphicsPrac-2.py

W

- Bring questions for review
loopsExample.py
- Objects and graphics

R (lab) - Lab 4 due
- Begin Lab 5

F

Test #1 - handwritten portion

 

Week 6
9/28 - 10/2

Graphics
Functions








M

Test #1 - programming portion


W

- Objects and graphics
graphicsPrac-1.py, graphicsPrac-2.py

R (lab) - Lab 5 due
- Begin Lab 6

F

- Reminder about loops
forLoopPower.py
- Setting coordinates
futval_graph.py, futval_graph2.py
- User interaction
convert_gui.py

Week 7
10/5 - 10/9

Functions


M

- Writing functions
funkyPrac-1.py, funkyPrac-2.py
futval_graph2.py, futval_graph3.py, futval_graph4.py
Zelle 6.1 - 6.5.1

W

- Writing functions
- Functions that modify parameters
Chp6.ppt
Zelle 6.5.2 - 6.7
R (lab) - All I Really Need to Know about Pair Programming I Learned in Kindergarten
- PairProgramming.ppt
- Lab 6 due
- Begin Lab 7

F

- Quiz: Expressions versus statements
- Parameter passing
- Accessors and mutators

Week 8
10/12 - 10/16

Decision Structures


M

- Parameter passing
- Accessors and mutators
Zelle 7.1 - 7.1.2, 7.2 - 7.3

W

- If, elif, else
ifPrac-1.py, ifPrac-2.py
Zelle 7.5, 8.4
R (lab) - Lab 7 due
- Begin Lab 8

F

- Boolean expressions
Zelle 7.4

Week 9
10/19 - 10/23

Big Ideas in Computer Science

 

M

Fall break

 

W

- Exceptions
exceptionsPrac-1.py, exceptionsPrac-2.py

R (lab) - Lab 8 due
- Begin Lab 9

F

- Algorithm efficiency
sorting.py
- P, NP, NP-Complete
LimitationsOfAlgorithmPower.ppt
- Prizes Aside, the P-NP Puzzler Has Consequences
- The Status of the P versus NP Problem (Read up to and including "What If P = NP?".  You may skim the rest if you want.)
- Zelle 13.4.2 (Halting Problem)

Week 10
10/26 - 10/30

Big Ideas in Computer Science

The test will focus on material we've seen since the last test, but will include material from throughout the semester (since this course is very cumulative).

The test will include some early "big ideas" discussions, to be announced.

For the test, you are allowed:
- One 3x5 notecard, handwritten notes on one side, blank on the other
- calculator
This goes for both the handwritten and the programming portions.

M

- P, NP, NP-Complete
- Decidability and the halting problem
halting.py

W

Review for test - bring questions!

R (lab) - Lab 9 due
- Begin Lab 10

F

Test #2 - handrwritten portion

Week 11
11/2 - 11/6

Loop Structures
Simulation and Design


M

Test #2 - programming portion

W

- Loop structures
loopPrac-1.py, loopPrac-2.py
coords.txt
Zelle 8.1 - 8.3
R (lab) - Lab 10 due
- Begin Lab 11

F

- Simulation and Design
simulate-1.py, simulate-2.py
- Recall Dogs and Points (slide 4)
- Defining classes
msdie.py
Zelle 8.5, 9.1, 9.2

Week 12
11/9 - 11/13

Defining Classes


M

- Philosophy of Artificial Intelligence
slides
Zelle 9.3 - 9.5

W

- Defining classes
msdie.py
knapsack-1.py, knapsack-2.py
Zelle 10.1 - 10.4
R (lab) - Lab 11 due
- Begin Lab 12

F

- Comparators
sortPrac.py
Zelle 10.5 - 10.6

Week 13
11/16 - 11/20

Defining Classes
Data Collections

 

M

Class cancelled

W

- Comparators
Comparators.ppt
gpa.py, gpasort.py
Zelle 11.3
R (lab) - Lab 12 due
- Begin Lab 13

F

- Defining classes
cball1.py, cball2.py, cball3.py, cball4.py, projectile.py
- Making widgets
button.py, dieview.py
dieview2.py
Zelle 11.1 - 11.2, 11.4

Week 14
11/23 - 11/27

Data Collections

 






M

- Working with lists
stats.py
- Python calculator
calc.pyw
- Dictionaries
Zelle 11.5 - 11.6

W

Thanksgiving break

 

R (lab) Thanksgiving break
Gobble

F

Thanksgiving break

 

Week 15
11/30 - 12/4

Algorithm Design and Recursion




M

- Recursion

W

- Recursion
Zelle 13.2
R (lab)
- Lab 13 due
- Test #3 during lab period

F

- Searching
Zelle 13.1

Week 16
12/7 - 12/11

Algorithm Design and Recursion

 






M

- Functional programming

W



R (lab) - Lab 14 due

F



Finals Week

 

 



Section 1 (11:30 lecture): Final on Wed. 12/16, 8:00 AM - 11:00 AM
Section 2 (12:40 lecture): Final on Thur. 12/17, 3:30 PM - 6:30 PM

All materials (C) 2009 Steven Bogaerts unless otherwise noted.