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