Algorithm Abstraction and Design Notes

Introduction These notes are on the COP4533 Algorithm Abstraction & Design with Professor Ungor at the University of Florida. What I have learned from this course has been compounded into these notes. Stable Matching Problem Given a set of preferences among hospitals and med-school students, we have to design a self-reinforcing admissions process. A matching $M$ is a set of ordered pairs, $h-s$, where $h \in H$ and $s \in S$, such that: ...

September 30, 2024 · Coleton O'Donnell

How WAD Works

Where’s All the Data? WAD (Where’s All the Data?) is the file format created by id Software and is utilized by the DOOM engine for storing game data. The primary concept behind the WAD is to allow users to easily modify game data. After the release of Wolfenstein 3D, id Software took note that many were modifying their game, but noticed the process was incredibly obtuse and actually involved modifying the engine directly. This idea of simplicity goes into the design of the format, being easily understandable and modifiable by DOOM users. A direct result of WAD’s beautiful simplicity is the ever growing and incredibly healthy modding community DOOM has, even 30 years later. It cannot be understated that the WAD is one of the reasons that DOOM has enjoyed such a long life, and why DOOM is revered as such an influential classic. So, the WAD’s simplicity is not a bad thing, and I feel it is a perfect example of what good engineering should be: simple, to the point, and tidy. ...

April 3, 2024 · Coleton O'Donnell

Data Structures and Algorithms Notes

Introduction Pardon the dust, this is being rewritten. These notes are on the COP3530 Data Structures and Algorithm class with the excellent Professor Kapoor at the University of Florida as well as on Abdul Bari’s DSA Course on Udemy. What I have learned from each has been compounded into one living document. If you are interested in Abdul Bari’s course but want a bit of a taste for it, there is also a free YouTube version that is consolidated. Please note that these are notes, I can’t stress this enough. These are written with prior knowledge in mind, and are basically useless if you aren’t following along with a textbook or a course. They won’t be teaching you well. These can act as a good reference for concepts and important explanations. Think of it as a TL;DR on things, but you’re doing yourself a disservice if you even think of using these as your main source of info. For textbooks, check out the excellent OpenDSA Book. If you prefer paper, check out “Introduction to Algorithms” by Cormen & Leiserson and “Data Structures and Algorithm Analysis in C++” by Weiss. ...

April 2, 2023 · Coleton O'Donnell