|
Tentative Schedule |
The schedule below is approximate, tentative, and subject to change!
Exam Dates:
- Midterm #1: Wednesday, October 11th (during Lab session)
- Midterm #2: Wednesday, November 15th (during Lab session)
- Final Exam: Friday, December 15th (4:00 pm; location to be announced)
| Monday | Wednesday | Friday | |
|---|---|---|---|
| Week 1 8/28 |
No Class |
Intro to Course. Intro to Computer Systems. | Programming Languages. Intro to Eclipse IDE and CVS repositories. |
| Week 2 9/4 |
Holiday -- No Class |
Simple Java programs. Output with "System.out". Variables. Primitive types. Expressions. Statements. Strings. | Programming Errors. Operators (arithmetic, comparison, String). Input with Scanner. |
| Week 3 9/11 |
"if" Statements. Logical operators. Nesting statements. | "else if" cascaded style. "while" loops. "do while" loops. | Constants (literals). Escape sequences in Strings. Variable naming. Short-circuiting. Increment/Decrement operators. Various assignment operators (+=, *=, etc.). |
| Week 4 9/18 |
Precedence. Type casting. Program design considerations. Pseudocode. Intro to testing and debugging. | Intro to Objects. Intro to classes. Primitives vs. references to Objects. The "heap". | "==" vs. "equals". Garbage collection. Example of a "good class" (including fields, general methods, equals method, toString method.) |
| Week 5 9/25 |
Example of a "good class" (continued from last time.) "for" loops. | "static" vs. "non-static". "instance" variables vs. "local" variables. | More details on passing parameters.Libraries and intro to packages (java.lang, String class, Math class, CMSC131PictureLibrary class.) Encapsulation and visibility. API. |
| Week 6 10/2 |
Intro to comments and good style. More on instance methods. | More on variables, scope, and visibility. | Memory map. The call stack. Method overloading. |
| Week 7 10/9 |
More on method overloading. Review for exam. | (Exam in Lab Session.) "this". Testing. JUnit. More about constructors. |
Writing a class (complete example, including testing.) |
| Week 8 10/16 |
Switch statement. Break statement. Continue statement. Begin Arrays. | Continue with arrays. | Even more on arrays. Privacy leaks. GUI's and Model-View-Controller design pattern. |
| Week 9 10/23 |
Copying arrays: "deep", "shallow", and "half-deep" copies. Interfaces. Intro to polymorphism. | Wrappers. More Interface Examples. | Algorithms. System design. |
| Week 10 10/30 |
Command line java. Observer design pattern. | More on comments and documentation. Javadoc. | Two-dimensional Arrays. |
| Week 11 11/6 |
More on two-dimensional arrays. Details about packages. | Runtime errors and techniques for handling them. Java exception handling. | More on exception handling. Intro to Java
"generics". Stack class. ArrayList class. Iterators. |
| Week 12 11/13 |
StringBuffer class. Inheritance. | (Exam in Lab Session.) More on Inheritance. |
Abstract methods and classes. "getClass". "instanceOf". Explicit "downcasting". |
| Week 13 11/20 |
Proper equals method in view of polymorphism. "clone" method. Compare and constrast: inheritance, association, composition. | "Fun" Lecture. Topics to be announced. |
Holiday -- No Class |
| Week 14
11/27 |
Concept of "multiple inheritance". Begin asymptotic complexity. (Big-O notation.) Linear and binary search. | More on "Big-O" notation. | More on "Big-O". |
| Week 15 12/4 |
Assessing the complexity of an algorithm by inspection. Sorting in quadratic time (bubble sort and insertion sort.) | Sorting in O(n log n) time. (Merge Sort and/or Quick Sort.) | Linear sorting. (Counting sort and radix sort.) |
| Week 16 12/11 |
Review for final. |
No Class |
Final Exam 4:00 - 6:00pm. Location to be announced. |
