Skip to main content
You can watch recordings of the Spring 2024 lecture videos online.

You can watch recordings of the Fall 2023 lecture videos online.

You can watch recordings of the Spring 2023 lecture videos online.

You can watch recordings of the Fall 2022 lecture videos online. Recordings are saved on Panopto and require a BMC/HC login.

The lecture schedule will be updated as the term progresses.

Pre-course

Make sure you are registered for the course Gradescope and Piazza.

Programming Fundamentals

Date Topic Reading Assignment
Tue, Jan 23, 2024 Lecture 1
Course Introduction
Terminal, Compiling [slides]
Chapter 1: Computer Programming
Lab00 - CS Lab Machines 101: Command Line (Do before Lab on Thursday)
Thu, Jan 25, 2024 Lecture 2
Data Types (Ints, doubles, strings) [slides]
Chapter 2: Variables & Operators
Lab01 - Data Types & Expressions
Sun, Jan 28, 2024
HW00 - Hello World, Compile Errors (Due Thu, Feb 1, 2024)
Tue, Jan 30, 2024 Lecture 3
I/O (input/output) [slides]
Chapter 3: Input & Output
Thu, Feb 1, 2024 Lecture 4
Methods I [slides]
Chapter 4: Methods & Testing
Lab02 - I/O & Methods
Sun, Feb 4, 2024
HW01 - Variables & I/O (Due Thu, Feb 8, 2024)
Tue, Feb 6, 2024 Lecture 5
Methods II [slides]
Chapter 4: Methods & Testing
Thu, Feb 8, 2024 Lecture 6
Booleans & Conditionals [slides]
Chapter 5: Conditionals & Logic
Lab03 - Conditionals & String Methods
Sun, Feb 11, 2024
HW02 - I/O & Methods (Due Sun, Feb 18, 2024)
Tue, Feb 13, 2024 Lecture 7
Recursion

Chapter 6: Recursive Methods
Thu, Feb 15, 2024 Lecture 8
Recursion [slides]
Chapter 7: Objects: Strings
Lab04 - Recursion & Arrays
Sun, Feb 18, 2024
HW03 - Conditionals, Methods, & Strings (Due Thu, Feb 22, 2024)
Tue, Feb 20, 2024 Lecture 9
Strings as Objects
Arrays I [slides]
Chapter 8: Arrays and References
Chapter 10.5: Command Line Arguments
Thu, Feb 22, 2024 Lecture 10
Arrays II [slides]
Chapter 8: Arrays and References
Lab05 - Recursion with Arrays
Sun, Feb 25, 2024
HW04 - Arrays & Recursion (Due Sun, Mar 3, 2024)
Tue, Feb 27, 2024 Lecture 11
Loops I [slides]
Chapter 9: Loops
Thu, Feb 29, 2024 Lecture 12
Loops II [slides]
Chapter 9: Loops
Sun, Mar 3, 2024
HW05 - Loops (Due Sun, Mar 17, 2024)
Tue, Mar 5, 2024 Lecture 13
Midterm Review [slides]
Thu, Mar 7, 2024 Midterm I
Tue, Mar 12, 2024 Spring Break
Thu, Mar 14, 2024 Spring Break

Object Oriented Programming

Date Topic Reading Assignment

Tue, Mar 19, 2024 Lecture 14 Arrays of Arrays [slides]
Chapter 10: Immutable Objects
Chapter 11: Mutable Objects
Thu, Mar 21, 2024 Lecture 15
Class Design [slides]
Chapter 12: Designing Classes
Lab06 - Loops and 2D arrays
Sun, Mar 24, 2024
HW06 - Board Game (Due Thu, Apr 4, 2024)
Tue, Mar 26, 2024 Lecture 16
Arrays of Objects [slides]
Chapter 13: Arrays of Ojbects (everything up to 13.7)
Thu, Mar 28, 2024 Lecture 17
Relationships! (Inheritance) [slides]
Chapter 15: Extending Classes
Lab07 - Files and exceptions
Tue, Apr 2, 2024 Lecture 18
Class Actions (Interfaces) [slides]
Chapter 18.7: Interfaces
Thu, Apr 4, 2024 Lecture 19
Binary Search I [slides]
Chapter 13.8: Binary Search
Lab08 - Class Design
Sun, Apr 7, 2024
HW07 - Class design (Due Thu, Apr 11, 2024)
Tue, Apr 9, 2024 CLASS CANCELLED Lecture 20
Binary Search II

Chapter 13.8: Binary Search
Thu, Apr 11, 2024 Lecture 21
Sorting I [slides]
Chapter 14: Objects of Arrays
Lab09 - Interfaces
Sun, Apr 14, 2024
HW08 - OOP (Due Thu, Apr 18, 2024)
Tue, Apr 16, 2024 Lecture 22
Midterm Review I [slides]
Thu, Apr 18, 2024 Lecture 23
Midterm Review
No Lab - Extra Credit Opportunity
Tue, Apr 23, 2024 Midterm II [slides]

Search & Sorting

Date Topic Reading Assignment
Thu, Apr 25, 2024 Lecture 25
Run time [slides]
Lab10 - Sorting
Sun, Apr 28, 2024
HW09 - SuperDuper Array (Due Tue, May 7, 2024)
Tue, Apr 30, 2024 Lecture 26
Final Review [slides]
Thu, May 2, 2024 Lecture 27
Final Review [slides]
Lab11 - Runtime