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