August 2023
Su Mo Tu We Th Fr Sa
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31



   September 2023
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30



    October 2023
Su Mo Tu We Th Fr Sa
 1  2  3  4  5  6  7
 8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31



   November 2023
Su Mo Tu We Th Fr Sa
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30



   December 2023
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

CSCI 161 Fall 2023 Schedule*
Thomas Rogers
* subject to change
revised Aug 21, 2023

Date Week Topic Reading Assignment
Aug 21 1 Lecture 1 - Syllabus Review, Programming - What is it and why is it important?, Intro to Java, "Hello World" Chapter 1 - Introduction to Java Programming
Aug 23 Lecture 2 - String class, Output, Static Methods, Pitfalls, Procedural Decomposition Section 3.3 - Using Objects (String class and Scanner class)
Aug 28 2 Lab Intro - Overview of Lab and Online Resources
Aug 30 Lecture 3 - Primitive Data Types, Expressions & Operations, Casting, Variables Chapter 2 - Primitive Data and Definite Loops #1
Sep 4 Labor Day - No In-Person Classes
Sep 4 3 Lab 1 - "M-I Crooked Letter" (self-study - no "in-person" lab session)
Sep 6 Lecture 4 - User Input, Parameters, Methods that Return Values, Conditional Execution, Indefinite Loops, Commenting Style Chapter 3 - Introduction to Parameters and Objects, Chapter 4.1, Chapter 5.1#2
Sep 11 4 Lab 2 - "Give Me a Second!"
Sep 13 Lecture 5 - Definite Loops, Nested Loops, Managing Complexity Chapter 2 - sections 2.3, 2.4#3
Sep 18 5 Lab 3 - "Looper"
Sep 20 Lecture 6 - Exam #1 Review (through chapter 3, 4.1, 5.1)
Sep 25 6 Exam #1 - In Linux Lab
Sep 27 Lecture 7 - Exam #1 return and review, Cumulative Algorithms Chapter 4 - Conditional Execution#4
Oct 2 7 Lab 4 - "Number Wizard"
Oct 4 Lecture 8 - Text Processing (chapter 4), do/while, Fencepost Algorithms, boolean Type, Assertions Chapter 5 - Program Logic and Indefinite Loops
Oct 7 - 10 Fall Recess - No Classes - Begin Lab 5
Oct 9 8 Lab 5 - "Don't Fence Me In!" (self-study - no "in-person" lab session)
Oct 11 Lecture 9 - File Reading Basics, Token-Based, Line-Based & Advanced File Processing Chapter 6 - File Processing
Oct 16 9 Lab 6 - "Dives"
Oct 18 Lecture 10 Exam #2 Review (through chapter 6)
Oct 23 10 Exam #2
Oct 25 Lecture 11 - Exam #2 Return; Array Basics, Array Traversal Algorithms Chapter 7 - Arrays
Oct 30 11 Lab 7 - "Deeper Dives"
Nov 1 Lecture 12 - Reference Semantics, Advanced Array Techniques, Multidimensional Arrays
Nov 6 12 Lab 8 - "Flip"
Nov 8 Lecture 13 - Object Oriented Programming (OOP) Basics Chapter 8 - Classes
Nov 13 13 Lab 9 - "Zip Distances"
Nov 15 Lecture 14 - OOP Constructors, Encapsulation, Inheritance Chapter 8, Chapter 9.1, 9.2
Nov 20 14 Lab 10 - "Car Class"
Nov 22 - 24 Thanksgiving Recess - No Classes
Nov 27 15 Open Lab - Catch Up
Nov 29 Lecture 15 - Final Exam Review
Dec 4 16 Open Lab and Study Session
Dec 6 Final Exam Wednesday Dec 6th 6:00pm to 7:50pm, OTB 130 (Lab)