CMSC 14100: Introduction to Computer Science I (Winter 2025)

This is a place for my CS 141 materials. Please see Canvas for the official course website.

Lecture notes

These are my lecture notes. They are meant to be an approximate record of what I covered or intended to cover that day, as well as some personal points of emphasis. These notes are not standard course materials—they do not reflect what other instructors may have covered.

Each lecture goes up typically on the same day, in the afternoon or evening.

January 6
Introduction
January 8
Tools for programming
January 10
Programming, working with data, expressions
January 13
Types, functions
January 15
Control flow, conditional statements
January 17
Fixed and arbitrarily large data, Looping
January 22
Looping, lists
January 24
Mutation
January 27
Tuples, strings
January 29
Lists of lists, while loops
January 31
More on functions: scope, parameters
February 3
Dictionaries
February 5
More on dictionaries, sets
February 7
Abstract data types
February 10
Classes
February 12
Accessing attributes and methods, dunder methods
February 14
Modeling with classes
February 17
Recursion
February 19
Recursion on lists
February 21
Trees
February 24
Binary search trees
February 26
Generative recursion: mergesort
February 28
Generative recursion: binary search, Files
March 3
Exceptions
March 5
More on exceptions
March 7
Wrap-up/Q&A

Code

This Git repository contains the code at the end of each lecture.