The schedule below is approximate, tentative, and subject to change!
|Intro to Course. Intro to Computer Systems.||Programming Languages. Intro to Eclipse IDE and CVS repositories.|
|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.|
|"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|
|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.|
|"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.|
|More on variables, scope, and visibility||Memory map. The call stack. Method overloading.||More on method overloading. Review for exam.|
|"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.|
|Continue with arrays.||Even more on arrays. Privacy leaks. GUI's and Model-View-Controller design pattern.||Fun Day! Lecture topics to be announced.|
|SPRING BREAK||SPRING BREAK||SPRING BREAK|
|Copying arrays: "deep", "shallow", and "half-deep" copies. Interfaces. Intro to polymorphism.||Wrappers. More Interface Examples.||Algorithms. System design.|
|Command line java. Observer design pattern.||More on comments and documentation. Javadoc.||Two-dimensional Arrays.|
|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.
|StringBuffer class. Inheritance.||Midterm #2 (During lab session)More on Inheritance.||Abstract methods and classes. "getClass". "instanceOf". Explicit "downcasting".|
|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.|
|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.)|
|Linear sorting. (Counting sort and radix sort.)||Review for final.||
4:00PM - 6:00 PM
Location to be announced