Skip to main content
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 that is available Piazza.

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

Programming Fundamentals

Date Topic Reading Assignment
Tue, Jan 17, 2023 Lecture 1
Course Introduction
Terminal, Compiling [slides] [video] [Code]
Chapter 1
Lab00 - Command Line, Unix, Vim
HW00 - Hello World, Compile Errors (Due Mon, Jan 23, 2023)
Thu, Jan 19, 2023 Lecture 2
Variables, Data Types, Expressions [slides] [video] [Code]
Chapter 2
Tue, Jan 24, 2023 Lecture 3
I/O: Input/Output [slides] [Code]
Chapter 3
Lab01 - Variables, Input, Errors
HW01 - Variables (Due Wed, Feb 1, 2023)
Thu, Jan 26, 2023 Lecture 4
Methods I [slides] [Code]
Chapter 4
Tue, Jan 31, 2023 Lecture 5
Methods II [slides]
Chapter 4
Lab02 - Methods
HW02 - Methods, Methods, Methods (Due Wed, Feb 8, 2023)
Thu, Feb 2, 2023 Lecture 6
Conditionals & Logic [slides]
Chapter 5
Fri, Feb 3, 2023 Last day to drop a fifth course at Bryn Mawr and Haverford.
Tue, Feb 7, 2023 Lecture 7
Strings, Objects
Recursion [slides]
Chapter 6
Chapter 7.10: String Comparison
Chapter 9.1: Primitives vs Objects
Lab03 - Conditionals, Strings, Recursion
Thu, Feb 9, 2023 Lecture 8
Arrays
Recursion II [slides]
Chapter 6
Chapter 8.1 & 8.2
Chapter 9.2: The null keyword

HW03 - Methods, Conditionals, Strings, and Arrays (Due Thu, Feb 16, 2023)
Tue, Feb 14, 2023 Lecture 9
Recursion I Loops [slides]
Chapter 6
Lab04 - Arrays, Recursion
Thu, Feb 16, 2023 Lecture 10
Recursion II
Loops I Loops II [slides]
Chapter 7
HW04 - Recursion
Tue, Feb 21, 2023 Lecture 11
Loops II Arrays & References [slides]
Chapter 7
Chapter 8
Lab05 - Tic Tac Toe
HW05 - Loops (Due Mon, Feb 27, 2023)
Fri, Feb 24, 2023 Last day to declare Cr/NC for full semester courses (5 p.m.).
Thu, Feb 23, 2023 Lecture 12
Arrays & References & Objects [slides]
Chapter 8
Chapter 9
Tue, Feb 28, 2023 Lecture 13
Review [slides]
Lab05 - Tic Tac Toe
Thu, Mar 2, 2023 Lecture 14
Midterm I
Tue, Mar 7, 2023 SPRING BREAK
Thu, Mar 9, 2023 SPRING BREAK

Object-Oriented Programming (OOP)

Date Topic Reading Assignment
Tue, Mar 14, 2023 Lecture 15
Objects I [slides]
Chapter 10
HW06 - Minesweeper (Due Mon, Mar 20, 2023)
Lab06 - Exceptions & Files
Thu, Mar 16, 2023 Lecture 16
Designing Classes [slides]
Chapter 11
Chapter 12.1 - 12.6 (inclusive)
Tue, Mar 21, 2023 Lecture 17
Designing Classes
Class Hierarchy (Inheritance & Interfaces) [slides]
Chapter 14
Chapter 17.4
Chapter 17.7
Lab07 - Designing Classes
Thu, Mar 23, 2023 Lecture 18
More classes & Objects
Relationships! [slides]
Chapter 16
HW07 - Object Oriented Programming (Due Thu, Mar 30, 2023)
Tue, Mar 28, 2023 Lecture 19
Interfaces (class actions!)
Searching [slides]
Chapter 12.7-12.9
Lab08 - Interfaces & Sorting

Searching & Sorting

Date Topic Reading Assignment
Thu, Mar 30, 2023 Lecture 20
Searching & Sorting [slides]
Chapter 13
Tue, Apr 4, 2023 Lecture 21
Binary Search
Sorting
Runtime Analysis
[slides]
Chapter 13
No LAB TODAY
Thu, Apr 6, 2023 PASSOVER
NO CLASS
Tue, Apr 11, 2023 Lecture 22
Selection Sort
Runtime Analysis
Midterm Review (remote lecture) [slides]
Lab09 Review
Thu, Apr 13, 2023 Lecture 23
Midterm II
HW08 - Vet Clinic (Due Fri, Apr 21, 2023)
Tue, Apr 18, 2023 Lecture 23
Bubble Sort
Selection Sort
2D & Jagged arrays [slides]
Chapter 15
Lab10 - Sorting
Thu, Apr 20, 2023 Lecture 24
Run Time Analysis [slides]
Tue, Apr 25, 2023 Lecture 25
Run Time Analysis
Testing Code (JUnit)
Regular Expressions
[slides]
Lab11 - RunTime
HW09 - SuperDuperArray (Due Fri, Apr 28, 2023)
Thu, Apr 27, 2023 Lecture 26
Review [slides]
Wed, May 3, 2023 Final 9:30am-12:30pm (Park 300)