|
Tentative Schedule |
Note that this schedule is tentative and subject to change. Readings are from our text by Lewis and Loftus (L&L).
Exam Dates:
- Midterm #1: Wednesday, October 12th (during Lab session)
- Midterm #2: Wednesday, November 16th (during Lab session)
- Final Exam: Friday, December 16th (4:00 pm; location to be announced)
| Week | Topics | Reading |
|---|---|---|
| Week 1 8/29 |
Introduction to computer systems, overview of a Java program, comments, code style, Eclipse IDE, CVS overview. | L&L 1.1-1.6, 2.1-2.6 |
| Week 2 9/5 |
Variables, primitives types, operators, String and String operators, Scanner class, conditional statements, while and do-while, constants (literals), variable name conventions, boolean operators, assignment operators, short-circuiting, operator precedence, use of Eclipse and CVS. | 5.1, 5.2, 5.3, 5.5, 5.7 |
| Week 3 9/12 |
Type casting, program design strategies, pseudocode, tracing, testing and debugging, introducing objects (creation and method invocation), reference variables, heap, import, cmsc131Picture library, Java class library (String, Math, NumberFormat), equality, null reference, garbage collection. | 3.1, 3.2, 3.3, 3.5, 3.6 |
| Week 4 9/19 |
Defining classes and methods, toString, visibility (public, private) and encapsulation, method call/return, parameter passing, pass by value, method syntax, local variables and scope, test drivers. | 4.1-4.4 |
| Week 5 9/26 |
Static and non-static methods and variables, method overloading, parameter type promotion, java memory layout (call stack), references as parameters, this. | 6.1-6.4, 6.7 |
| Week 6 10/3 |
Review of static variables and methods, JUnit testing, Constructors, accessors and mutators. | 6.8, 6.9 |
| Week 7 10/10 |
Interfaces (basics), switch statement, for loops, Random class, break and continue, nested loops, one-dimensional arrays of primitives, arrays as arguments, GUI design, MVC design. Midterm #1: Wednesday 10/12 in Lab. | 6.5, 5.4, 5.8, 7.1 - 7.5 |
| Week 8 10/17 |
More about interfaces, generic methods, Accessors and mutators (revisited), Java file structure, shadowing (hiding), wrappers, system design, eclipse debugger (in lab). | (review) 1.4, 1.5, 6.5, 6.7, 6.9, 7.4
(Some material is not in the textbook.) |
| Week 9 10/24 |
Event-driven programming, callbacks, One-dimensional arrays of object references, command-line arguments, arrays as instance variables, deep/shallow copying, privacy leaks, JUnit Testing. |
(Some material is not in the textbook.) 7.1-7.4 (review) |
| Week 10 10/31
|
Comments (revisited), types of documentation, Javadoc, Random number generation, valueOf, text matching, regular expressions, two-dimensional arrays of primitives, ragged arrays, two-dimensional arrays of object references | 3.4, 7.6, APPENDICES F, H, and I |
| Week 11 11/7 |
Packages, Exceptions (try, catch, finally), Java API (StringBuffer, Stack) | 10.1 - 10.5, 12.3, appendix M (Stack and StringBuffer sections)
|
| Week 12 11/14 |
Java API (ArrayList), Iterator, introduction to inheritance, superclasses, subclasses, method overriding, overriding vs. overloading, use of super and this, protected and package access, dynamic systems, state-transition diagrams. Midterm #2: Wednesday 11/16 in Lab. | 5.6, 7.7, 8.1 - 8.5, 9.7 |
| Week 13
11/21 |
Inheritance (continued): Object class, early and late binding, polymorphism, final methods, abstract classes, getClass, instanceof, up-casting, down-casting, equals, clone, "is-a" vs. "has-a" relationships. | 8.1-8.5(continued), 9.1-9.2 |
| Week 14 11/28 |
Interfaces, interfaces vs. abstract classes, multiple inheritance, interface hierarchies, bitwise operators, conditional operator, Sorting (Selection sort), "Big-Oh" notation. | 9.3 - 9.6, Appendix D |
| Week 15 12/5 |
Sorting (Bubble sort, insertion sort and Tree Sorts), Searching (Linear and Binary), running time. | 9.3 - 9.5(continued) |
| Week 16 12/12 |
Review. Final Exam: Friday, December 16, 4:00 - 6:00pm. Location to be announced. |
