CSE 421 — Software Development in Java
Autumn 2009


Instructor Paolo Bucci
TA Jamie Colley
Time/Place MWF, 9:30–10:18, in DL 357
Syllabus see here
Newsgroup Carmen discussion groups
Resources see here
Credits U 3

Note: Information that appears in this font, below, is not yet officially posted. While the material is available for you to look at if you like, it is subject to change before its official posting.

Handouts

Lecture Day Date Topic Notes Textbook (Core Java) Alt. book (Big Java) Other
1 W Sep 23 Overview slides p. 1–24 1 HelloWorldApp (source, listing, output)
2 F Sep 25 Primitives and References slides p. 35–53, 71–102 2.1–2.10, 4.1–4.4, 7.1, 7.4–7.7 PrimitiveConversions (source, listing, output),
AliasByAssignment (source, listing, output)
3 M Sep 28 Eclipse slides p. 25–28
4 W Sep 30 Classes and Objects slides p. 105–132 3.1–3.2, 3.4–3.8 (optionally: 5, 6) PencilA (source, listing),
PencilB (source, listing)
5 F Oct 2 Classes and Objects II slides p. 132–161 8.1–8.2, 8.4–8.9 Artifact (source, listing),
ArtifactTester (source, listing, output),
Colors (source, listing),
SafePencil (source, listing)
6 M Oct 5 Interfaces slides p. 242–248 9.1–9.4 Salaried (source, listing),
Employee (source, listing)
7 W Oct 7 Javadoc slides p. 162–166 3.3, Appendix J cse421JavadocTags.txt
RandomWithParity (source, listing, documentation),
AlternatingCoin (source, listing, documentation),
UnfilteredRandom (source, listing, documentation)
8 F Oct 9 Immutability slides p. 53–63 7.3, 8.3
9 M Oct 12 JUnit slides 3.6, 5.5, 7.8, 8.10 TestRandom (source, listing output),
RandomWithParityTest (source, listing),
MoneyTest (source, listing)
10 W Oct 14 Generics slides p. 613–618, 621–622, 626–630 17.1–17.3, 17.5 Pencil (source, listing),
LeadedPencil (source, listing),
BoxOfPencils (source, listing),
BoxOfStrings (source, listing),
Box (source, listing),
PlasticBox (source, listing),
TestBox (source, listing),
11 F Oct 16 Interface Inheritance slides 10.5
12 M Oct 19 Implementation Inheritance slides p. 171–182 10.1–10.4 Person (source, listing),
Student (source, listing),
SmartPerson (source, listing),
OsuStudent (source, listing),
SimpleClient (source, listing), output)
13 W Oct 21 Inheritance Implications slides p. 183–192 10.6, 10.7 DivideAndConquerSortingMachine (source, listing),
QuickSortMachine (source, listing),
RandomWithParityTest (source, listing),
UnfilteredRandomTest (source, listing),
AlternatingCoinTest (source, listing)
14 F Oct 23 Equality and Core Methods slides p. 192–204 10.8
15 M Oct 26 Exceptions slides p. 551–571 11.2–11.7 BadDataException (source, listing),
DataAnalyzer (source, listing),
DataSetReader (source, listing)
16 W Oct 28 Midterm
17 F Oct 30 Collections slides p. 649–706 16 SimpleIterator (source, listing), output)
18 M Nov 2 Collections II slides HashMapDemo (source, listing, output),
PrintArray (source, listing, output)
19 W Nov 4 Assertions slides p. 571–575
20 F Nov 6 Factories slides
21 M Nov 9 File I/O slides p. 63–71 11.1, 19
W Nov 11 No class
22 F Nov 13 CVS/SVN slides
23 M Nov 16 Swing slides p. 281–318 2.11–2.13, 3.9, 9.6, 10.9–10.11, 18 SampleLabel (source, listing, output),
SampleTextField (source, listing, output),
SampleButton (source, listing, output),
bug1.png, bug2.png
24 W Nov 18 Nested Classes slides p. 258–275, 323–360 9.5, 9.7–9.10 LabelTest (source, listing, output),
TextFieldTest (source, listing, output),
ButtonTest (source, listing, output),
bug1.png, bug2.png,
ArraySorter (source, listing, output)
25 F Nov 20 MVC slides p. 361–368 BigBlob (source, listing),
CalcMVC (source, listing),
CalcModel (source, listing),
CalcView (source, listing),
CalcController (source, listing),
CalcV3 (source, listing),
CalcViewController (source, listing)
26 M Nov 23 Logging and Debugging slides p. 575–611 Loggers (source, listing)
Student (source, listing, output)
27 W Nov 25 Type Bounds slides p. 619–621, 630–640 17.4 ArrayOps (source, listing),
Filter (source, listing)
F Nov 27 No class
28 M Nov 30 Reflection slides p. 217–238
29 W Dec 2 Singleton slides
30 F Dec 4 TBD
T Dec 8 Final Exam

Labs

Labs must be turned in by the start of lecture on the day they are due. For the policy on late labs, see the syllabus.

Labs are turned in using Carmen. Please submit each lab by zipping or tarring all the requested files for that lab into a single file which you then upload to the Carmen dropbox. Furthermore, please name this zip or tar file according to your own last name.

You can submit each lab as many times as you like (up until 48 hours after the official deadline), but only your last submission will be graded and will determine your grade and possible late penalties. Make sure each submission is complete and includes all required files. The grader will not extract files from earlier submissions.

Number Due Date Description
1 Lecture 3 Warm Up
2 Lecture 6 Classes and Encapsulation
3 Lecture 9 Interfaces
4 Lecture 12 Immutability and JUnit
5 Lecture 15 Generics and Subtyping
6 Lecture 18 Core Methods
7 Lecture 21 Collections Framework
Read this first!
8 Lecture 24 File I/O
9 Friday, December 4, 11:59 pm *** hard deadline! *** CVS and Swing

Exams

Quiz Day, time
Midterm Wednesday, October 28, in class
Final Tuesday, December 8, 9:30–11:18 AM

Contact Information

Paolo Bucci Jamie Colley
email bucci (at cse) colleyj (at cse)
chat 421prof (at gmail)
421grader (at gmail)
office Dreese 672 Caldwell 420
phone 292-0066 688-4618 (during office hrs only)
hours Mon & Wed 1:30-2:20
Tue 8:30-9:20
Thu 11:30-12:20
Tue & Thu 1:30-3:00