CSE 421 — Software Development in Java
Spring 2012


Instructor Paolo Bucci
TAs 9:30 section: Jingwei Xu
10:30 section: Justin Vayda
Time/Place MWF, 9:30–10:18, Dreese Lab 369
MWF, 10:30–11:18, Dreese Lab 369
Syllabus see here
Discussion/Help 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 M Mar 26 Overview 6-up
2-up
p. 1–24 HelloWorldApp (source, listing, output)
2 W Mar 28 Primitives and References 6-up
2-up
p. 35–53, 71–102 PrimitiveConversions (source, listing, output),
AliasByAssignment (source, listing, output)
3 F Mar 30 Eclipse 6-up
2-up
p. 25–28
4 M Apr 2 Classes and Objects 6-up
2-up
p. 105–132 PencilA (source, listing),
PencilB (source, listing)
5 W Apr 4 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 F Apr 6 Interfaces 6-up
2-up
p. 242–248 Salaried (source, listing),
Employee (source, listing)
7 M Apr 9 Javadoc 6-up
2-up
p. 162–166 cse421JavadocTags.txt
RandomWithParity (source, listing, documentation),
AlternatingCoin (source, listing, documentation),
UnfilteredRandom (source, listing, documentation),
StackOfInteger (source, listing, documentation),
StackOfIntegerOnArray (source, listing, documentation)
8 W Apr 11 Immutability 6-up
2-up
p. 53–63
9 F Apr 13 JUnit 6-up
2-up
TestRandom (source, listing output),
RandomWithParityTest (source, listing)
10 M Apr 16 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 W Apr 18 Interface Inheritance 6-up
2-up
12 F Apr 20 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 M Apr 23 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 W Apr 25 Equality and Core Methods 6-up
2-up
p. 192–204
15 F Apr 27 Exceptions 6-up
2-up
p. 551–571 BadDataException (source, listing),
DataAnalyzer (source, listing),
DataSetReader (source, listing)
16 M Apr 30 Midterm
17 W May 2 Collections 6-up
2-up
p. 649–706 SimpleIterator (source, listing), output)
18 F May 4 Collections II 6-up
2-up
HashMapDemo (source, listing, output),
PrintArray (source, listing, output)
19 M May 7 Assertions; Singleton 6-up
2-up
p. 571–575
20 W May 9 Factories 6-up
2-up
21 F May 11 File I/O 6-up
2-up
p. 63–71
22 M May 14 CVS/SVN 6-up
2-up
23 W May 16 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 F May 18 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 M May 21 MVC 6-up
2-up
p. 361–368 BigBlob (source, listing),
CalcMVC (source, listing),
CalcModel (source, listing),
CalcView (source, listing),
CalcController (source, listing),
CalcMVCAlt (source, listing),
CalcViewAlt (source, listing),
CalcControllerAlt (source, listing)
26 W May 23 Logging and Debugging 6-up
2-up
p. 575–611 Loggers (source, listing)
Student (source, listing, output)
Debugging Tutorial
27 F May 25 Type Bounds 6-up
2-up
p. 619–621, 630–640 ArrayOps (source, listing),
Filter (source, listing)
M May 28 No class
28 W May 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),
CalcApp (source, listing),
CalcMVC (source, launch web start)
29 F Jun 1 Memory Leaks and Random 6-up
2-up

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
Read this first!
8 Lecture 24 File I/O
9 Lecture 29 *** hard deadline! *** CVS and Swing

Exams

Quiz Day, time
Midterm Monday, April 30, in class
Final 9:30 section: Tuesday, June 5, 9:30–11:18 AM
10:30 section: Wednesday, June 6, 9:30–11:18 AM

Contact Information

Paolo Bucci Jingwei Xu Justin Vayda
email bucci (at cse.ohio-state.edu) xu.670 (at osu.edu) vayda3 (at gmail.com)
office Dreese 672 Caldwell 420 Caldwell 420
phone 292-0066 688-4618
(during office hrs only)
688-4618
(during office hrs only)
office hours Mon 11:30-12:30, Tue 10:00-11:00
Wed 11:30-12:30, Thu 9:30-10:25
by appointment
Mon 2:00-3:00, Wed 2:00-3:00
by appointment
Tue 2:00-3:00, Thu 2:00-3:00
by appointment