Computer Programming I

Comp 150

Fall Semester 2008

Course Information

Moodle
Check grades and solutions

Useful Resources

Happy Living
Advice for successful learning experiences

Zelle Programs Graphics API graphics.py
ASCII Codes

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.

Dates

Topics

Related Readings

Announcements

Week 1
8/25 - 8/29

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.

M

- Class procedures

- Computer Science at Wittenberg - Slides
- 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

- Computers and Programs - Slides

Zelle 1.1 - 1.4

W

- Writing Simple Programs

chaos.py

Zelle 1.5 - 1.9

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.

R (Lab)
- Lab 1

F

- Writing Simple Programs

Zelle 2.3 - 2.6

Week 2
9/1 - 9/5

Computing with Numbers


M

- For-loops, range, and accumulation

factorial.py

Zelle 2.6, 3.3

W

Class meets 12:30 - 1:15
(altered schedule for opening convocation)

- Software development
futval.py
- Numerical types
Chapter 3 slides
quadratic.py

Zelle 2.1 - 2.2, 2.7
Zelle 3.1 - 3.2, 3.4 - 3.6

R (Lab)

- Lab 1 due at 12:30 PM
- Begin Lab 2


F

- Numerical types
- Computer representation of numbers

Zelle 3 (Finish)
Number Systems and Base Conversions

Week 3
9/8 - 9/12

Computing with Strings

 






M

- Computer representation of numbers

Number Systems and Base Conversions

W

- Computer representation of numbers
- The string data type

Some additional practice on number systems, thanks to Dr. Shelburne.
Zelle 4.1 - 4.4

R (Lab)
- Lab 2 due at 12:30 PM
- Begin Lab 3

F

- Simple string processing
username.py
month.py
stringPrac.py

Zelle 4.1 - 4.4

Week 4
9/15 - 9/19

Computing with Strings

Everything you need to work with graphics in Python should already be installed on university computers.  If, however, you want to work on graphics in Python on a *home* computer, you'll need to get the graphics.py file.  There is a link to it at the top of the course web page.  graphics.py is not standard Python - it was written by the textbook author to make some basic graphics programming easier for us.

Once you have the graphics.py file, you need to know where to put it on your computer so that Python can find it when you type "import graphics" or "from graphics import *".  The simplest way is to just keep it in the same directory as any .py file you ever write yourself.

But there's a nicer way to make it always available to any .py file you ever write on your computer.  You'll need to find where you installed Python, then go to the Lib folder.  You should see a long list of .py and .pyc files, include familiar ones like string.py.  Copy the graphics.py file into there.  Now, whenever you import the graphics library, Python should be able to find it with no problem.

Let me know if you have any trouble!

M

- Strings, lists, and sequences
- Strings and secret codes

Zelle 4.1 - 4.4

W

- The IDLE debugger
debuggingPractice.py
- Input / Output
- File processing
fileTest.py
data01.txt

Chapter 4 slides

Zelle 4.5 - 4.7

R (lab)
- We will not physically meet for the lab period
- Lab 3 due via Moodle before 12:30 PM (Submit by email if you have Moodle problems)
- Begin Lab 4

F

- Objects
- Graphics programming

Chapter 5 slides

Zelle 5.1 - 5.4

Week 5
9/22 - 9/26

Objects and Graphics

Information for the programming portion of the test (these rules mirror typical online programming contest rules):
- You will use Python on the computer to work on the given programming problems.  They will be submitted to me at the end of class.  (Means of submission TBA.)
- You may bring whatever printed material you want - book, notes, printed labs, printed internet information, printed programs demonstrated in class, etc.
- You may not use the internet or email at all.
- You may not view any personal files (.py files, etc.) on your computer.  Only what you have printed out can be used.

Information for the written portion of the test:
- You may use a calculator.
- No other material of any kind.  No book, notes, labs, computer, internet, any other electronic device, etc.

If you have any questions, ask me long before the test!

M

- Objects
- Graphics programming
graphicsEx1.py

Last day of material on Test #1.

Zelle 5.1 - 5.4

W

- Graphics exercises
- Object diagrams, mutators, and clones

Zelle 5.5 - 5.6 (on your own)
R (lab) - Lab 4 due
- Begin Lab 5

F

Test #1 (programming portion)

 

Week 6
9/29 - 10/3

Graphics
Defining Functions








M

Test #1 (written portion)


W

- Pair Programming
slides
- Graphics exercises
graphicsEx2.py
- Interactive graphics
triangle.pyw
convert_gui.pyw
Kindergarten pair programming paper
Pair Programming video
Zelle 5.7 - 5.9
R (lab) - Lab 5 due
- Begin Lab 6

F

- Object diagrams, mutators, and clones
- Defining functions
happy.py
perimeter.py
Zelle 6.1 - 6.5.1, 6.6 - 6.7

Week 7
10/6 - 10/10

Functions
Decision Structures


M

- Defining functions
futval_graph2.py, futval_graph3.py, futval_graph4.py
- Functions that modify parameters
addInterest1.py, addInterest2.py, addInterest3.py
movePtHoriz.py, movePtHoriz2.py
Zelle 6.1, 6.3, 6.6, 6.5.2

W

- Functions that modify parameters
- Mutators, accessors, and other

Chapter 6 slides
Zelle 6.5.2
R (lab) - Lab 6 due
- Begin Lab 7

F

- If statements
ifPractice.py
Zelle 7.1 - 7.3, 7.5, 8.4

Week 8
10/13 - 10/17

Decision Structures
Loop Structures


M

- If statements
minMax.py
gameScores.py

Zelle 7 (Finish)
8.4

W

- Boolean algebra
- Exception handling
quadratic4.py
quadratic6.py

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

F

- Loops
circles.py
coords.txt

Zelle 8.1 - 8.3, 8.5

Week 9
10/20 - 10/24

Simulation and Design

 






M

Fall break (no class)

 

W

- Loops
Zelle 8 (Finish)
R (lab) - Lab 8 due
- Begin Lab 9
Zelle 9 (Finish by now)

F

- Simulation and design
rball.py
- Classes
msdie.py
Zelle 9
Zelle 10.1 - 10.5

Week 10
10/27 - 10/31

Simulation and Design
Defining Classes

Test 2 will be cumulative, but will focus on the material covered since test 1.

Information for the programming portion of the test:
- You will use Python on the computer to work on the given programming problems.  They will be submitted to me at the end of class.
- You may bring whatever printed material you want - book, notes, printed labs, printed internet information, printed programs demonstrated in class, etc.
- You may not use the internet or email at all.
- You may not view any personal files (.py files, etc.) on your computer.  Only what you have printed out can be used.

Information for the written portion of the test:
- You may *not* use a calculator.  You won't need it.  (Note difference from test #1.)
- No other material of any kind.  No book, notes, labs, computer, internet, any other electronic device, etc.

If you have any questions, ask me long before the test!

M

- Classes, applied to knapsack problem
msdie-wrong.py
knapsack.py

Last day of material on Test #2.
Zelle 10.1 - 10.5

W

- Classes, applied to knapsack problem
Zelle 10.1 - 10.5
R (lab) - Lab 9 due
- Begin Lab 10

F

Test #2 (programming portion)

Daylight Saving Time ends this Sunday at 2:00 AM.  Set clocks one hour earlier!

Week 11
11/3 - 11/7

Classes


Su 11/2
Daylight Saving Time ends - set clocks one hour earlier!

M

Test #2 (written portion)

W

- Classes, applied to knapsack problem
Zelle 10 (Finish)
R (lab) - Lab 10 due
- Begin Lab 11

F

Class canceled


Week 12
11/10 - 11/14

Data Collections

On your own, review and prepare any remaining questions for all of chapter 10.  This includes:
cball1.py, cball2.py, cball3.py, cball4.py
gpa.py
projectile.py
button.py

M

Class canceled

W

- Class comparators, applied to knapsack problem
knapsack.py

R (lab) - We will not meet as a class for lab

F

- Highlights of additional list functionality
sortEx.py
introFunctional.py

Zelle 11.1 - 11.3

Week 13
11/17 - 11/21

Object-Oriented Design

 

M

- Application:
dieview2.py
- Application:
calc.pyw, button.py
- Dictionaries
dictionaries.py
Zelle 11.4 - 11.6

W

- Dictionaries
- Object-oriented design

Chp 12 slides
Zelle 12.1
R (lab) - Lab 11 due
- Begin Lab 12

F

- OOD application: dice poker
dice.py, pokerapp.py, textpoker.py, guipoker.py
Zelle 12.2 - 12.3

Week 14
11/24 - 11/28

Algorithm Design and Recursion

 






M

- Inheritance preview: blackjack
- Searching
searches.py
Zelle 12.4
Zelle 13.1 - 13.2

W

Thanksgiving break

 

R (lab) Thanksgiving break
Gobble

F

Thanksgiving break

 

Week 15
12/1 - 12/5

Algorithm Design and Recursion

Test 3 will be cumulative, but will focus on the material covered since test 2.

Information for the programming portion of the test (over the weekend):
- It will be a "take-home" test.
-
You will use Python on a computer to work on the given programming problems.
- On your honor, you will be allowed a maximum of one hour for the take-home portion of the test.
- You may use whatever printed material you want - book, notes, printed labs, printed internet information, printed programs demonstrated in class, etc.
- You may not use the internet or email at all.
- You may not view any personal files (.py files, etc.) on your computer.  Only what you have printed out can be used.

Information for the written portion of the test (Monday):
- You may *not* use a calculator.  You won't need it.
- No other material of any kind.  No book, notes, labs, computer, internet, any other electronic device, etc.

If you have any questions, ask me long before the test!


M

- Searching
searches.py
- Algorithm analysis with theta notation

Last day of new material for test #3.
Zelle 13.1

W

- Recursion
recursion.py
Zelle 13.2
R (lab)
- Lab 12 due
- Begin Lab 13

F

- Recursion

Test #3 programming portion as take-home
Zelle 13.2

Week 16
12/8 - 12/12

Algorithm Design and Recursion
Misc Topics

 






M

Test #3 written portion in class

W

- Philosophy of AI?
R (lab) - Lab 13 due

F

- Decidability
decidability.py
- Course evaluations

Zelle 13.4.2

Finals Week

 

 


T 12/16

12:00 PM - 3:00 PM Final 

All materials © 2008 Steven Bogaerts unless otherwise noted.