Course Schedule
Note that this schedule is tentative and subject to change. Readings are from our text by Lewis and Loftus (L&L).
| Week | Topics | Reading | Work |
|---|---|---|---|
| Week 1 Aug 30 |
Introduction to computer systems, overview of Java program, Eclipse IDE. | L&L Ch. 1 (except 1.5), 2.0-2.5 | |
| Week 2 Sep 6 |
Variables, primitive types, expressions, conditional statements, while and do-while, assignment operators, I/O using JOptionPane, Strings and string conversions, comments, code style, Eclipse and CVS overview. | L&L 2.0-2.5 3.0-3.2, 3.4-3.7, 5.6 | HW#1 Out (Thu/Sep 9) |
| Week 3 Sep 13 |
Primitive types (cont), literals, variable name conventions, boolean operators, increment and decrement, assignment operators, precedence, casting. | L&L 1.0-1.4, 3.0-3.6 |
Quiz#1 (Mon/Sep 13) HW#1 Due (Sat/Sep 18) HW#2 Out (Thu/Sep 16) |
| Week 4 Sep 20 |
Introducing objects (creation and method invocation), memory maps and the heap, Java class library (String, Math, NumberFormat, parseInt), cmsc131Picture library, visibility (public, private), method call and return. | L&L 2.6-2.9, 4.0-4.2, 5.0 |
Quiz#2 (Mon/Sep 20) HW#2 Due (Thu/Sep 23) |
| Week 5 Sep 27 |
Program development and degbugging, method syntax, local variables, object references and aliasing, method overloading, parameter passing, pass by value, static and non-static members, "this". | L&L 4.2-4.6, 5.0-5.1 |
Midterm1 (Mon/Sep 27) Midterm Topics HW#3 Out (Mon/Sep 27) |
| Week 6 Oct 4 |
System Design, instance variables, constructors, accessors and mutators, shadowing (hiding), toString, and wrappers. |
Introduction to Program Design
[pdf]
The Software Development Process [pdf] L&L (5.0-5.2) |
HW#3 Due (Thu/Oct 7) |
| Week 7 Oct 11 |
Interfaces, generic methods, implementing interfaces, the cmsc131 Picture Library. | L&L 5.5 |
Quiz#3 (Mon/Oct 11) HW#4 Out (Thu/Oct 14) |
| Week 8 Oct 18 |
Switch statement, for loops, break and continue, arrays. | L&L 3.3, 3.8, 6.0 | Quiz#4 (Mon/Oct 18) |
| Week 9 Oct 25 |
Array of primitives and object references, command-line arguments, deep/shallow copying and privacy leaks, GUI design and the MVC design pattern, callbacks and event-driven programming. | L&L 6.1 (GUI's and MVC are not covered in L&L) |
Quiz#5 (Wed/Oct 27) HW#4 Due (Mon/Oct 25) HW#5 Out (Wed/Oct 27) |
| Week 10 Nov 1 |
Random numbers, generating permutations, more String methods, commenting and program documentation, Javadoc, multidimensional arrays, ragged arrays. | L&L 2.7, 6.3, Appendices G and M |
Quiz#6 (Mon/Nov 1) HW#5 Due (Thu/Nov 4) HW#6 Out (Thu/Nov 4) |
| Week 11 Nov 8 |
Packages, nested loops and break, call-stack, more on multidimensional arrays, abstract data types, more on the Java API (ArrayList, Stack), exceptions, bitwise operators, conditional operator. | L&L 2.7, 3.6, 5.5, 6.3, 6.4, 12.0, 12.2 |
Quiz#7 (Mon/Nov 8) HW#6 Due (Thu/Nov 11) |
| Week 12 Nov 15 |
Introduction to inheritance, superclasses, subclasses, method overriding, "is-a" vs. "has-a" relationships, polymorphism, use of super to call superclass methods, object class. | L&L Ch. 7 |
Midterm 2 (Mon/Nov15) HW#7 Out (Mon/Nov 15) |
| Week 13 Nov 22 |
Cont. of inheritance: abstract classes, interfaces, access specifiers, "this", overloaded constructors, use of super to call superclass constructor, final methods, final classes. Inheritance design example. | L&L Ch. 7 |
HW#7 Due (Wed/Nov 24) HW#8 Out (Wed/Nov 24) |
| Week 14 Nov 29 |
System design (event-driven programming and state-transition diagrams), interfaces, getclass and instanceof, up- and down-casting, cloning and equals methods. | L&L 5.5, 7.0-7.5 | Quiz#8 (Wed/Dec 1) |
| Week 15 Dec 6 |
Sorting (Selection, Insertion, Bubble, and Tree Sorts), Searching (Linear and Binary), running time and "Big-Oh" notation, iterators. | L&L 5.5, 6.2, and Appendix M | HW#8 Due (Tue/Dec 7) |
| Week 16 Dec 13 |
Final Exam, Tuesday, Dec 14, 4:00-6:00pm |