CS 112 - Introduction to Computer
Science II Readings |
Class | Date | Topic | Readings (parenthesized readings are optional) |
|
before class 1 | Transition preparation for those who did not take my CS 111: Review text chapters 1-10 as needed. Learn how to use Java's ArrayList. | (CS 111 Review Videos, ArrayList: Liang text section 11.11, video ArrayList lecture and Hangman.java example using the ENABLE word list.) | ||
1 | 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 | ||
2 | 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, HW1, Bash Tutorial, Eclipse Tutorial | ||
3 | Object-Oriented Thinking: String, StringBuilder, StringBuffer | 10.10-11 | ||
4 | Recursion: recursive problem solving, base case(s), recursive step | 18.1-4, (Tower of Hanoi Puzzle) | ||
5 | Recursion: recursive helper/auxiliary functions, recursive solution examples | 18.5-7 | ||
6 | Recursion: dynamic programming pattern | After class if needed: "Recursion with Dynamic Programming" video (35:36), Homework #3 Overview (14:40) | ||
7 | 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 | 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), ArrayListFun video, (brief ArrayList tutorial) | ||
9 | Inheritance and Polymorphism: In-class FreeCell example development | |||
10 | 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 | Exception Handling and Text I/O: try-catch-finally blocks, rethrowing exceptions, chained exceptions, custom exceptions | 12.5-9 | ||
12 | Exception Handling and Text I/O: File class, PrintWriter, Scanner (review) | 12.10-13 | ||
13 | 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 | Generics: Raw types, wildcard generic types, generic type erasure and associated constraints | 19.5-8, raw types, type erasure | ||
15 | Generics: Examples | 19.9 | ||
16 | Abstract Classes and Interfaces: Abstract Classes, Interfaces, in-class abstract class implementation: SearchNode, BucketsNode, SearchNodeTest | 13.1-5 | ||
17 | Abstract Classes and Interfaces: in-class abstract class implementation: Searcher, BreadthFirstSearcher, SearchTest | 13.6-8 | ||
18 | Abstract Classes and Interfaces: in-class interface implementation: Cipher, CaesarCipher, UnicodeSubstitutionCipher | 13.9-10 | ||
19 | JavaFX Basics: JavaFX stages, scenes, nodes, panes, UI controls, shapes, property bindings, style and rotate properties, colors, and fonts | 14.1-14.8 | ||
20 | JavaFX Basics: images, image views, layout nodes (Pane, StackPane, FlowPane, GridPane, BorderPane, HBox, VBox), shapes (text, line) | 14.9-14.11.2 | ||
21 | JavaFX Basics: shapes (circle, rectangle, ellipse, arc, polygon, polyline) | 14.11.3-14.12 | ||
22 | (in-class midterm exam) | 15.1-15.5 | ||
23 | 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, lambda expressions, mouse events, key events, observable objects and invalidation listeners | 15.6-15.10 | ||
24 | Event-Driven Programming and Animations: animations, path transitions, fade transitions, timelines | 15.11-15.12 | ||
25 | JavaFX UI Controls and Multimedia: Mandelbrot set example, menus | 16.1-16.6 | ||
26 | JavaFX UI Controls and Multimedia: Mandelbrot set example, text fields; MathMagic example (JavaFX dialogs and alerts, Swing JOptionPanes) | 16.7-16.10 | ||
27 | JavaFX UI Controls and Multimedia: JavaFX Video and Audio | 16.11-16.14 | ||
28 | Multithreading and Parallel Programming: multithreading, Runnable, Thread, Executor, threadpools, Platform.runLater() | Multithreading and Parallel Programming chapter (Chapter 30 (10th ed.) / Chapter 32 (11th ed., online bonus chapter)), sections 1-6 | ||
29 | Multithreading and Parallel Programming: synchronized methods/blocks, locks, thread communication via locks | Multithreading and Parallel Programming chapter, sections 7-9 | ||
30 | Multithreading and Parallel Programming: blocking queues, semaphores, resource-ordering, thread lifecycle, synchronized collections, fork/join parallelism | Multithreading and Parallel Programming chapter, sections 10-16 | ||
31 | Binary I/O: text versus binary I/O, FileInput/OutputStream, FilterInput/OutputStream, DataInput/OutputStream | 17.1-17.4, watch and implement exercises with BinaryIOFun.java part 1, BinaryIOFun.java part 2 | ||
32 | Binary I/O: ObjectInput/OutputStream, Serializable | 17.5-17.6, watch and implement exercises with BinaryIOFun.java part 3 | ||
33 | Binary I/O: RandomAccessFile | 17.7, watch and implement exercises with Part 1, Part 2, Part 3 | ||
34 | Lists, Stacks, Queues, and Priority Queues: Collections Framework, Iterator, foreach-loop review, ArrayList vs. LinkedList | 20.1-20.4, watch and implement exercises with
List, Stacks, and Queues Part 1 (ListStackQueueFun.java starter code) | ||
35 | Lists, Stacks, Queues, and Priority Queues: Collections list sorting, shuffling, collection maximum and minimum; Interactive Fiction introduction | 20.5-20.9, watch and implement exercises with List, Stacks, and Queues Part 2; [Links for class: Interactive Fiction slides, reference sheet, and [resources summary]; Play online: Zork (alternate site), Lost Pig, Violet | ]||
36 | Lists, Stacks, Queues, and Priority Queues: Relationships among Collection classes (Vector, ArrayList, Stack, Queue, LinkedList, Priority Queue) | 20.8-20.10, watch and implement exercises with List, Stacks, and Queues Part 3 | ||
37 | Sets and Maps: sets, HashSet, LinkedHashSet, TreeSet | 21.1-21.2, watch and implement exercises with Sets and Maps Video 1 (32:34) | ||
38 | Sets and Maps: sets versus lists, applications | 21.3-21.4, watch and implement exercises with Sets and Maps Video 2 (25:11), and interactive fiction videos (part 1 (11:11), part 2 (29:08), part 3 (9:15), part 4 (15:04)) | ||
39 | Sets and Maps: maps, HashMap, LinkedHashMap, TreeMap, Collections static methods; stack-based language exercise/example | 21.5-21.7, watch and implement exercises with Sets and Maps Video 3 (37:17) | ||
40 | Stack-based language exercise/example (cont.) | (no new readings - review) | ||
41 | Course review, course evaluations, interactive fiction project demos | (no new readings - review) | ||
42 | In-class review, exam practice | (no new readings - review) | ||
Final | Final Exam Schedules can be found on the Registrar page under "Resources" (Fall,
Spring)
Section A Final: Friday December 15, 2023, 8:30 a.m. - 11:30 a.m. Section B Final: Tuesday December 12, 2023, 8:30 a.m. - 11:30 a.m. |