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.