university.
2024-06-16
There are two kinds of scientific progress: the methodical experimentation and categorization which gradually extend the boundaries of knowledge, and the revolutionary leap of genius which redefines and transcends those boundaries. Acknowledging our debt to the former, we yearn nonetheless for the latter.
-- Academician Prokhor Zakharov
"Address to the Faculty"

Prelude

While digging through some files, I found my college transcript from — looks at calendar — 13 years ago and thought it might be fun to jot down some recollections.

Transfer

General Chemistry I CHEM 102
General Chemistry II CHEM 104
Calculus MATH 220
Calculus II MATH 231

I took a few AP tests in high school and got out of intro chemistry and calculus freshman year. It's still interesting that after a decade or so of school before university, a handful of transfer credits from AP tests are the only things that carry over.

Fall 07

Engineering Lecture ENG 100
Undergraduate Open Seminar ENG 199
Calculus III MATH 241
Linear Algebra MATH 415
Computer-Aided Design ME 170
Univ Physics: Mechanics PHYS 211
Third Year Russian I RUSS 301

I actually started off as a mechanical engineering major, hence taking ME 170. It was cool to play around with CAD for a semester, but ultimately not what I wanted to do.

My AP physics score wasn't high enough and I didn't pass the exam to get credit for multivariable calculus, so even though I took both PHYS 211 and MATH 241 in high school, I had to take them again freshman year.

Spring 08

Intro to Computer Science CS 125
Discrete Structures CS 173
Freshman Honors CS 196
Survey of Russian History HIST 260
Principles of Composition RHET 105
Third Year Russian II RUSS 302

After quickly deciding to switch to a CS major, I had to take CS 125 and CS 173 before the program would let me officially transfer in. Which is so much easier than today, since you're apparently no longer allowed to move into the CS program from within the university.

Fall 08

Data Structures CS 225
Computer Architecture I CS 231
Numerical Methods CS 257
Computer Security I CS 461
Statistics and Probability I MATH 463

Learning data structures in CS 225 was one of the top two most important software dev classes I took. Useful for day to day coding fundamentals (and passing interviews).

Spring 09

Computer Architecture II CS 232
System Programming CS 241
Honors Course CS 296
Security Laboratory CS 460
Introduction to World Music MUS 133
University Physics: Elec & Mag PHYS 212

CS 460 was pretty neat, we read articles like Smashing The Stack For Fun And Profit and then implemented them in the computer lab.

Fall 09

Ethical & Professional Issues CS 210
Programming Studio CS 242
Theory of Computation CS 373
Distributed Systems CS 425
Communication Networks CS 438
Artificial Intelligence CS 440

I remember putting a certain penny arcade comic in a presentation for my CS 210 ethics class. Got a good score on it, but the teacher wasn't fond of the cursing.

Hands down, my favorite class at university was CS 242. This class had a weekly programming assignment that you could solve in any number of ways, but you would have to present your solution to a small group of other students and a TA. This meant you saw the different ways that everyone in your group approached the same problem.

Some weeks, the assignment would build up off of the previous week's work (without you knowing ahead of time), so if you wrote clean code, you'd be better off than if you quickly hacked something together and left yourself with a bunch of techdebt.

Probably the closest class in college to actually having a software job.

Spring 10

Database Systems CS 411
Programming Languages & Compilers CS 421
Algorithms CS 473
Special Topics (Planning Algorithms) CS 498
Intro Psych PSYC 100

Along with data structures, CS 473 is the other of the top two most important software dev classes. I still recommend Erickson's algorithms textbook as a canonical reference for learning or reviewing this topic.

When a student asked if dancing would be on the final exam, the answer was yes! We got a final where every question was about dancing.

Fall 10

Introduction to Data Mining CS 412
Senior Thesis CS 499
Special Topics (Sensing, Actuation, and Computation) CS 598
Intro to Abstract Algebra MATH 417
Intro to Social Psych PSYC 201

During my last year of college, I had to finish up some gen eds and decided to start taking some extra math classes like MATH 417 for fun.

CS 598 with LaValle was a super interesting dive into relevant research papers (and the only grad-level course I've taken).

Spring 11

Introduction to Bioinformatics CS 466
Senior Thesis CS 499
Graph Theory MATH 412
Set Theory and Topology MATH 432
Univ Physics: Quantum Physics PHYS 214

My senior thesis for CS 499 was A primer on covering spaces for robot exploration, which was essentially a variation of the art gallery problem.