January 2025
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



   February 2025
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



     March 2025
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



     April 2025
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



      May 2025
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 Spring 2025 Schedule*
Thomas Rogers
* subject to change
revised Dec 11, 2024

Date Week Topic Reading Assignment
Jan 22 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
Lecture 2 - String class, Output, Static Methods, Pitfalls, Procedural Decomposition Section 3.3 - Using Objects (String class and Scanner class)
Jan 27 2 Lab Intro - Overview of Lab and Online Resources
Lab 1 - "M-I Crooked Letter"
Jan 29 Lecture 3 - Primitive Data Types, Expressions & Operations, Casting, Variables
[Class does not meet in person. Please review materials and videos linked above on your own.]
Chapter 2 - Primitive Data and Definite Loops
Feb 3 3 Lab 2 - "Give Me a Second!"
Feb 5 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#1
Feb 10 4 Lab 3 - "Looper"
Feb 12 Lecture 5 - Definite Loops, Nested Loops, Managing Complexity Chapter 2 - sections 2.3, 2.4#2
Feb 17 5 Lab 4 - "Number Wizard"
Feb 19 Lecture 6 - Exam #1 Review (through chapter 3, 4.1, 5.1)
Feb 24 6 Exam #1 - In Linux Lab
Feb 26 Lecture 7 - Exam #1 return and review, Cumulative Algorithms Chapter 4 - Conditional Execution#3
Mar 3 7 Lab 5 - "Don't Fence Me In!"
Mar 5 Lecture 8 - Text Processing (chapter 4), do/while, Fencepost Algorithms, boolean Type, Assertions Chapter 5 - Program Logic and Indefinite Loops#4
Mar 10 - 16 8 Spring Recess - No Classes
 
Mar 17 9 Lab 6 - "Dives"
Mar 19 Lecture 9 - File Reading Basics, Token-Based, Line-Based & Advanced File Processing Chapter 6 - File Processing
Mar 24 10 Lab 7 - "Deeper Dives" (self-directed)
Mar 26 Lecture 10 Exam #2 Review (through chapter 6)
Mar 31 11 Exam #2
Apr 2 Lecture 11 - Exam #2 Return; Array Basics, Array Traversal Algorithms Chapter 7 - Arrays
Apr 7 12 Lab 8 - "Flip"
Apr 9 Lecture 12 - Reference Semantics, Advanced Array Techniques, Multidimensional Arrays
Apr 14 13 Lab 9 - "Zip Distances"
Apr 16 Lecture 13 - Object Oriented Programming (OOP) Basics Chapter 8 - Classes
Apr 21 14 Lab 10 - "Car Class"
Apr 23 Lecture 14 - OOP Constructors, Encapsulation, Inheritance Chapter 8, Chapter 9.1, 9.2
Apr 28 15 Open Lab
Apr 30 Lecture 15 - Final Exam Review
May 5 16 Open Lab and Study Session
May 7 Final Exam Wednesday May 7th 6:00pm to 7:50pm, OTB 130 (Lab)