CSE 421 — Software Development in Java
Autumn 2011


Instructor Prof. Paul Sivilotti
TA Rick Hutcheson
Time/Place MWF, 11:30–12:18, Dreese 369
Syllabus see here
Questions Piazza Forums
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, 8th ed) Other
1 W Sept 21 Overview 6-up
2-up
p. 1–24 HelloWorldApp (source, listing, output)
2 F Sept 23 Primitives and References 6-up
2-up
p. 35–53, 71–102 PrimitiveConversions (source, listing, output),
AliasByAssignment (source, listing, output)
3 M Sept 26 Eclipse 6-up
2-up
p. 25–28
4 W Sept 28 Classes and Objects 6-up
2-up
p. 105–132 PencilA (source, listing),
PencilB (source, listing)
5 F Sept 30 Classes and Objects II 6-up
2-up
p. 132–161 Artifact (source, listing),
ArtifactTester (source, listing, output),
Colors (source, listing),
SafePencil (source, listing)
6 M Oct 3 Interfaces 6-up
2-up
p. 242–248 Salaried (source, listing),
Employee (source, listing)
7 W Oct 5 Javadoc 6-up
2-up
p. 162–166 cse421JavadocTags.txt
RandomWithParity (source, listing, documentation),
AlternatingCoin (source, listing, documentation),
UnfilteredRandom (source, listing, documentation)
8 F Oct 7 Immutability 6-up
2-up
p. 53–63
9 M Oct 10 JUnit 6-up
2-up
TestRandom (source, listing, output),
RandomWithParityTest (source, listing),
MoneyTest (source, listing)
10 W Oct 12 Generics 6-up
2-up
p. 613–618, 621–622, 626–630 Pencil (source, listing),
LeadedPencil (source, listing),
BoxOfPencils (source, listing),
BoxOfStrings (source, listing),
Box (source, listing),
PlasticBox (source, listing),
TestBox (source, listing),
11 F Oct 14 Interface Inheritance 6-up
2-up
12 M Oct 17 Implementation Inheritance 6-up
2-up
p. 171–182 Person (source, listing),
Student (source, listing),
SmartPerson (source, listing),
OsuStudent (source, listing),
SimpleClient (source, listing), output)
13 W Oct 19 Inheritance Implications 6-up
2-up
p. 183–192 DivideAndConquerSortingMachine (source, listing),
QuickSortMachine (source, listing),
RandomWithParityTest (source, listing),
UnfilteredRandomTest (source, listing),
AlternatingCoinTest (source, listing)
14 F Oct 21 Equality and Core Methods 6-up
2-up
p. 192–204
15 M Oct 24 Exceptions 6-up
2-up
p. 551–571 BadDataException (source, listing),
DataAnalyzer (source, listing),
DataSetReader (source, listing)
16 W Oct 26 Midterm
17 F Oct 28 Collections 6-up
2-up
p. 649–706 SimpleIterator (source, listing), output)
18 M Oct 31 Collections II 6-up
2-up
HashMapDemo (source, listing, output),
PrintArray (source, listing, output)
19 W Nov 2 Assertions 6-up
2-up
p. 571–575
20 F Nov 4 Factories 6-up
2-up
21 M Nov 7 File I/O 6-up
2-up
p. 63–71
22 W Nov 9 CVS/SVN 6-up
2-up
F Nov 11 No class
23 M Nov 14 Swing 6-up
2-up
p. 281–318 SampleLabel (source, listing, output),
SampleTextField (source, listing, output),
SampleButton (source, listing, output),
bug1.png, bug2.png
24 W Nov 16 Nested Classes 6-up
2-up
p. 258–275, 323–360 LabelTest (source, listing, output),
TextFieldTest (source, listing, output),
ButtonTest (source, listing, output),
bug1.png, bug2.png,
ArraySorter (source, listing, output)
25 F Nov 18 MVC 6-up
2-up
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 21 Logging and Debugging 6-up
2-up
p. 575–611 Loggers (source, listing)
Student (source, listing, output)
Debugging Tutorial
27 W Nov 23 Type Bounds 6-up
2-up
p. 619–621, 630–640 ArrayOps (source, listing),
Filter (source, listing),
DivideAndConquerSortingMachine (source, listing),
DivideAndConquerSort (source, listing),
QuickSort (source, listing),
F Nov 25 No class
28 M Nov 28 Reflection 6-up
2-up
p. 217–238
29 F Dec 2 Singleton 6-up
2-up
30 W Nov 30 Application Deployment 6-up
2-up
p. 493–539 Example (source, web page),
Trivial (source, listing),
CalcModel (source, listing),
CalcView (source, listing),
CalcController (source, listing),
CalcApplication (source, listing),
CalcApplet (source, listing)

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.

Note the deadline for the last lab (lab 9). No late submissions will be accepted for lab 9.

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 Behavioral Subtyping
6 Lecture 18 Core Methods
7 Lecture 21 Collections Framework
8 Lecture 24 File I/O
9 last lecture CVS and Swing

Exams

Quiz Day, time
Midterm Wednesday, Oct 26, in class
Final Thursday, Dec 8, 11:30–1:18 PM

Contact Information

Dr. Paul Sivilotti Rick Hutcheson
email paolo (at cse) hutcheson.34 (at osu)
chat 421prof (at gmail)
Chat with Prof. Sivilotti
421grader (at gmail)
Chat with Rick
office Dreese 695 Caldwell 420
phone 292-5835 (or use Google Voice) 859-2633
office hours Thu. 3:30–4:30
Fri. 1:30–2:30
Mon. 10:30–11:30
Wed. 1:00–2:00
appointments Mon. 2:30–4:30: reserve here with gcal
other times: by email request