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 Jan 24 |
Introduction to computer systems, overview of a Java program, comments, code style, I/O via JOptionPane, Eclipse IDE, CVS overview. | L&L 1.0-1.4, 2.0-2.5, 5.6 | |
| Week 2 Jan 31 |
Variables, primitives types, operators, String and String operators, conditional statements, while and do-while, constants (literals), variable name conventions, boolean operators, assignment operators, short-circuiting, operator precedence, use of Eclipse and CVS. | L&L 2.0-2.5 3.0-3.7 (except 3.3) |
HW#1 Out (Fri/Feb 4) Quiz#1 (Wed/Feb 2) |
| Week 3 Feb 7 |
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. | L&L 2.6-2.9, 3.0-3.7 (except 3.3) |
HW#1 Due (Fri/Feb 11) HW#2 Out (Fri/Feb 11) Quiz#2 (Wed/Feb 9) |
| Week 4 Feb 14 |
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. | L&L 4.0-4.2, 5.0 |
HW#2 Due (Fri/Feb 18) HW#3 Out (Fri/Feb 18) Quiz#3 (Wed/Feb 16) |
| Week 5 Feb 21 |
Static and non-static methods and variables, method overloading, parameter type promotion, java memory layout (call stack), references as parameters, this. | L&L 4.2-4.4, 5.0-5.1 |
HW#3 Due (Fri/Feb 25) Quiz#4 (Wed/Feb 23) |
| Week 6 Feb 28 |
Review of static variables and methods, JUnit testing, Constructors, accessors and mutators. | L&L 4.5, 5.1 |
Midterm1 (Wed/Mar 2) HW#4 Out (Fri/Mar 4) |
| Week 7 Mar 7 |
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. | L&L 2.7, 3.3, 3.8, 5.5, 6.0 (GUI's and MVC are not covered in L&L) |
HW#4 Due (Fri/Mar 11) HW#5 Out (Fri/Mar 11) Quiz#5 (Wed/Mar 9) |
| Week 8 Mar 14 |
More about interfaces, generic methods, Accessors and mutators (revisited), Java file structure, shadowing (hiding), wrappers, system design, eclipse debugger (in lab). | L&L 5.2,
Introduction to Program Design
[pdf]
The Software Development Process [pdf] |
HW#5 Due (Fri/Mar 18) |
| Week 9 Mar 21 |
Spring Break! |
||
| Week 10 Mar 28 |
Event-driven programming, callbacks, One-dimensional arrays of object references, command-line arguments, arrays as instance variables, deep/shallow copying, privacy leaks, JUnit Testing. | L&L 6.1 |
Midterm 2 (Wed/Mar 30) HW#6 Out (Wed/Mar 30) |
| Week 11 April 4 | 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 | L&L 2.7, 6.3, Appendices G and M | Quiz#6 (Wed/Apr 6) |
| Week 12 April 11 | Packages, Exceptions (try, catch, finally), Java API (StringBuffer, Stack) | L&L 2.7, 8.0, 12.0, 12.2 |
HW#6 Due (Mon/Apr 11) HW#7 Out (Mon/Apr 11) |
| Week 13 April 18 | 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. | L&L 5.5, 6.4, 7.0-7.5 |
HW#7 Due (Wed/Apr 20) |
| Week 14 April 25 | 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. | L&L Ch. 7.0-7.5, Appendix M |
HW#8 Out (Wed/Apr 27) Quiz#7 (Wed/Apr 27) |
| Week 15 May 2 |
Interfaces, interfaces vs. abstract classes, multiple inheritance, interface hierarchies, bitwise operators, conditional operator, Sorting (Selection sort), "Big-Oh" notation. | L&L 5.5, 6.2, Appendix E | Quiz#8 (Wed/May 4) |
| Week 16 May 9 |
Sorting (Bubble sort, insertion sort and Tree Sorts), Searching (Linear and Binary), running time, Review. | L&L 6.2 |
HW#8 Due (Mon/May 9) Thursday May 12 (Last day of classes) |
| Week 17 May 16 |
Final Exam, Tuesday, May 17, 4:00-6:00pm, PHY 1412 |
||