CS 125 Classes

Slides are available for all CS 125 classes. All slide decks contain many examples that you can run and interact with.

Note that full captions are available for all videos from Fall 2018 only.

Fall 2019

YouTube Playlist  // Pre-Class Music

Wed 12.11.2019. Fall 2019 By The Numbers

A quantitative summary of everything you did this semester, what to do next, and completion of the course evaluation forms.

Mon 12.9.2019. MTDash

Ben visits us to discuss MTDash.

Fri 12.6.2019. More Generics

How to program with Java generics.

Wed 12.4.2019. Generics

Wrap up of hashing and a discussion of how to program with Java generics.

Mon 12.2.2019. Hashing and Maps

Hash tables, maps, and some theory behind hashing.

Fri 11.22.2019. More About Exceptions

Working with and throwing exceptions.

Wed 11.20.2019. Exceptions and Errors

Discussion of Java errors and error handling.

Mon 11.18.2019. Web and Web APIs

Introduction to the HTTP transport protocol and web APIs.

Fri 11.15.2019. Internet Introduction

Introduction to the internet.

Wed 11.13.2019. Quicksort

Discussion of Quicksort and sorting comparisons.

Mon 11.11.2019. Merge Sort

Completion of Merge Sort.

Fri 11.8.2019. Insertion and Merge Sort

Discussion of insertion sort and merge sort.

Wed 11.6.2019. Recursion and Sorting

Introduction to array and list recursion and sorting.

Mon 11.4.2019. More Practice with Recursion

More practice with recursion, including on non-tree structures.

Fri 11.1.2019. Practice with Recursion

Continuation of recursive practice on binary trees.

Wed 10.30.2019. Trees and Recursion

Introduction to trees and recursion.

Mon 10.28.2019. Linked Lists

Completion of a discussion of linked lists and midterm exam review.

Fri 10.25.2019. Lists

Practice with big-O notation and analysis of two different list implementations.

Wed 10.23.2019. Algorithm Runtime

An introduction to the analysis of algorithm runtime and big-O notation and an introduction to the list data structure.

Mon 10.21.2019. Introduction to Algorithms

Introduction to algorithms and algorithm runtime analysis.

Fri 10.18.2019. More About Interfaces

A continuation of a discussion of interfaces.

Wed 10.16.2019. Interfaces

Continuation of an introduction to Java interfaces.

Mon 10.14.2019. Review of References

A review of object references and an introduction to interfaces.

Fri 10.11.2019. Polymorphism and References

A continued discussion of polymorphism in light of what we now know about object references.

Wed 10.9.2019. Object References

An introduction to object references and their implications for Java programming.

Mon 10.7.2019. Object Review

A chance to slow down and review Java objects, including instances, constructors, class design, inheritance, and polymorphism.

Wed 10.2.2019. Polymorphism

A introduction to Java polymorphism, a discussion of Java object casting, and more practice with inheritance.

Mon 9.30.2019. Inheritance

A review of static, the final keyword, and an introduction to inheritance.

Fri 9.27.2019. Getters and Setters

More about Java objects, including static methods and variables and object modeling.

Wed 9.25.2019. Constructors and Visibility

A continued discussion of Java objects, introducing constructors and visibility.

Mon 9.23.2019. Introduction to Objects

An introduction to Java objects, including terminology, instance variables, and data modeling.

Fri 9.20.2019. Midterm 0 Review

AMA review session for the first midterm review.

Wed 9.18.2019. Compilation

A last review of imperative programming including a few more constructs and a behind-the-scenes look at what happens when your code is compiled and executed.

Mon 9.16.2019. More Dimensions

Two-dimensional arrays, more imperative programming constructs, and more practice with algorithms.

Fri 9.13.2019. Practice with Functions and Strings

A discussion of method overloading and type casting, followed by more practice with Java functions and Strings.

Wed 9.11.2019. Strings

An introduction to Java strings and object usage, and continued practice with functions and basic imperative programming.

Mon 9.9.2019. Functions

Introduction to functions.

Fri 9.6.2019. Arrays and Algorithms

Continuation of arrays and introduction and practice with simple algorithms.

Wed 9.4.2019. Arrays and Loops

An introduction to arrays of data and the loops that we use to process them.

Fri 8.30.2019. Conditional Expressions

Introduction to comparisons and conditional expressions, the basis for programmatic decision making.

Wed 8.28.2019. Types and Variables

Introduction to Java primitive types, variable initialization and declaration, and modifying variable values through a variety of expressions.

Mon 8.26.2019. Welcome to CS 125

Introduction to an introduction to computer science, the course staff, and course policies. Also begins a discussion of variables.

Spring 2019

YouTube Playlist  // Pre-Class Music

Fri 5.3.2019. CS 125 Awards

Awards for both the best projects at the Final Project Fair and recognizing students that embody the spirit of CS 125.

Wed 5.1.2019. Spring 2019 By The Numbers

A quantitative summary of everything you did this semester, what to do next, and completion of the course evaluation forms.

Mon 4.29.2019. Functional Java

A brief introduction to functional programming and functional programming in Java.

Fri 4.26.2019. More Generics

How to program with Java generics.

Wed 4.24.2019. Generics

Wrap up of hashing and a discussion of how to program with Java generics.

Mon 4.22.2019. Hashing and Maps

Hash tables, maps, and some theory behind hashing.

Fri 4.19.2019. Exceptions and Hash Functions

Working with exceptions and an introduction to hash functions.

Wed 4.17.2019. Exceptions and Errors

Discussion of Java errors and error handling.

Mon 4.15.2019. Web and Web APIs

Introduction to the HTTP transport protocol and web APIs.

Fri 4.12.2019. Internet Introduction

Introduction to the internet.

Wed 4.10.2019. Sorting Finale

Conclusion of a discussion of Quicksort and sorting comparisons.

Mon 4.8.2019. Quicksort

Completion of Merge Sort, discussion of Quicksort, and a overview of sorting algorithms and their tradeoffs.

Fri 4.5.2019. Insertion and Merge Sort

Discussion of insertion sort, merge sort, and Java generics.

Wed 4.3.2019. Recursion and Sorting

Introduction to array and list recursion and sorting.

Mon 4.1.2019. More Practice with Recursion

More practice with recursion, including on non-tree structures.

Fri 3.29.2019. Practice with Recursion

Continuation of recursive practice on binary trees.

Wed 3.27.2019. Trees and Recursion

Introduction to trees and recursion.

Mon 3.25.2019. Linked Lists

Completion of a discussion of linked lists and midterm exam review.

Fri 3.15.2019. Lists

Practice with big-O notation and analysis of two different list implementations.

Wed 3.13.2019. Algorithm Runtime

An introduction to the analysis of algorithm runtime and big-O notation and an introduction to the list data structure.

Mon 3.11.2019. Introduction to Algorithms

Introduction to algorithms and algorithm runtime analysis.

Fri 3.8.2019. More About Interfaces

A continuation of discussion of interfaces.

Wed 3.6.2019. References and Java Memory Management

A discussion of Java memory management with reminders about references.

Mon 3.4.2019. References and Interfaces

A continuation of a discussion of object references and an overview of Java interfaces.

Fri 3.1.2019. Object References

An introduction to object references and their implications for Java programming.

Mon 2.25.2019. More Polymorphism

A continued discussion of polymorphism and practice with inheritance and class design.

Fri 2.22.2019. Object Review

A chance to slow down and review Java objects, including instances, constructors, class design, inheritance, and polymorphism.

Wed 2.20.2019. Polymorphism

A introduction to Java polymorphism, a discussion of Java object casting, and more practice with inheritance.

Mon 2.18.2019. Inheritance

A review of static, the final keyword, and an introduction to inheritance.

Fri 2.15.2019. Getters and Setters

More about Java objects, including static methods and variables and object modeling.

Wed 2.13.2019. Constructors and Visibility

A continued discussion of Java objects, introducing constructors and visibility.

Mon 2.11.2019. Introduction to Objects

An introduction to Java objects, including terminology, instance variables, and data modeling.

Fri 2.8.2019. Midterm 0 Review

AMA review session for the first midterm review.

Thu 2.7.2019. EMP3

Our fourth even more practice (EMP) session. Course content will be reviewed by Anjali Menon and the fantastic EMP course assistants.

Wed 2.6.2019. Compilation

A last review of imperative programming including a few more constructs and a behind-the-scenes look at what happens when your code is compiled and executed.

Mon 2.4.2019. More Dimensions

Two-dimensional arrays, more imperative programming constructs, and more practice with algorithms.

Fri 2.1.2019. Practice with Functions and Strings

A discussion of method overloading and type casting, followed by more practice with Java functions and Strings.

Thu 1.31.2019. EMP2

Our third even more practice (EMP) session. Course content will be reviewed by Anjali Menon and the fantastic EMP course assistants.

Wed 1.30.2019. Strings

An introduction to Java strings and object usage, and continued practice with functions and basic imperative programming.

Mon 1.28.2019. Functions

Introduction to functions.

Fri 1.25.2019. Arrays and Algorithms

Continuation of arrays and introduction and practice with simple algorithms.

Thu 1.24.2019. EMP1

Our second even more practice (EMP) session. Course content will be reviewed by Anjali Menon and the fantastic EMP course assistants.

Wed 1.23.2019. Loops and Arrays

Overview of several kinds of loops and an introduction to arrays.

Fri 1.18.2019. Conditional Expressions

Introduction to comparisons and conditional expressions, the basis for programmatic decision making.

Thu 1.17.2019. EMP0

Our first even more practice (EMP) session. Course content will be reviewed by Anjali Menon and the fantastic EMP course assistants.

Wed 1.16.2019. Types and Variables

Introduction to Java primitive types, variable initialization and declaration, and modifying variable values through a variety of expressions.

Mon 1.14.2019. Welcome to CS 125

Introduction to an introduction to computer science, the course staff, and course policies. Also begins a discussion of variables.

Fall 2018

YouTube Playlist  // Pre-Class Music

Thu 12.13.2018. CS 125 Awards

Awards for both the best projects at the Final Project Fair and recognizing students that embody the spirit of CS 125.

Wed 12.12.2018. Fall 2018 By The Numbers

A quantitative summary of everything you did this semester, what to do next, and completion of the course evaluation forms.

Mon 12.10.2018. Functional Java

A brief introduction to functional programming and functional programming in Java.

Fri 12.7.2018. Concurrency and Parallelism

Wrap up generics and introduction to concurrency, parallelism, race conditions, and synchronization.

Thu 12.6.2018. EMP13

Our last even more practice (EMP) session. Course content will be reviewed by Liia Butler and the fantastic EMP course assistants.

Wed 12.5.2018. Generics

Wrap up of hashing and a discussion of how to program with Java generics.

Mon 12.3.2018. Hashing and Maps

Hash tables, maps, and some theory behind hashing.

Fri 11.30.2018. Exceptions and Hash Functions

Working with exceptions and an introduction to hash functions.

Thu 11.29.2018. EMP12

Our twelfth even more practice (EMP) session. Course content will be reviewed by Liia Butler and the fantastic EMP course assistants.

Wed 11.28.2018. Exceptions and Errors

Discussion of Java errors and error handling.

Mon 11.26.2018. Web APIs

Introduction to the HTTP transport protocol and web APIs.

Fri 11.16.2018. Internet and Web

Introduction to the internet, the world-wide web (WWW), the HTTP transport protocol, and web APIs.

Thu 11.15.2018. EMP11

Our eleventh even more practice (EMP) session. Course content will be reviewed by Liia Butler and the fantastic EMP course assistants.

Mon 11.12.2018. Quicksort

Completion of Merge Sort, discussion of Quicksort, and a overview of sorting algorithms and their tradeoffs.

Thu 11.8.2018. EMP10

Our tenth even more practice (EMP) session. Course content will be reviewed by Liia Butler and the fantastic EMP course assistants.

Wed 11.7.2018. Sorting Algorithms

Introduction to array recursion, sorting and Insertion Sort.

Mon 11.5.2018. More Practice with Recursion

More practice with recursion, including on non-tree structures.

Fri 11.2.2018. Practice with Recursion

Continuation of recursive practice on binary trees.

Thu 11.1.2018. EMP9

Our ninth even more practice (EMP) session. Course content will be reviewed by Liia Butler and the fantastic EMP course assistants.

Wed 10.31.2018. Trees and Recursion

Introduction to trees and recursion.

Mon 10.29.2018. Linked Lists

Completion of a discussion of linked lists and midterm exam review.

Fri 10.26.2018. Lists

Practice with big-O notation and analysis of two different list implementations.

Thu 10.25.2018. EMP8

Our eighth even more practice (EMP) session. Course content will be reviewed by Liia Butler and the fantastic EMP course assistants.

Wed 10.24.2018. Algorithm Runtime

An introduction to the analysis of algorithm runtime and big-O notation.

Mon 10.22.2018. Introduction to Algorithms

Completion of a discussion of interfaces and introduction to algorithms.

Fri 10.19.2018. More About Interfaces

A continuation of discussion of interfaces.

Thu 10.18.2018. EMP7

Our seventh even more practice (EMP) session. Course content will be reviewed by Liia Butler and the fantastic EMP course assistants.

Wed 10.17.2018. References and Java Memory Management

A discussion of Java memory management with reminders about references.

Mon 10.15.2018. References and Interfaces

A continuation of a discussion of object references and an overview of Java interfaces.

Fri 10.12.2018. Object References

An introduction to object references, their implications for Java programming, and a bit about Java memory management.

Thu 10.11.2018. EMP6

Our sixth even more practice (EMP) session. Course content will be reviewed by Liia Butler and the fantastic EMP course assistants.

Mon 10.8.2018. More Polymorphism and Class Design

A continued discussion of polymorphism and practice with inheritance and class design.

Fri 10.5.2018. Polymorphism

A introduction to Java polymorphism, a discussion of Java object casting, and more practice with inheritance.

Thu 10.4.2018. EMP5

Our fifth even more practice (EMP) session. Course content will be reviewed by Liia Butler and the fantastic EMP course assistants.

Wed 10.3.2018. Inheritance

A review of static, the final keyword, and an introduction to inheritance.

Mon 10.1.2018. Static and Modeling

Midterm review followed by more about Java objects, including static methods and variables.

Fri 9.28.2018. Getters and Setters

More about Java objects, including static methods and variables and object modeling.

Thu 9.27.2018. EMP4

Our fourth even more practice (EMP) session. Course content will be reviewed by Liia Butler and the fantastic EMP course assistants.

Wed 9.26.2018. Constructors and Visibility

A continued discussion of Java objects, introducing constructors and visibility.

Mon 9.24.2018. Midterm 0 Review

AMA review session for the first midterm review.

Fri 9.21.2018. Introduction to Objects

An introduction to Java objects, including terminology, instance variables, and data modeling.

Thu 9.20.2018. EMP3

Our fourth even more practice (EMP) session. Course content will be reviewed by Liia Butler and the fantastic EMP course assistants.

Wed 9.19.2018. Constructs and Compilation

A last review of imperative programming including a few more constructs and a behind-the-scenes look at what happens when your code is compiled and executed.

Mon 9.17.2018. More Dimensions

Two-dimensional arrays, more imperative programming constructs, and more practice with algorithms.

Fri 9.14.2018. Practice with Functions and Strings

A discussion of method overloading and type casting, followed by more practice with Java functions and Strings.

Thu 9.13.2018. EMP2

Our third even more practice (EMP) session. Course content will be reviewed by Liia Butler and the fantastic EMP course assistants.

Wed 9.12.2018. Strings

An introduction to Java strings and object usage, and continued practice with functions and basic imperative programming.

Mon 9.10.2018. Functions

Introduction to functions.

Fri 9.7.2018. Arrays and Algorithms

Continuation of arrays and introduction and practice with simple algorithms.

Thu 9.6.2018. EMP1

Our second even more practice (EMP) session. Conditional expressions, loops, and arrays will be reviewed by Liia Butler and the fantastic EMP course assistants.

Wed 9.5.2018. Loops and Arrays

Overview of several kinds of loops and an introduction to arrays.

Fri 8.31.2018. Conditional Expressions

Introduction to comparisons and conditional expressions, the basis for programmatic decision making.

Wed 8.29.2018. Types and Variables

Introduction to Java primitive types, variable initialization and declaration, and modifying variable values through a variety of expressions.

Mon 8.27.2018. Welcome to CS 125

Introduction to an introduction to computer science, the course staff, and course policies. Also begins a discussion of variables.

Spring 2018

Echo360  // Pre-Class Music

Wed 5.2.2018. Exam Review

Exam AMA.

Mon 4.30.2018. Concurrency and Parallelism

Introduction to concurrency, parallelism, race conditions, and synchronization.

Fri 4.27.2018. Beautiful Machines

Introduction to computer hardware.

Wed 4.25.2018. Exceptions and Errors Continued

Continuation of a discussion of Java errors and error handling.

Mon 4.23.2018. EMP12

Review of recent material led by Liia Butler and the fantastic EMP course assistants.

Mon 4.23.2018. Exceptions and Errors

Discussion of Java errors and error handling.

Fri 4.20.2018. More Hashing and Maps

Continuation of an introduction to hash functions, various uses of hashing, and hash tables and maps.

Wed 4.18.2018. Hashing and Maps

An introduction to hash functions, various uses of hashing, and hash tables and maps.

Mon 4.16.2018. EMP11

Review of recent material led by Liia Butler and the fantastic EMP course assistants.

Mon 4.16.2018. Imports and Build Systems

Introduction how to how Java libraries are packaged, distributed, and imported. Includes a discussion of the Gradle build system and the role it can play in this process.

Fri 4.13.2018. Web APIs

Discussion of how web APIs work and how you can use them in your own projects.

Wed 4.11.2018. Web

Introduction to the world-wide web, including protocols and document types and roles.

Mon 4.9.2018. EMP10

Review of sorting led by Liia Butler and the fantastic EMP course assistants.

Mon 4.9.2018. Internet

Introduction to the internet, the world-wide web (WWW), and the HTTP transport protocol.

Fri 4.6.2018. Introduction to Android

An introduction to Android, hacking, and MP6.

Wed 4.4.2018. Quicksort

Discussion of Quicksort and a overview of sorting algorithms and their tradeoffs.

Mon 4.2.2018. EMP9

Review of sorting and recursion led by Liia Butler and the fantastic EMP course assistants.

Fri 3.30.2018. Merge Sort

Discussion of merge sort.

Wed 3.28.2018. Sorting Algorithms

Introduction to sorting and Insertion Sort.

Mon 3.26.2018. EMP8

Review of recursion led by Liia Butler and the fantastic EMP course assistants.

Mon 3.26.2018. More Practice with Recursion

More practice with recursion, including on non-tree structures.

Wed 3.14.2018. Practice with Recursion

Continuation of recursive practice on binary trees.

Mon 3.12.2018. EMP7

Review of big-O analysis led by Liia Butler and the fantastic EMP course assistants.

Mon 3.12.2018. Introduction to Recursion

Introduction to recursion on binary trees

Fri 3.9.2018. Lists and Trees

Completion of a discussion of linked lists, and introduction to binary trees.

Wed 3.7.2018. Linked Lists

Continuation of a discussion of linked lists, including inserting elements and iteration.

Mon 3.5.2018. EMP6

Review of references led by Liia Butler and the fantastic EMP course assistants.

Mon 3.5.2018. Lists

Discussion of lists implemented both using arrays and linked lists.

Fri 3.2.2018. Algorithm Complexity

An introduction algorithm complexity analysis and big-O notation.

Wed 2.28.2018. Algorithm Runtime

An introduction to the analysis of algorithm runtime and big-O notation.

Mon 2.26.2018. EMP5

Review of objects led by Liia Butler and the fantastic EMP course assistants.

Mon 2.26.2018. Object References

An introduction to object references, their implications for Java programming, and a bit about Java memory management.

Fri 2.23.2018. Polymorphism

A review of Java polymorphism, a discussion of Java object casting, and more practice with inheritance.

Wed 2.21.2018. Inheritance

An introduction to relations between Java objects and inheritance.

Mon 2.19.2018. EMP4

Review of objects review led by Liia Butler and the fantastic EMP course assistants.

Mon 2.19.2018. Object Design

A discussion of how to use Java objects to model various simple entities.

Fri 2.16.2018. Visibility and Static

A continued discussion of Java objects, introducing visibility and static methods and variables.

Wed 2.14.2018. Constructors and Visibility

A continued discussion of Java objects, introducing constructors and visibility.

Mon 2.12.2018. EMP3

Our next even more practice (EMP) session, with more review led by Liia Butler and the fantastic EMP course assistants.

Mon 2.12.2018. Introduction to Objects

An introduction to Java objects, including terminology, instance variables, and data modeling.

Fri 2.9.2018. Imperative Finale

More imperative constructs and practice.

Wed 2.7.2018. More Constructs

More imperative programming constructs and practice with algorithms.

Mon 2.5.2018. EMP2

Our third even more practice (EMP) session, with more review led by Liia Butler and the fantastic EMP course assistants.

Mon 2.5.2018. More Dimensions

Two-dimensional arrays, more imperative programming constructs, and more practice with algorithms.

Fri 2.2.2018. Practice with Functions and Strings

More practice with functions and Java Strings.

Wed 1.31.2018. Strings

An introduction to Java strings and object usage, and continued practice with functions and basic imperative programming.

Mon 1.29.2018. EMP1

Our second even more practice (EMP) session. Conditional expressions, loops, arrays, and algorithms will be reviewed by Liia Butler and the fantastic EMP course assistants.

Mon 1.29.2018. Functions

Introduction to functions.

Fri 1.26.2018. Arrays and Algorithms

Continuation of arrays and introduction and practice with simple algorithms.

Wed 1.24.2018. Loops and Arrays

Overview of several kinds of loops and an introduction to arrays.

Mon 1.22.2018. EMP0

Our first even more practice (EMP) session. Primitive types, variables, expressions, statements and conditionals will be reviewed by Liia Butler and the fantastic EMP course assistants.

Mon 1.22.2018. Conditional Expressions

Introduction to comparisons and conditional expressions, the basis for programmatic decision making.

Fri 1.19.2018. Types and Variables

Introduction to Java primitive types, variable initialization and declaration, and modifying variable values through a variety of expressions.

Wed 1.17.2018. Welcome to CS 125

Introduction to an introduction to computer science, the course staff, and course policies. Also begins a discussion of variables.


Created 12/13/2019
Updated 12/13/2019
Commit 407a199 // History // View
Built 12/13/2019 @ 11:15 EDT