CS 112 - Introduction to Computer Science II

Unless otherwise noted, all readings are from the course text.  Each reading assignment should be completed before the class on the date indicated.  These readings are subject to change; check here for updates.  If a reading assigned in class does not match the reading assignment here, the reading assigned in class supersedes.
Class Month Day Topic Readings (parenthesized
reading are optional)
1 January 22 Introduction, overview, system orientation, homework overview, Objects and Classes: defining classes, creating objects, constructors, object reference variables, defining and accessing object fields and methods Course Information Page, 9.1-5, HW1, Bash Tutorial, Eclipse Tutorial
2   24 Objects and Classes: Java library classes, static versus non-static, private access specifier, getter/setter methods, data encapsulation, variable scope, keyword this; Object-Oriented Thinking: wrapper classes and conversion to/from primitive types (i.e. auto-(un)boxing), BigInteger, BigDecimal  9.6-14, 10.1-9
3   26 Object-Oriented Thinking: String, StringBuilder, StringBuffer 10.10-11
4   29 Recursion: recursive problem solving, base case(s), recursive step 18.1-4, (Tower of Hanoi Puzzle)
5   31 Recursion: recursive helper/auxiliary functions, recursive solution examples 18.5-7
6 February 2 Recursion: dynamic programming pattern After class if needed: "Recursion with Dynamic Programming" video (35:36), Homework #3 Overview (14:40)
7   5 Inheritance and Polymorphism: FreeCell O-O design example, superclass, subclass, inheritance, “extends”, “super”, overriding vs. overloading, toString, polymorphism, dynamic binding 11.1-8, FreeCell rules (Wikipedia rules), Introduction to FreeCell (16:50), Homework #4 Overview and Object-Oriented Design (25:50) (slides), (play a game of FreeCell)
8   7 Inheritance and Polymorphism: explicit downcasting, .equals, ArrayList, Stack, “protected”, “final” override, in-class FreeCell example development 11.9-15, After class if needed: HW #4 Card.java Javadoc Specification video (29:42), (brief ArrayList tutorial)
9   9 Inheritance and Polymorphism: In-class FreeCell example development  
10   12 Exception Handling and Text I/O: In-class FreeCell example development, errors, checked/unchecked exceptions, declaring vs. throwing exceptions, try-catch blocks 12.1-4
11   14 Exception Handling and Text I/O: try-catch-finally blocks, rethrowing exceptions, chained exceptions, custom exceptions 12.5-9
12   16 Exception Handling and Text I/O: File class, PrintWriter, Scanner (review) 12.10-13
13   19 Generics: Defining and using generic classes, methods, and bounded generic types; in-class development of generic MyLinkedListNode<E> and MyLinkedList<E> 19.1-4
14   21 Generics: Raw types, wildcard generic types, generic type erasure and associated constraints 19.5-8, raw types, type erasure
15   23 Generics: Examples 19.9
16   26 Abstract Classes and Interfaces: Abstract Classes, Interfaces, in-class abstract class implementation: SearchNode, BucketsNode, SearchNodeTest 13.1-5
17   28 Abstract Classes and Interfaces: in-class abstract class implementation: Searcher, BreadthFirstSearcher, SearchTest 13.6-8
18 March 2 Abstract Classes and Interfaces: in-class interface implementation: Cipher, CaesarCipher, UnicodeSubstitutionCipher 13.9-10
19   5 JavaFX Basics: JavaFX stages, scenes, nodes, panes, UI controls, shapes, property bindings, style and rotate properties, colors, and fonts 14.1-14.8
20   7 JavaFX Basics: images, image views, layout nodes (Pane, StackPane, FlowPane, GridPane, BorderPane, HBox, VBox), shapes (text, line) 14.9-14.11.2
21   9 JavaFX Basics: shapes (circle, rectangle, ellipse, arc, polygon, polyline) 14.11.3-14.12
22   19 Event-Driven Programming and Animations: event-driven programming, Java event model, event source object, event object, event handler/listener object, registering handlers, inner classes, anonymous inner classes 15.1-15.5
23   21 Event-Driven Programming and Animations: lambda expressions, mouse events, key events, observable objects and invalidation listeners 15.6-15.10
24   23 Event-Driven Programming and Animations: animations, path transitions, fade transitions, timelines 15.11-15.12
25   26 JavaFX UI Controls and Multimedia  
26   28    
27   30 (no class meeting - Good Friday) online lecture videos/exercises to be supplied  
28 April 2 (no class meeting - Monday after Easter) online lecture videos/exercises to be supplied; Multithreading and Parallel Programming Chapter 30 (10th ed.)/Chapter 32 (11th ed., online bonus chapter)
29   4    
30   6    
31   9 Binary I/O  
32   11    
33   13    
34   16 Lists, Stacks, Queues, and Priority Queues  
35   18    
36   20    
37   23 Sets and Maps  
38   25    
39   27    
40   30 Review and Presentations  
41 May 2    
42   4    
Final     Final Exams:
Section A @ Saturday, May 12th, 8:30-11:30AM
Section B @ Thursday, May 10th, 8:30-11:30AM
Section C @ Monday, May 7th, 1:30-4:30PM
Final Exam Times