CMSI 2120 - Data Structures

Professor Andrew Forney • Andrew.Forney[at]lmu.edu • Fall 2021

Note: This course has been archived and is no longer being maintained; some links may no longer function properly!


Welcome to CMSI-2120 8 / 31 / 21

If you're reading this then you've successfully found the course page for CMSI 2120! Check this page frequently for announcements that are relevant to the course, including notes, homework assignments, and practice problems.

First things first, please read through the course syllabus located here (or in the Materials tab above).


Lecture Notes
Date Lecture Subject
Lecture 14-2
12 / 2 / 21
Warning: Graphic Content
Content about graphs, that is!
Lecture 13-1
11 / 23 / 21
Hell Hash No Fury...
...like an instructor trying to think of a pun on hash tables (this lecture's about hash tables).
Lecture 12-1
11 / 16 / 21
Heaping on the Data Structures
Heaps and Priority! They're a little bit of everything we love!
Lecture 10-1
11 / 2 / 21
Their Bark is Worse Than Their Byte: Part II
The tale continues with binary search and the trees it grows.
Lecture 9-2
10 / 28 / 21
Their Bark is Worse Than Their Byte: Part I
A gentle introduction to trees replete with as many puns as possible.
Lecture 9-1
10 / 26 / 21
Sorting, Searching, Success
The three S's of this lecture! Practice with Asymptotic Runtime Analysis on two important subtopics.
Lecture 8-1
10 / 19 / 21
Analyze this
Asymptotics and notation -- runtime analysis gets serious!
Lecture 6-2
10 / 7 / 21
Stacking and Queueing
Some of the most boring things to do as a human... but exciting in the context of data structures!
Lecture 6-1
10 / 5 / 21
Feeling Listless 2: The Linkening
All about linked lists, iterators, and implementing both!
Lecture 5-1
9 / 28 / 21
Feeling Listless?
Array Lists, implementation strategies, and debugger tutorial
Lecture 4-2
9 / 23 / 21
Remember memory?
Computer architecture overview, garbage collection, and memory management
Lecture 3-2
9 / 9 / 21
Inheriting some wisdom
Reviewing Java's inheritance mechanics, including overriding and the Object superclass.
Lecture 3-1
9 / 14 / 21
Classing up the joint
Java class design, object-oriented programming, and some best practices.

  Lecture Video (L3-1)
Lecture 2-1
9 / 7 / 21
Controlling the Flow of Java
...and no, not a lecture on espresso machines... control flow, method design, and test-driven development.
Lecture 1-2
9 / 2 / 21
To Make a Cup of Java, First, You Must Invent the Universe
Primitives, arrays, and Strings in this one, as we look at the building-blocks of our data structures!
Lecture 1-1
8 / 31 / 21
The (bitter?) Taste of Java
Introductions, syllabus perusal, comparisons of Java and Python, and development environment setup.


Nothing to see here anymore!


Classwork
Number Date Assigned Due Midnight
[Bonus] Classwork 7 - Priority: Hashing
  Solution [.zip]
12 / 2 / 21 12 / 9 / 21
Classwork 6 - Potpourtree
  Solution [.zip]
11 / 11 / 21 11 / 18 / 21
[Bonus] Classwork 5 - Just Browsin'
  Solution [.zip]
10 / 12 / 21 [!] 10 / 17 / 21
Classwork 4 - Enlisted to Finish IntList
  Solution & Grading Tests [.zip]
9 / 30 / 21 10 / 7 / 21
Classwork 3 - Flipping Forneymon...
  Solution & Grading Tests [.zip]
9 / 21 / 21 9 / 28 / 21
Classwork 2 - Warming Up Some Java
  Solution [.zip]
9 / 9 / 21 9 / 16 / 21
Classwork 1 - Gitting Our Feet Wet 9 / 2 / 21 9 / 9 / 21

Note: Classworks are always due 1 week from the class in which they were first presented, unless otherwise specified. If we do not *get* to a classwork on the date shown in the "assigned" column above, you may disregard the due date until it is updated. You are expected to attend class or learn from classmates when classworks are assigned.