Meet Austin Clark, Current MPCS Student: “Joining a Masters Program Was the Right Decision.”

The University of Chicago Masters Program in Computer Science students push boundaries and innovate across many facets of industry. Whether it’s developing seamless UX interfaces, engineering software at Fortune 500 companies, working in big data or keeping networks secure, our students use their applied-skills education from the MPCS to problem-solve, create, and elevate the computer science field. Learn from their stories and discover how a CS background can prepare you for cutting-edge internships.


Austin Clark is one of the 160 incoming MPCS students this Autumn. He started the program taking our Immersion Courses this summer, and shares his experience in those, his background, and how he’s enjoying the MPCS so far!

What motivated you to apply and enroll in the MPCS Program?

I worked as a chemical engineer for 3 years, doing design of commercial-scale and bench-scale chemical plant processes. This involves using new chemistry from academia to develop commercially superior processes that manufacture high-demand chemicals more cleanly and more profitably.

My favorite parts of engineering were analytical: design, simulation, calculation. They all happen at the computer. I was convinced that studying computer science would make me a substantially better engineer, as well as open new career opportunities in computer science.

I began reading books on computer science topics applicable to engineering (two on machine learning), and I implemented a few techniques at my workplace. In one engineering project, I introduced Tensorflow and SHAP (SHapley Additive exPlanations) to develop models of real-life reactors. This allowed us to make sense of a high-dimensional data set on the historical performance of the reactors, and it allowed us to identify regimes of reactor operation associated with maximized profit.

I realized it was time to apply to MPCS when I was spending a lot of my free time self-teaching.

Did you have a CS background prior to enrolling in the MPCS? 

Through engineering, I had experience writing code (e.g. writing a script in MATLAB to simulate a reactor). My job as a chemical engineer involved making simulations with a program-specific scripting language (PDPLUS) and writing simple snippets of Fortran. I had run of the mill experience with general purpose programming languages (java in high school, python in college / post-college). However, collectively my experience had only ever been writing “medium” length scripts.

You started the MPCS this Summer by taking both Immersion Courses (Concepts of Programming and Discrete Mathematics). Can you tell us a bit about what your experience was like taking both Immersion Courses? 

I did particularly well in the immersion programming class. My background in programming was much stronger than I realized. Still, I was pleasantly surprised to learn many things I did not know about before (e.g. Git, Bash, “file anatomy”). It was the perfect class to confirm what I already knew, to pick up a couple new things, and to correct my understanding of things I misunderstood before.

Discrete Mathematics was notably harder since I had no background in it, but it was everything I wanted. I got the mathematical foundation I wanted to get into computer science theory. I became exceptionally good at writing proofs, and that has served me well in algorithms.

After taking your Immersion Courses, how has the beginning of your Fall Quarter been starting in your Core Courses? What courses are you taking?

Immersion programming was that extra experience I needed to become comfortable with principles of modularization and abstraction (the idea that coding problems can and should be broken down into subproblems and be solved at the subproblem level, rather than be solved all at once in one location). Before this class, I had a habit of writing code to do too much in one location; code always ran the risk of becoming too complex to be manageable, and I would give up working on the coding project. I’ve done exceptionally well in my programming classes since the summer. Programming homework is like the fun part of my day.

Discrete math has proven incredibly helpful. I’ve done well at writing proofs in algorithms (proofs of correctness / expected runtime). In fact, I don’t think I’ve gotten any points docked for proofs in algorithms (yet).

Current schedule: Java programming, algorithms, databases. I’m particularly excited about my project in databases. I’m integrating various types of enterprise-level data (chemical-material compatibility, geographic-based pricing data) with data on chemical plant simulation designs. Basically, the idea is that you upload converged results from a simulation you’ve done on a design you’ve made, and you can run queries joining the results of that simulation with enterprise level data to obtain additional feedback on the simulation you’ve made (in order to, for instance, examine OPEX, CAPEX of the supposed design as a function where you would build that plant in the world, or how the resultant chemical compositions of the flows in the plant might constrain your choice of vessel materials or personal protection equipment for housing, transporting, or handling that chemical).

What has your transition been like moving to Chicago? Any favorite Chicago experiences so far? 

I love my apartment in NE Hyde Park. It’s at the Algonquin apartment complex. It has a lot of natural light, and I have a beautiful view of lake Michigan.

Favorite Chicago experience would be that one Saturday night at Esco bar with some of the business school students. I hadn’t had that much fun since college.

What is a piece of advice you’d give someone considering applying to the MPCS?

Do it. At the very least, join a computer science program. I found the self-taught education in computer science to be too amorphous, too slow, and not rigorous enough to be an effective use of time. Joining a masters program was the right decision. I recommend the summer immersion classes, and I also recommend you do not underestimate the workload of the two immersion classes, combined. I chose to spend on the order of 30 hours per week for Discrete math, alone. I used that time to watch lecture videos, read the textbook, do practice problems to become comfortable with the material, etc. It sounds like a lot, but it was all time I spent well. It’s incredibly useful for what I’m learning now and what I want to learn (or teach myself in the future).