Info

For Spring 2025, I will be a graduate TA for all three CSCI 2021 Machine Architecture courses. This subsection of my website will be dedicated to info for students in any of the CSCI 2021 sections in Spring 2025.

Office Hours

My office hours will be 10:00am - 12:00pm at Keller Hall 2-209. Officially, the 10:00am - 11:00am slot is dedicated to Professor Exley's 001 section, and the 11:00am - 12:00pm slot is dedicated to Professor Kolb's 010 and 020 sections. I do not intend to keep this as a "hard wall," so feel free to drop by and treat my OH as a full 2-hour OH session.

Note: while I don't intend to keep the "hard wall," I reserve the right to do so when I judge that the "hard wall" is needed to preserve fairness in office hours access.

I am also available by appointment. Email me at loo00013 at umn dot edu if you want to schedule an appointment.

Resources to succeed

Machine Architecture is one long infodump about how a computer actually works when you strip it down to bare essentials. You need to be comfortable with your computermachine. Fortunately these are skills that you can pick up rather easily.

  • ACM UMN hosts Unix classes on the days of 02/06, 02/20, and 02/27. IME people who arrive at Unix classes and are interested in how their computers work tend to excel in the course. Also this acts as a shameless plug to ACM UMN, of which I am a part of.

  • Beej's Quick Guide to GDB is an amazing tour of GDB. Scroll down to the bottom to get a very useful cheat sheet!

  • For people in Professor Kolb's sections specifically, Docker Curriculum is a great way to get started with Docker. Just ignore the AWS-y bits, that's more CSCI 3081W territory that we shouldn't open.

    • If I take control of your computer and do crazy docker stuff, feel free to interrupt and ask me, I love explaining Docker commands!
  • The OSDev Wiki has some amazing pages explaining the x86-64 architecture that we study. I recommend the pages on SysV ABI and quirks about x86-64.

  • What Every Programmer Should Know About Memory is something that I wish we can cover in classes completely, but attention spans are finite. We might be doing optimization stuff later in the course though, so wink wink.

Further reading

For the performance freaks who want to dabble in the dark arts of optimizations:

  • Agner Fog's amazing optimization guides is a must-read for any performance freak, but I don't particularly recommend reading it until the 2nd half of the course

  • For further reading, Ronald's x86inc.asm guide provides you with the tools necessary to produce what I consider to be "production-grade" assembly.

Expectations

While I don't expect you to refer to me formally (just call me by my first name), I expect you to treat me and other students in the course as equals (I'm also a student, after all), and with respect and dignity.

pov you come to keller 2-209

All UMN policies w.r.t academic integrity and freedom, disability accomidation and services, sexual harrassment and assult, and mental health apply. Refer to the syllabus of the course for details.

The parts about respect, dignity, and academic integrity are of some concern here - I expect you to respect the course materials enough to not ChatGPT it!