CMSC 131 - Object-Oriented Programming I

Fall 2004

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