CPSC 124 | Introduction to Programming | Spring 2009 |
Assignments | Important Dates | |||
---|---|---|---|---|
Week 1: 1/19-1/23Topics: course introduction; the mental landscape |
||||
Mon | Reading: The Joy of Programming (read sometime soon, when you have a chance - it's short) | |||
Wed | Reading: Eck ch 1.1-1.6
(reading guide)
Class Preparation: If you have an account on the department Linux machines, make sure you remember your password and can log in. If not, let me know by class time on Wednesday. In Class: Readiness Assessment Test |
|||
Thu | Lab 1: Introduction to Linux
and Java due Thu 1/29 |
|||
Fri | Class Preparation: Think of a card game you are familiar with. (Something not too complicated - only one deck of cards, and something you can play a good portion of in 5 minutes.) Write down directions for playing the game. Write the directions as if you were telling players what to do (e.g. "player 1, take a card from the deck"), not just as a list of rules. Bring your writeup to class. (Don't identify the game - just give the directions.) | |||
Week 2: 1/26-1/30Topics: names and things: Java programs, variables, types, strings, I/O, expressions |
||||
Mon | Reading: Eck ch 2.1-2.6.2
(reading guide)
In Class: Readiness Assessment Test |
|||
Wed | In Class:
|
|||
Thu | Lab 2: Names and Things due Thu 2/5 |
|||
Fri |
Class Preparation:
For each of the following tasks, (a) determine what input is needed
(e.g. the trip planner will need the miles traveled and the car's
miles per gallon, among other
things) and (b) write an algorithm for performing the computation
and displaying the results.
An algorithm is a list of
directions that a program would follow, but is written in more
English-like language. Your algorithms may include only
the following phrases:
print ... get ... as input ... is calculated as ...where ... can be filled in as appropriate.
In Class:
|
|||
Week 3: 2/2-2/6Topics: control: conditionals and loops |
||||
Mon | Reading: Eck ch 3.1-3.5
(reading guide)
In Class: Readiness Assessment Test |
|||
Wed | ||||
Thu | Lab 3: Control due Thu 2/12 |
|||
Fri |
Class Preparation:
For each of the following tasks, write an algorithm for a program
that carries out the task. Your algorithms may include only
the following phrases:
print ... get ... as input ... is calculated as ... set ... to ... repeat ... until ... if ... then ... [else if ... then ...]* [else ...]where ... can be filled in as appropriate. [] indicates that part can be left out, and * indicates that you can repeat that part as many times as you want.
In Class:
|
|||
Week 4: 2/9-2/13Topics: more loops and branches, stepwise refinement, arrays |
||||
Mon |
In Class:
|
|||
Wed | In Class: syntax quiz on basic program structure, variable
declarations, assignment statements, expressions, input and output,
if statements,
for/while loops
|
|||
Thu | Lab Preparation: read about Paint | Lab 4: More Control,
and Paint due Thu 2/19 |
||
Fri | Reading: Eck ch 7.1, 7.2.1, 7.2.4, 7.5.1-7.5.2
(reading guide)
In Class: No RAT, but do the reading as if there will be one!
|
|||
Week 5: 2/16-2/20Topics: arrays and exceptions |
||||
Mon |
In Class:
|
|||
Wed |
In Class:
|
|||
Thu | Lab 5: Arrays due Thu 2/26 (partial solutions) |
|||
Fri | Reading: Eck ch 3.7
(reading guide)
In Class: syntax quiz on arrays and constants
|
|||
Week 6: 2/23-2/27Topics: subroutines |
||||
Mon | Reading: Eck ch 4.1-4.6, 7.2.3
(reading guide)
In Class: Readiness Assessment Test |
|||
Wed | Class Preparation: Write a program to print out the words to all of the verses of the 99 Bottles of Beer song, without having separate System.out.println statements for every line of every verse. | |||
Thu | Project 1:
Minesweeper pseudocode meeting due Thu 3/5 |
|||
Fri | In Class: exam #1 | exam #1 Fri 2/27 |
||
Week 7: 3/2-3/6Topics: subroutines |
||||
Mon | In Class:
|
|||
Wed | In Class:
|
|||
Thu | Examples: | Lab 6: Subroutines
and Functions (any) three exercises due Thu 3/12 |
Project 1:
Minesweeper due Thu 3/12 |
|
Fri | In Class: | |||
Week 8: 3/9-3/12Topics: subroutines and program development |
||||
Mon | In Class: | |||
Wed | In Class: syntax quiz on subroutines and functions, including declarations, calls, and the semantics of parameters and return statements | |||
Thu | Lab 6: Subroutines
and Functions remainder due Thu 3/26 Lab 7: Programming with Subroutines and Functions due Thu 3/26 |
|||
Spring Break |
||||
Week 9: 3/23-3/27Topics: more about declarations; objects and classes |
||||
Mon | Reading: Eck ch 4.7
(reading guide)
In Class: no RAT, but do the reading as if there will be one! |
|||
Wed | Reading: Eck ch 5.1-5.4
(reading guide)
In Class: Readiness Assessment Test |
|||
Thu | Lab 8: Using Objects due Thu 4/2 |
|||
Fri | Class Preparation: Consider a bank which offers savings
accounts, checking accounts, and car loans. What information does
the bank need to keep track of for each of these things? What kind
of transactions can a bank customer perform involving these
things? Are there any operations the bank itself needs to be able
to do? Bring your written answers to class.
In Class: |
|||
Week 10: 3/30-4/3Topics: objects and classes |
||||
Mon |
In Class:
|
|||
Wed | In Class:
| |||
Thu | Lab 9: Pong due Thu 4/9 |
|||
Fri | In Class: syntax quiz on classes and objects, including
writing classes (with instance variables, constructors,
getters/setters, and other methods), creating objects, and invoking
methods on objects
|
|||
Week 11: 4/6-4/10Topics: arrays of objects, partially full arrays, dynamic arrays |
||||
Mon | Reading: Eck ch 7.2.5
(reading guide)
In Class: no RAT, but do the reading as if there will be one!
|
|||
Wed | In Class: exam #2 | exam #2 Wed 4/8 |
||
Thu | Project 2:
Breakout design meeting due Thu 4/16 |
|||
Fri | Reading: Eck ch 7.3, 7.5.3
(reading guide)
In Class: no RAT, but do the reading as if there will be one! |
|||
Week 12: 4/13-4/17Topics: ArrayList, APIs; inheritance, polymorphism, abstract classes, and interfaces |
||||
Mon | In Class: | |||
Wed | Reading: Eck ch 5.5-5.7.1
(reading guide)
In Class: Readiness Assessment Test |
|||
Thu | Lab 10:
Partially-Full and Dynamic Arrays due Thu 4/23 |
Project 2:
Breakout due Thu 4/23 |
||
Fri | Class Preparation: Banks often offer many different types
of accounts: standard checking and savings, dividend checking
(checking accounts that pay interest), certificates of deposit,
savings clubs, IRA savings accounts, ...
In Class: |
|||
Week 13: 4/20-4/24Topics: inheritance, polymorphism, abstract classes, and interfaces |
||||
Mon | In Class:
|
|||
Wed |
In Class:
|
|||
Thu | Lab 11:
Rabbit Hunt due Thu 4/30 |
|||
Fri | In Class: syntax quiz on inheritance, including writing a
subclass, implementing an interface, and using this
and super
|
|||
Week 14: 4/27-5/1Topics: GUI programming |
||||
Mon | Reading: Eck ch 6.1
(reading guide)
In Class: no RAT, but do the reading anyway! Notes: Examples:
|
|||
Wed | Reading: Eck ch 6.3-6.4.4, 6.6-6.7
(reading guide)
In Class: no RAT, but do the reading anyway!
More Information on GUIs: |
|||
Thu | Project 3:
Tic-Tac-Toe due Sun 5/10 at 2pm |
|||
Fri |
In Class:
|
|||
Week 15: 5/4-5/5Topics: wrapup |
||||
Mon | In Class: meet in the lab to work on project 3 | |||
Tue | ||||
Reading Period and Exams: 5/6-5/12 |
||||
Wed | ||||
Thu | ||||
Fri | ||||
Sat | ||||
Sun | end-of-semester deadline no work accepted after 5/10 at 2pm |
exam #3 Sun 5/10 11am-2pm |
||
Mon | ||||
Tue |