|
Tentative Schedule |
The schedule below is approximate, tentative, and subject to change!
- Midterm #1: Monday 10/8 (during Lab session)
- Midterm #2: Wednesday 11/14 (during Lab session)
- Final Exam: Friday 12/14; 4:00PM to 6:00 PM. (Location to be announced)
| Monday | Wednesday | Friday | |
|---|---|---|---|
| Week 1 8/27 |
NO CLASS |
1. intro to course; intro to computer systems. |
2. hardware; operating system; programming languages |
| Week 2 9/3 |
HOLIDAY (NO CLASS) |
3. using an IDE; introduction to course tools (Eclipse and CVS repositories); portability; intro to Object Oriented "lingo" |
4. primitive Java examples; text output; variables; statements; main method; assignment operator; primitive types; expressions; operators; programming errors and debugging; strings and concatenation |
| Week 3 9/10 |
5. arithmetic operators; integer truncation; comparison operators; input with Scanner; equals with Strings; if-statements; blocks |
6. logical operators; nesting of statements; more about if-statements |
7. Java identifier names; Camel case; choosing proper variable names; named constants; while loops; do-while loops |
| Week 4 9/17 |
8. nested loops; literals; escape sequences; short-circuiting; increment/decrement operators; various assignment operators |
9. rules of precedence; suggestions for readable code; type casting (of primitives); overview of program design |
10. pseudocode; overview of testing/debugging; Objects in Java; state/behaviors; classes; instance variables |
| Week 5 9/24 |
11. primitive vs. reference to Objects; the Heap; memory diagrams; garbage collection |
12. assignments with reference variables; aliasing; equals method; begin example of Object Oriented class... |
13. ...continue example of Object Oriented class, including: parameters; return values; constructors; setters/getters; writing an equals method; toString |
| Week 6 10/1 |
14. for-loops; static vs. non-static; static methods vs. instance methods; the three kinds of variables: instance, local, static; syntax for accessing static/instance members; example of static/instance members; |
15.
memory diagrams for passing parameters; Java libraries; intro to packages; fully qualified names; import; Math class; String class in detail |
16. Review for Midterm #1 (Midterm is on Monday in lab session.)
|
| Week 7 10/8 |
17. encapsulation and visibility; public vs. private; API; methods that modify parameters; copy constructors Midterm #1 in Lab. |
18. proper commenting; examples of good programming style; instance methods calling other instance methods; summary of accessing class members |
19. Java call stack; initialization of variables; setting "default" values; method overloading; prototype vs. signature |
| Week 8 10/15 |
20. "this"; software testing; JUnit; assertTrue; assertEquals |
21. connection between testing and debugging; using the Eclipse Debugger |
22. typical uses of constructors; use of copy constructor to avoid aliasing; mutability; rounding errors in floating point calculations |
| Week 9 10/22 |
23. Example of a complete Java class, including test cases |
24. ternary ?: operator; switch statements; break; continue |
25. arrays of primitives; arrays of references |
| Week 10 10/29 |
26. privacy leaks; three ways to copy arrays: reference/shallow/deep |
27. Java interfaces; polymorphism |
28. more interface examples |
| Week 11 11/5 |
29. algorithms; intro to complexity |
30. design of large projects; command line Java; passing arguments to main method |
31. proper use of commenting; internal vs. external comments; Javadoc |
| Week 12 11/12 |
32. Review for Midterm #2 (Midterm is on Wednesday in Lab session.) |
33. two-dimensional arrays (ragged and rectangular Midterm #2 in Lab. |
34. package visibility; overview of Java packages |
| Week 13 11/19 |
35. exception handling; throwing exceptions; catching exceptions; try/catch |
36. Fun day. (topics to be announced). |
HOLIDAY (NO CLASS) |
| Week 14
11/26 |
37. more on exception handling; finally block; Java generics (brief intro); overview of collections; Stack class; ArrayList |
38. for-each loops; StringBuffer class; overview of inheritance; superclasses and subclasses |
39. inheritance examples; super in constructors; memory diagrams with inheritance; method overriding; using super with overridden methods; variable shadowing |
| Week 15 12/3 |
40. connection between super and this; early vs. late binding; Object class; polymorphic arrays; inheritance example |
41. instanceOf; getClass; explicit type casting;proper equals method (in view of inheritance); inheritance vs. association vs. composition; overloading vs. overriding; multiple inheritance (and Java's lack thereof); |
42. TBA
|
| Week 16 12/10 |
43. Review for Final Exam. (Final is on Friday at 4:00PM). |
NO CLASS |
FINAL EXAM 4:00pm - 6:00pm |
