CS 111 - Introduction to Computer Science I Readings |
Class | Month | Day | Topic | Readings (parenthesized reading are optional) |
1 | February | 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 | 3 | Introduction: Creating, compiling, and executing Java programs (javac, java) | 1.8-1.10 | |
3 | 5 | Introduction: Creating, compiling, and executing Java programs (Eclipse) | 1.12 | |
4 | 8 | Elementary Programming: Scanner, variables, primitive datatypes, arithmetic operators | 2.1-2.9 | |
5 | 10 | Elementary Programming: arithmetic expressions, assignments, casting | 2.10-2.15 | |
6 | 12 | Elementary Programming: software development process, common pitfalls | 2.16-2.18, 4.2.3 | |
7 | 15 | Selections: boolean type, if/if-else statements, common pitfalls (video after this and before next class) | 3.1-3.6 | |
8 | 17 | Selections: random number generation, logical operators | 3.6 common pitfalls video, 3.7-3.12, 9.6.2 (Random class) | |
9 | 19 | 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 | 22 | Mathematical Functions and Characters: class Math methods, char type and operations | 4.1-4.3 | |
11 | 24 | Strings and Number Systems: String type, binary, hexadecimal review (covered earlier with section 2.10.1) | 4.4-4.5 | |
12 | 26 | Formatted output: printf | 4.6 | |
13 | March | 1 | Loops: while-loops, do-while loops | 5.1-5.6 |
14 | 3 | Loops: for-loops, loop choice, nested loops | 5.7-5.10 | |
15 | 5 | Loops: break, continue, examples | 5.11-5.14 | |
16 | 8 | Methods: defining and invoking methods, return statements with/without return values, passing arguments by value | 6.1-6.5 | |
17 | 10 | Methods: developing modular, reusable code, method overloading | 6.6-6.8 | |
18 | 12 | Methods: variable scope, abstraction, and stepwise refinement | 6.9-6.11 | |
19 | 15 | Arrays: declaration, creation, length, access, initialization, common array algorithms, for-each loop | 7.1-7.4, after class: array algorithms (video) | |
20 | 17 | Arrays: copying contents from array to array, array arguments and return values, variable-length argument lists | 7.5-7.9 | |
21 | 19 | Arrays: linear and binary search, selection sort, java.util.Arrays methods, command line arguments | 7.10-7.13 | |
22 | 22 | In-class Midterm Exam | review Chapters 1-7 | |
23 | 24 | Multidimensional Arrays: 2D array declaration, creation, access, common operations, passing as arguments, examples | 8.1-8.6 | |
24 | 26 | Multidimensional Arrays: examples, 3D+ arrays | 8.7-8.8 | |
25 | 29 | Objects and Classes: defining classes, creating objects, constructors, object reference variables, defining and accessing object fields and methods | 9.1-9.5 | |
26 | 31 | Objects and Classes: Java library classes, static versus non-static, private access specifier, getter/setter methods, data encapsulation | 9.6-9.9 | |
27 | April | 2 | Objects and Classes: object arrays, immutable objects, variable scope, keyword this | 9.10-9.14 |
28 | 5 | Object-Oriented Thinking: class abstractions in object-oriented programming, class relationships, design principles | 10.1-10.4 | |
29 | 7 | Object-Oriented Thinking: wrapper classes and conversion to/from primitive types (i.e. auto-(un)boxing), BigInteger, BigDecimal | 10.5-10.9 | |
30 | 9 | Object-Oriented Thinking: String, StringBuilder, StringBuffer | 10.10-10.11 | |
31 | 12 | Recursion: recursive problem solving, base case(s), recursive step | 18.1-4, (Tower of Hanoi Puzzle) | |
32 | 14 | Recursion: recursive helper/auxiliary functions, recursive solution examples | 18.5-7 | |
33 | 16 | Recursion: Dynamic Programming | review prior readings | |
34 | 19 | Live Assignment | review prior readings | |
35 | 21 | Live Assignment | review prior readings | |
36 | 23 | Live Assignment | review prior readings | |
37 | 26 | Live Assignment | review prior readings | |
38 | 28 | Live Assignment | review prior readings | |
39 | 30 | Live Assignment | review prior readings | |
40 | May | 3 | Live Assignment | review prior readings |
41 | 5 | Review, Course Evaluations, Exam Practice | review prior readings | |
42 | 7 | Review, Exam Practice | review prior readings | |
Final Exam Schedules
on Registrar page under "Resources" (Fall,
Spring)
Section A Final: Thursday, May 13th, 8:30-11:30AM Section B Final: Friday, May 14th, 8:30-11:30AM |