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

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 to fill out the pre-course survey.

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

Programming Fundamentals

Date Topic Reading Assignment
Tue, Sep 3, 2024 Lecture 1
Course Introduction
Terminal, Compiling [slides]
Chapter 1: Computer Programming
Lab00 - CS Lab Machines 101: Command Line
HW00 - Hello World, Compile Errors (Due Mon, Sep 9, 2024)
Thu, Sep 5, 2024 Lecture 2
Data Types (Ints, doubles, strings)
Lecture Cancelled (sick)
Chapter 2: Variables & Operators
Tue, Sep 10, 2024 Lecture 2
Data Types (ints, doubles, Strings)
Simple I/O (input/output) [slides]
Chapter 3: Input & Output
Lab01 - Data Types & Expressions
HW01 - Variables & I/O (Due Mon, Sep 16, 2024)
Thu, Sep 12, 2024 Lecture 3
Methods I [slides]
Chapter 4: Methods & Testing
Tue, Sep 17, 2024 Lecture 5 4
Methods II [slides]
Chapter 4: Methods & Testing
Lab02 - I/O & Methods
HW02 - I/O & Methods (Due Mon, Sep 23, 2024)
Thu, Sep 19, 2024 Lecture 5
Booleans & Conditionals [slides]
Chapter 5: Conditionals & Logic
Tue, Sep 24, 2024 Lecture 6
Booleans & Conditionals
Recursion [slides]
Chapter 6: Recursive Methods
Lab03 - Conditionals & String Methods
HW03 - Conditionals, Methods, & Strings (Due Mon, Sep 30, 2024)
Thu, Sep 26, 2024 Lecture 7
Recursion [slides]
Chapter 7: Objects: Strings
Tue, Oct 1, 2024 Lecture 8
Recursion
Strings as Objects
Arrays I [slides]
Chapter 8: Arrays and References
Chapter 10.5: Command Line Arguments
Lab04 - Recursion & Arrays
HW04 - Recursion (Due Mon, Oct 7, 2024)
Thu, Oct 3, 2024 ROSH HASHANA
NO CLASS
Lecture 10
Arrays II

Chapter 8: Arrays and References
Tue, Oct 8, 2024 Lecture 9
Strings as Objects
Arrays II [slides]
Chapter 8: Arrays and References
Lab05 - Recursive Array Methods
HW05 - Recursion w/ Arrays (Due Tue, Oct 22, 2024)
Thu, Oct 10, 2024 Lecture 10
Loops [slides]
Chapter 9: Loops
Tue, Oct 15, 2024 FALL BREAK
HW06 - BlackJack (optional) (Due Mon, Oct 28, 2024)
Thu, Oct 17, 2024 FALL BREAK
Tue, Oct 22, 2024 Lecture 11
Midterm Review [slides]
Thu, Oct 24, 2024 Lecture 12
Midterm

Object Oriented Programming

Date Topic Reading Assignment
Tue, Oct 29, 2024 Lecture 13 Arrays of Arrays [slides]
Chapter 10: Immutable Objects
Chapter 11: Mutable Objects
Lab06 - Loops and 2D arrays
HW07 - Loops (Due Mon, Nov 4, 2024)
Thu, Oct 31, 2024 Lecture 14
Class Design [slides]
Chapter 12: Designing Classes
Tue, Nov 5, 2024 Lecture 15
Arrays of Objects [slides]
Chapter 13: Arrays of Ojbects (everything up to 13.7)
Lab07 - Files and exceptions
HW08 - Board Game (Due Mon, Nov 11, 2024)
Thu, Nov 7, 2024 Lecture 16
Relationships! (Inheritance) [slides]
Chapter 15: Extending Classes
Tue, Nov 12, 2024 Lecture 17
Class Actions (Interfaces) [slides]
Chapter 18.7: Interfaces
Lab08 - Class Design
HW09 - Class design (Due Mon, Nov 18, 2024)
Thu, Nov 14, 2024 Lecture 18
Catch up [slides]
Chapter 13.8: Binary Search
Tue, Nov 19, 2024 Lecture 19
Binary Search [slides]
Chapter 13.8: Binary Search
Lab09 - Interfaces
HW10 - OOP (Due Wed, Nov 27, 2024)
Thu, Nov 21, 2024 Lecture 20
Sorting I [slides]
Chapter 14: Objects of Arrays
Tue, Nov 26, 2024 Lecture 21
Sorting II
Runtime Analysis [slides]
Lab10: Sorting
Thu, Nov 28, 2024 THANKSGIVING
NO CLASS
Tue, Dec 3, 2024 Lecture 22
Midterm Review [slides]

Search & Sorting

Date Topic Reading Assignment
Thu, Dec 5, 2024 Lecture 23
Midterm
HW11 - SuperDuper Array (Due Thu, Dec 12, 2024)
Tue, Dec 10, 2024 Lecture 24
Runtime [slides]
Lab11 - Runtime
Thu, Dec 12, 2024 Lecture 25
Final Review [slides]