CS 111 - Introduction to Computer Science I Readings |
Class | Date | Topic | Readings (parenthesized reading are optional) |
1 | Course overview, introduction to computing environment, Introduction to Computers Programs, and Java | Course Information Page; Guide to CS1 Success; 1.1-1.7 (Getting Things Done tutorial video) | |
2 | Introduction: Creating, compiling, and executing Java programs (javac, java) | 1.8-1.10 | |
3 | Introduction: Creating, compiling, and executing Java programs (Eclipse) | 1.12 | |
4 | Elementary Programming: Scanner, variables, primitive datatypes, arithmetic operators | 2.1-2.9 | |
5 | Elementary Programming: arithmetic expressions, assignments, casting | 2.10, 2.12-2.16 | |
6 | Elementary Programming: software development process, common pitfalls | 2.17-2.19, 4.2.3 | |
7 | Selections: boolean type, if/if-else statements, common pitfalls (video after this and before next class) | 3.1-3.6 | |
8 | Selections: random number generation, logical operators | 3.6 common pitfalls video, 3.7-3.12, 9.6.2 (Random class) | |
9 | Selections: switch, if-else expression (a.k.a. conditional expression, selection operator, ternary operator), operator precedence and associativity, debugging in Eclipse | 3.13-3.16, (operator precedence and associativity (video)), after class: debugging basics in Eclipse (video) | |
10 | Mathematical Functions and Characters: class Math methods, char type and operations | 4.1-4.3 | |
11 | Strings and Number Systems: String type, binary, hexadecimal review (covered earlier with section 2.10.1) | 4.4-4.5 | |
12 | Formatted output: printf | 4.6 | |
13 | Loops: while-loops, do-while loops | 5.1-5.6 | |
14 | Loops: for-loops, loop choice, nested loops | 5.7-5.10 | |
15 | Loops: break, continue, examples | 5.11-5.14 | |
16 | Methods: defining and invoking methods, return statements with/without return values, passing arguments by value | 6.1-6.5 | |
17 | Methods: developing modular, reusable code, method overloading | 6.6-6.8 | |
18 | Methods: variable scope, abstraction, and stepwise refinement | 6.9-6.11 | |
19 | Arrays: declaration, creation, length, access, initialization, common array algorithms, for-each loop | 7.1-7.4, after class: array algorithms (video) | |
20 | Arrays: copying contents from array to array, array arguments and return values, variable-length argument lists | 7.5-7.9 | |
21 | Arrays: linear and binary search, selection sort, java.util.Arrays methods, command line arguments | 7.10-7.13 | |
22 | In-class Midterm Exam | review Chapters 1-7 | |
23 | Multidimensional Arrays: 2D array declaration, creation, access, common operations, passing as arguments, examples | 8.1-8.6 | |
24 | Multidimensional Arrays: examples, 3D+ arrays | 8.7-8.8 | |
25 | Objects and Classes: defining classes, creating objects, constructors, object reference variables, defining and accessing object fields and methods | 9.1-9.5 | |
26 | Objects and Classes: Java library classes, static versus non-static, private access specifier, getter/setter methods, data encapsulation | 9.6-9.9 | |
27 | (no class meeting - Good Friday 2024) Objects and Classes: object arrays, immutable objects, variable scope, keyword this | 9.10-9.14, Homework #10 overview video | |
28 | Object-Oriented Thinking: class abstractions in object-oriented programming, class relationships, design principles | 10.1-10.4 | |
29 | Object-Oriented Thinking: wrapper classes and conversion to/from primitive types (i.e. auto-(un)boxing), BigInteger, BigDecimal | 10.5-10.9 | |
30 | Object-Oriented Thinking: String, StringBuilder, StringBuffer | 10.10-10.11 | |
31 | Recursion: recursive problem solving, base case(s), recursive step | 18.1-4, (Tower of Hanoi Puzzle) | |
32 | Recursion: recursive helper/auxiliary functions, recursive solution examples | 18.5-7 | |
33 | Recursion: Dynamic Programming | review prior readings | |
34 | java.util Package Goodies: Java Generics, ArrayLists | 11.1, 13.5, 19.1-2, 20.1-6 | |
35 | java.util Package Goodies: Stack, Queue (LinkedList), PriorityQueue, Set/HashSet/TreeSet | 20.8-9 (Stacks, Queues, PriorityQueues); 21.1-21.2.1(Set) | |
36 | java.util Package Goodies: Map/HashMap/TreeMap, worked example: Chomp solver | 21.5 (Map) | |
37 | Programming practice | (review your readings) | |
38 | Programming Quiz #12 | (review your readings) | |
39 | Cloneable, Deep clone, Programming practice | 13.7 (The Cloneable Interface) | |
40 | Math methods, lambda expressions, packages (e.g. linear algebra w/ JAMA) | 9.8, Supplement III.E (Packages); 15.6 (Lambda expressions), Lambda Quick Start examples | |
41 | Review, Course Evaluations, Exam Practice | review prior readings | |
42 | Programming Quiz #13 | review prior readings | |
Final Exam Schedules
on Registrar page under "Resources" (Fall,
Spring)
Section A Final: Sunday, May 5th, 1:30-4:30PM Section B Final: Thursday, May 9th, 1:30-4:30PM |