With just a few blogs left before I graduate (please, hold your tears… @myself), I want to make sure I leave some information about a program that is home to many of my favorite and most rewarding classes—Viterbi’s Information Technology Program (ITP). Providing more unique minors (i.e. Video Game Programming, Digital Forensics, Innovation, Mobile App Dev, iOT Devices) than the traditional Computer Science route, the funniest and most engaging teachers around (*cough cough Nathan Greenfield*), and a mix of digestible 2 to 4 unit classes, the ITP program is the definition of outside-of-the-box thinking. I have a Video Game Programming specialization and wanted to share my experience in a few favorite ITP classes. In my opinion, ITP is a great alternative to the typical Computer Science minor with more flexibility in a tough schedule and a variety of more specialized options.

ITP 168, Introduction to MATLAB

While most of my friends would cringe to see MATLAB at the top of my list, this class has prepared me incredibly well for using MATLAB in many of my Electrical Engineering courses. With hands-on MATLAB lab coding assignments each week, you’ll leave with a solid foundation that will likely help you in future coursework (i.e. anything related to linear algebra, statistics/probability, and 2D/3D scientific visualization – all of this can be optimized by MATLAB and will reduce your work when simplifying terrifying equations).

ITP 365, Managing Data in C++

ITP 365 is the best class to gain a solid foundation of C++, covering object-oriented programming, data structures, memory management, algorithms, and more. If you have prior C++ experience, you may be able to jump straight in to 365, or if you are starting fresh, you can take ITP 165 and ITP 265 beforehand. This class prepared me to jump into more advanced coursework specific to my video game programming specialization and my internships in software engineering such as ITP 380 and ITP 435. Take it with Nathan Greenfield for the funniest jokes sprinkled into every lecture!

ITP 380, Video Game Programming

Woot woot let’s go Video Game Programming!!! One of my favorite 3 undergraduate courses, ITP 380 gives students a strong understanding of game systems in C++. Throughout the course, you create many 2D and 3D games (my class’s final project was a 3D parkour first-person game with many levels) and deal with tons of cool physics. This course has made me love vectors and 3D graphics—that’s hard to do. You will learn about game rendering, input, sound, collisions, and graphics (yassssssss).

ITP 435, Professional C++

Though this was a tougher class, ITP 435 is incredibly valuable and rewarding—many CS students take this class as well because it prepares students for technical coding interviews. ITP 435 will let you tackle real-world coding assignments including data compression, bioinformatics, REST servers, and compiler development. It builds on algorithms learned from the ITP 365 path, and teaches you to code, well, like a professional, including clean coding styles such as dynamic programming.

A still from my final ITP 380 project: a first-person parkour game with multiple levels! The green arrow points in the direction to run.

If you have an interest in programming aligning with cutting-edge technologies, startup culture, product design (gamesssss woo), or data/cyber analytics, check out ITP!! These have been some of my favorite classes in my four years of school, and I view them as equally important to my major coursework. Last but not least, ITP brings together an amazing mix of people both inside and outside of Viterbi, and is a great way to code in a diverse and creative environment while meeting new peers!

Madelyn Douglas

Madelyn Douglas

MAJOR: Electrical (Computer) Engineering YEAR: Class of 2020 HOMETOWN: Bethseda, Maryland PRONOUNS: she/her/hers