Machine Learning at Pitt


Introduction

Machine learning is a subfield of artificial intelligence, specifically, it is the core technique to achieve artificial intelligence. By using mathematics to design the core frameworks that models run on, and statistics to interpret model outputs, computers can produce outputs outside of the rigid and defined boundaries of your programming and other logic. Pitt does not have a dedicated machine learning degree or department, however, there are still a lot of classes you can take to be prepared to get internships, do research, and be competitive for graduate programs or the industry.

Machine learning requires a strong foundation of math and statistics, in order to understand the models you’ll be researching and applying, you need to know how they’re built, and how to correctly interpret them. This article will not teach you how machine learning works (so it’s better for you to get the context for that elsewhere), instead, it will equip you with the necessary background to make your own decisions about the classes you might want to take to become an exceptional machine learning engineer.

Machine learning at Pitt

I will use this section to describe the necessary background needed to pursue machine learning, shape your future expectations of the work you might do in academia or the industry, and explain how being motivated can change how competitive you are in the future.

You need to be self-driven

The computer science degree at Pitt has a lot of ambiguity about what electives you can take, and that’s because students are naturally given the option to take courses they’re particularly interested in. The department has some of the necessary foundations to later pursue more advanced topics, however, you will still need to take some extra courses on top of the given coursework. This is because machine learning is a gate-kept concentration in engineering.

Gate-kept?

Every engineering program (Swanson) usually has the same first year of coursework. You take calc-based physics 1-2 (PHYS0174-PHYS0175), calculus 1-2 (MATH0220-MATH0230), and general chemistry 1-2 (CHEM0110-CHEM0120). You’ll also take a major specific course or two, and then in your sophomore year, you’ll start taking courses that are specifically tailored to your kind of engineering (and even more prereqs like Calc 3, diffeq, matrices, etc). Computer science does not have a gate like that. You immediately start programming, and are introduced to its variety of concepts and ideas. Machine learning, on the other hand, is gate-kept, and rightfully so.

As I said earlier, machine learning requires a very, very strong foundation of mathematics and statistics. You should take a moment to read about some papers on arXiv and see how absolutely mind-boggling the math can get.

At this point, we can diverge into the two paths of machine learning. Machine learning research is a long and difficult path. You’d likely do the best in this field by majoring in Math + CS or Stats + CS since machine learning is more math intensive than anything else. You’ll need a near perfect GPA and to get involved in research (REUs are good too) if you want to be competitive. You will definitely need to aim for your PhD in machine learning, it’s just an overall grueling path. Machine learning in the industry is not nearly as demanding though. You’d likely be fine with just taking a lot of machine learning coursework in your undergrad, and being familiar with the minimum requirements of math and statistics. Being part of a product-based organization (OpenAI, Anthropic, Meta) is wildly different compared to being in a research-based organization (Deepmind). The distinction exists in whether you want to be an industry research scientist or an industry ML engineer.

The minimum coursework you can expect to take will be calculus 1-3 (MATH0220, MATH0230, MATH0240), matrices and linear algebra (MATH0280), probability theory and mathematical statistics (STAT1151-STAT1152), and discrete math + theory of computation (CS0441, CS1502). There’s of course a ton of other helpful statistics, math, and domain relevant courses you can take, but we’ll dive into that more later. The CS degree already makes you take CS0441, CS1502, MATH0220, and MATH0280. I will differentiate between which courses can fulfill degree requirements and which cannot. I’ll also talk about programming courses you’ll have to take either way, but this guide is supposed to point out the courses the degree doesn’t require you to take. I’ll also bring up recommended cs courses that aren’t strictly AI/ML. Some relevant areas of expertise you might be expected to be familiar with include systems software, high performance computing, data science, numerical algorithms, and deep learning techniques if applicable.

Why are these classes important?

Math and statistics are the embodiment of machine learning. Whether you need to understand the processing on GPUs, data representations of your inputs and outputs, or handling uncertainty of your outputs, a strong foundation in the following prerequisite courses is required.

What else do I need to be good at?

Aside from math, statistics, and theoretical computer science, you’ll also need to be good at programming in languages like Python and C++.

If you’re in the computer science degree, you’ll be required to take Computer Organization and Systems Software(CS0447 and CS0449), these classes will teach you how a CPU works, and ultimately how programs actually run on your computer before teaching you the C language. Programming is only half the game though, the computer science degree will also make you take Data Structures and Algorithms (CS0445, CS1501) which will equip you with all the data structures and algorithms you need to take on machine learning. It’s fundamentally essential to computer science, and some machine learning algorithms actually specialize in running on graphs. The rabbit hole runs deep.

I’d also recommend taking CS1541, CS1656, and CS1660 on top of whatever machine learning coursework interests you.

Computer architecture (CS1541) is critical to machine learning since architecture enables machine learning. You’ll be handling tons of compute, which means you’ll need to be efficient, and you’ll need to understand what your hardware is doing. Whether it’s knowing about GPU hardware/software, optimizing for memory or data reuse, and the precision of your math running on the hardware. For example: we actually have hardware specifically designed for machine learning in the form of TPUs. Data science (CS1656) will expose you to different paradigms and information retrieval techniques. A lot of your job could be making sure your data and inputs are good, and this class will set you up with the skills you need to close that gap. Cloud computing (CS1660) is a generally useful course, it’ll teach you how your stuff actually lands on the internet and how other people can use it. I wouldn’t say it’s as essential as CS1541 or CS1656, but if you’re leaning more towards the industry, you’ll definitely need to know how the cloud works, and how you can use it.

Domains?

There are tons of different kinds of machine learning, and furthermore, there are way more applications of the models you can make.

We have classes on computer vision, natural language processing, artificial intelligence, reinforcement learning, and general classes covering machine learning and introduction to AI. It’s up to you to decide what you want to take, and I’d recommend looking through the course guide on the wiki to see what interests you.

Furthermore, companies and researchers everywhere are using machine learning for just about whatever makes sense. Machine learning engineers are in high demand, whether you’re designing models for drug discovery, models to optimize advertisement targeting, or everything else in between. I think the best way to get exposed is to just read about what companies and universities are trying to accomplish, and to try and get involved in some research at Pitt. There are also a ton of REUs that happen over the summer for which you can apply to.

Undergrad vs Masters vs PhD and when you’re entering the industry

Undergraduate and Masters

I included these in the same section because I ultimately don’t view them to have insanely different outcomes. If you plan on spending your undergraduate degree taking and learning about all the machine learning you can, or to just take the prerequisite courses in your undergrad and then specialize during a masters degree, you will likely be able to enter the industry as soon as you graduate.

A PhD can be synonymous to a license that gives you the authority to think, but we’ll talk about this more later.

Without doing research (relevant research at that), you likely won’t be the person working as a research scientist at a frontier lab or big organization. Your job would be to apply currently existing techniques, training models, and deploying them, not to innovate at the bleeding edge of wherever the field is at.

I don’t mean to paint this as something that’d be boring or undesirable, in fact, quite the opposite. If this sort of path seems interesting to you, that’s because it is! You can do a lot of exciting things, and there’s a ton of problems out there that might only be able to be solved by using machine learning or artificial intelligence. Machine learning is already embedded into our livelihoods so deeply that you might not even realize it’s all around you. This is something that will keep trending, and the industry needs people to work on those applications

PhD

A PhD is like a license to think. By taking intense coursework, working on a novel idea, and then defending your findings, you’ll have accomplished one of the hardest things anyone will ever do. Research is insanely hard, and it’s a long road to get through your undergrad with near perfect scores, contribute to important research, feel stupid when you get things wrong, and then get through your PhD by doing the exact same thing over again but on steroids.

Afterwards though, you have two paths. One being industry, and the other being academia. What you choose to do is up to you, and how you get through that point of your life is something that no article can sum up, and no amount of advice this early on could ever help you.

All I can tell you for certain is that a PhD is how you get involved in researching new models, and that if you’re considering a PhD in machine learning, you’ll need an extremely strong base in computer science AND mathematics. Furthermore, you’ll need strong letters of recommendation, research experience, a genuine statement of purpose, and an amazing GPA with solid coursework behind it.

Final Statement

You know yourself better than anyone

Aside from foundational courses such as math, statistics, and certain computer science courses. I don’t think it’s my place to recommend that you should double major in computer science / math or stats, or tell you to get a math / stats minor. The important idea I’m trying to convey is that there isn’t a one size fits all sort of rule when it comes to your interests, and that this guide is by no means extensive. I feel like the most I’m ever qualified to recommend to people is that certain pre-reqs should be considered for certain fields. The goal is that this article has educated you just enough for you to start making your own decisions, conduct your own research, and prime with you some ideas about your future. There’s a ton of different variations based on your circumstances, and I’d encourage reaching out to an officer or someone in CSC to help you get feedback about your schedules, plans, and ideas. Foundry is great for this, and people in the club are still available for advice year round, regardless of your relation to them. You will definitely have to take a long look in the mirror and think about the kind of person you are. Can you handle doing 2, 3, or 4 STEM classes a semester? Can you handle the most intense courses in SCI and Dietrich? Are you willing to take the time to think of your own schedule, and to be patient to discover what you like? It’s worth the time, and you’ll thank yourself in the long run. The professors in the program, and students in the club are your friends, and they’re going to want you to succeed and be happy. Don’t go through things alone for no reason.

Conclusion

The industry is becoming more competitive, and I want you to be ready for it. The most important thing is that you love what you do, and I hope this guide helps you realize whether you do.

Machine learning is an exciting paradigm, and we’re just getting started with seeing what it can accomplish.

Share this guide

Help others discover this resource