This outline is likely to change. It will be updated during the semester as necessary.
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'').
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.
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.
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/.
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.
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.
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.
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
Test this thurs in P120.
Homework for 3 April: Read chapter 8. Do this assignment.
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.
Here are some links: software horror stories and the ACM/IEEE Code of Ethics and Professional Practice.
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).
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