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 | |
|---|---|---|---|
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 |