|
Tentative Schedule |
The schedule below is approximate, tentative, and subject to change!
Exam Dates:
- Midterm #1: Wednesday 3/7 (during Lab session)
- Midterm #2: Wednesday 4/18 (during Lab session)
- Final Exam: Monday 5/14; 4:00PM to 6:00 PM. (Location to be announced)
| Monday | Wednesday | Friday | |
|---|---|---|---|
| Week 1 1/22 |
NO CLASS |
Intro to Course. Intro to Computer Systems. | Programming Languages. Intro to Eclipse IDE and CVS repositories. |
| Week 2 1/29 |
Simple Java programs. Output with "System.out". Variables. Primitive types. Expressions. Statements. Strings. | Programming Errors. Operators (arithmetic, comparison, String). Input with Scanner. | "if" Statements. Logical operators. Nesting statements. |
| Week 3 2/5 |
"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.). | Precedence. Type casting. Program design considerations. Pseudocode. Intro to testing and debugging |
| Week 4 2/12 |
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.) | Example of a "good class" (continued from last time.) "for" loops. |
| Week 5 2/19 |
"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. | Intro to comments and good style. More on instance methods. |
| Week 6 2/26 |
More on variables, scope, and visibility | Memory map. The call stack. Method overloading. | More on method overloading. Review for exam. |
| Week 7 3/5 |
"this". Testing. JUnit. More about constructors. |
Midterm #1 (During lab session). Writing a class (complete example, including testing.) |
Switch statement. Break statement. Continue statement. Begin Arrays. |
| Week 8 3/12 |
Continue with arrays. | Even more on arrays. Privacy leaks. GUI's and Model-View-Controller design pattern. | Fun Day! Lecture topics to be announced. |
| Week 9 3/19 |
SPRING BREAK | SPRING BREAK | SPRING BREAK |
| Week 10 3/26 |
Copying arrays: "deep", "shallow", and "half-deep" copies. Interfaces. Intro to polymorphism. | Wrappers. More Interface Examples. | Algorithms. System design. |
| Week 11 4/2 |
Command line java. Observer design pattern. | More on comments and documentation. Javadoc. | Two-dimensional Arrays. |
| Week 12 4/9 |
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 13 4/16 |
StringBuffer class. Inheritance. | Midterm #2 (During lab session)More on Inheritance. | Abstract methods and classes. "getClass". "instanceOf". Explicit "downcasting". |
| Week 14
4/23 |
Proper equals method in view of polymorphism. "clone" method. Compare and constrast: inheritance, association, composition. | Concept of "multiple inheritance". Begin asymptotic complexity. (Big-O notation.) Linear and binary search. | More on "Big-O" notation. |
| Week 15 4/30 |
More on "Big-O". | 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.) |
| Week 16 5/7 |
Linear sorting. (Counting sort and radix sort.) | Review for final. |
NO CLASS |
| Week 17 5/14 |
FINAL EXAM 4:00PM - 6:00 PM Location to be announced |
