CS 115 outline by week

This outline is likely to change. It will be updated during the semester as necessary.

12 Jan
(classes start on the 14th)

Course overview. Elementary hardware architecture and system software architecture. Rudiments of program syntax.

Using the ProgramLive CD. Chapter/Lesson 0.

Homework for next week: read Lesson 0, intro to livetexts in the Program Live CD (henceforth called ``PL'').

19 Jan
(no classes monday)

Intro to Java primitive data types and objects, expressions, graphics, programming style and habits. Intro to DrJava. Chapt 1.

Homework for 26 Jan.: Read Ch 1 to the end, AND Do Lesson 1 thru 1.6.

Do the exercises even though they're not assigned to turn in!

Note: sections of the book mostly correspond to PL, e.g., section 1.6 corresponds to lesson 1-6. This week you should study both, to get familiar with the features of PL as well as the textbook. Later on you may decide to focus on one or the other, but know your options.

26 Jan
Methods calls and definitions, stack and frames. Stepwise refinement. Chapt 2.

Reading for 2 Feb: Read ch 2 through 2.3 (or PL through lesson 2-4).

Homework for 2 Feb: Turn in the following two programs:

A) In PL, review lesson 1-4 and under Labs do PGL-3 on the if-else statement. (To find the ``lab'' numbered PGL-3, go to one of the 1-X lessons and click on the chemistry beaker icon to see the list of labs.) Turn in: the programming exercise described in the lab, with your code for item 5 under step 4 (i.e., set z to the largest of x and y).. Name the program file hw1_A.java

Follow the instructions: use JLiveWindow for input/output, even if you know some fancier Java GUI stuff.

B) In PL, review lesson 1-4 and under Homework do PGL-2 HW 2 Conditionals and comparisons, item B2. (Click the house icon and choose "PGL-2 HW 2".) Turn in: a program file named hw1_B.java

DO MORE: skim all the exercises for the assigned reading sections. If you know the answers instantly, fine, then you're done. If you don't, then take time to review and keep working on exercises until you feel confident. Bring questions to class and to TA's office hours. Be aware that occasionally textbooks have bugs; for example, item 6 in lab PGL-3 is worth looking at - but it's an impossible specification.

2 Feb
Methods calls and definitions, stack and frames. No lecture this Mon, professor out of town - but he'll lecture on Friday.

Homework for tuesday, 10 Feb: Read ch 2 (and/or PL 2-1 through 2-5). Do ch 2 exercises E8,9,16,17,30,31. To turn in: a single file that declares a class called Functions, as described in the paragraph on p100 at the beginning of this series of exercises. This homework may be done in groups of 1 or 2 students.

For additional practice, check out http://javabat.com/.

9 Feb
Methods and stepwise refinement.

Test this thurs in P120 at 2pm.

Homework for thursday, 19 Feb: Read ch 3. Do projects PGL-1 (Project Dates) and PGL-2 (Guessing Game) in PL ch 2.

16 Feb
(no classes Mon) Classes, the idea of object-oriented (OO) design. Chapt 3.

Homework for thursday, 26 Feb: Review ch 3. Do projects PGL-1 (drawing faces) and PGL-2 (flights) in PL ch 3. Reminder: homework is to be done individually unless we specify that groups are allowed. No groups this time.

23 Feb
Subclasses, inheritance, OO design, chapt 4.

Homework for friday, 6 March: Read ch 4.1-4.6 (lesson pages 4-1 to 4-4).
Do ch 4 ex E6 (which is the Movie Reviews project). Pay attention to step 4, i.e., include code for testing. Note that this project uses JLiveRead; you'll need to investigate that on your own. Get to know the index, glossary, and other reference tools. ALSO do exercises E7 through E11 on page 168. Put the code for all of the classes in a single file. Include one additional class that has some simple tests.

2 March
OO design; mutable types and security.

9 March
(Spring Break)

16 March

Loops, loops, loops, loops. Chapt 7. Basic file input/output.

Homework for 23 March: Read ch 7. Do exercises E2, E3, E4, E6, and E12 on pages 266-8 of the textbook. Your code must use loops with the invariants specified in the exercises. Include the invariant as a comment. For each exercise you'll write a static function. You'll also write a main procedure that tests these functions by batch processing from an input file to an output file. Here are the detailed instructions.

Here are two sample programs, SimpleFileIOdemo.java and FileIOdemo.java

23 Mar
Arrays, array algorithms, multidimensional arrays. Chapt 8.

Test this thurs in P120.

Homework for 3 April: Read chapter 8. Do this assignment.

30 Mar
More on array algorithms.

Here are the sample programs discussed in lectures this week: ArrayAndFileChooser.java andDaveWaveFile.java.

Homework for 13 April:
Read ch 9 and do this project on Mozart's dice game. You may work in groups of 1 or 2 people.

6 Apr
More OO design, Iterator pattern, interfaces (UML object diagrams). Exceptions. Chapts 10, 11, 12 through 12.3 (but omit ``inner classes'' and ``nested classes''). Ethics and professional responsibility: reliability, usability, security, etc.

Here are some links: software horror stories and the ACM/IEEE Code of Ethics and Professional Practice.

13 Apr
Object orientation: data abstraction; subtypes/inheritance; and now: interaction. Interfaces, GUIs, event-handling. Read ch 14 (short but worth reading) and 17 which is on event driven programming.

Here are some code samples from lecture: DemoIterator.java (example of Iterator interface),
ListenDemo.java (first example of a listener), ListenDemoWithField.java, ListListenerDemoDN.java (JList with selection).

20 Apr
More on listeners, event-handling, and GUIs.

Test on thursday at 2pm in P120.

Homework for 26 April and for 1 May is in drawMuseReqts.pdf

Demo files for mouse handling: Coordinates.java, CoordinatesPanel.java, CoordinatesListener.java, RubberLines.java, RubberLinesPanel.java

Demo file for MIDI: MidiDemo.java

27 Apr
Recursion, project design issues.



naumann 2009-04-24