University of Chicago Masters Program in Computer Science professors are leaders in tech and among the foremost authorities in their respective fields. In addition to teaching and applying tech solutions to solve challenging problems, our faculty also run successful businesses, work for Fortune 500 companies and dedicate themselves to advancing the field of Computer Science, each day. MPCS faculty supply their students with the applied skills and real-world projects they need to problem-solve, create, and build successful careers with top employers around the world. Learn from the experiences and expertise of our distinguished MPCS faculty, get an insider’s look into their classrooms and discover how a CS education can prepare you for a cutting edge career in technology.
Zach Freeman, alum of the MPCS, now teaches Databases at the University of Chicago’s Masters Program in Computer Science. Here, Zach describes his teaching philosophy and explains why he thinks it’s vital that students ask questions, shares his version of a great day in the MPCS, and thinks back upon one of his favorite memories as a student.
How did you get your start in computer science?
My very first CS-related job was working at a help desk, which I did while earning my undergraduate degree in theater at the University of Texas. After I graduated I got a 6-month contract for a show at a local theater which was huge. But when I saw the pay, I realized I needed another job.
The university had a slightly unorthodox method of hiring programmers: applicants who did not have CS degrees would take an aptitude test and then go through a series of interviews. It was essentially a CS degree at breakneck speed: All you did each day was learn programming languages and solve various problems while being continuously interviewed and tested. After the six months were over, I interviewed and got hired as a junior programmer by the Business School.
What does a great day at the MPCS look like for you?
I love when I can feel that the class is so engaged in the material that the lecture becomes more of a discussion as students’ questions build on each other.
What do you enjoy most about teaching computer science?
I love seeing students realize that they understand a concept and that understanding that concept means that they are able to accomplish something that they couldn’t before. They’re able to see the real world value of what they just learned (both in their own personal projects and in the job market).
Why the MPCS?
I love the mix of theory and real world application. I think theory is not that useful without real world application. Providing a helpful amount of theory gives students some background and framework for why they’re learning what they’re learning, why things work the way they do, and how they can improve and take their own work to the next level.
Describe your teaching philosophy.
I think it’s very important that my students feel comfortable asking questions, even if it means they have to tell me they disagree with something I said.
I always stress two things:
1. If they don’t understand a concept I just explained, stop me and ask a clarifying question. There are going to be several other people in class who don’t understand it either and will be glad you asked the question.
2. If you think I’m wrong, let me know. I’d much rather find out that I misspoke in the moment (or clarify a confusing point) than have students confused. I teach relational Databases and there are some instances where different Databases may have different setups that cause some specific scenarios to have different reactions. I love getting into those finer points (and often discover new things myself when those questions get raised).
What is your favorite concept or topic to teach? Why?
I love teaching about stored procedures. It is in that assignment where I feel like students really get to apply all they’ve learned up to that point and also recognize the power of SQL (outside of creating databases and storing/manipulating data).
If there were just three bits of knowledge you would like each student to walk away with, what would they be?
1. If you have an error in your code it is ALWAYS your fault. The computer is never wrong.
2. Even if you don’t end up in a job working with databases directly you should know how they work - EVERYTHING uses a database.
3. Stack Overflow (and other forums) are your friend. Look there for answers before asking colleagues (or instructors).
What about the future of the computer science industry most excites you?
That it is only expanding. That computer science will touch every industry in some way.
What is a piece of advice you’d give someone considering applying to UChicago’s Masters Program in Computer Science?
Be ready to dedicate a lot of time to your studies and your homework - this program is fun but it’s also a lot of work!
And since you are also an alum, please tell us: What is your favorite memory from your time spent as an MPCS student?
Taking Discrete Mathematics with Gerry Brady - who is a brilliant person and a great instructor - and realizing how much work the program would be. I was a programmer for several years before entering the program but as someone with an undergraduate degree in theater I was blown away by the amount of effort I needed to put in to do well in that first class. That experience really got me excited for the rest of the program.