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 then 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.
Forewarning about 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 necessary to start building as soon as your first semester. Machine learning is not like that. To reinforce my point, you should take a moment to read about some papers on arXiv and see how absolutely mind-boggling everything 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, and 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 since all you have to do is apply machine learning, not invent it. The distinction exists in whether you want to be an industry/academia research scientist, or an industry ML engineer.
The Minimum/Prerequisite Coursework
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).
Calculus MATH0220: This is the first of a sequence of three basic calculus courses. It covers the derivative and integral of functions of one variable and their applications. You are required to take this course as part of the computer science degree. MATH0230: This is the second of a sequence of three basic calculus courses. It covers the calculus of transcendental functions, techniques of integration, series of numbers and functions, polar coordinates, and conic sections. MATH0240: This is the third of a sequence of three basic calculus courses. It covers vectors and surfaces in space and the calculus of functions of several variables including partial derivatives and multiple integrals, stokes theorem, and first order differential
Matrices and Linear Algebra MATH0280: The principal topics which this course will cover include vectors, matrices, determinants, linear transformations, eigenvalues and eigenvectors, and selected applications. You are required to take this course as part of the computer science degree.
Probability Theory and Mathematical Statistics: STAT1151: This course presents at both a theoretical and applied level the basic probability concepts required for statistical inference. Topics include set theory and basic probability, independence and Bayes’ theorem, discrete random variables and their distributions—Bernoulli, Binomial, Poisson, and geometric, continuous random variables and their distributions—uniform, exponential, gamma, beta, and normal, transformation of random variables, moment and moment generating functions, multivariate discrete distribution, marginal and conditional distribution and independent variables. STAT1152: This course is continued from STAT 1151, Introduction to Probability, and brings together the elementary concepts of statistical inference, which are essential for advanced statistical methods. A brief review of probability theory will be provided at the beginning. Topics include functions of random variables; sampling distributions and order statistics; methods of point and interval estimation for variances and differences in two means and proportions; properties of estimators and their applications; theory and applications of hypothesis testing including the Neyman-Pearson lemma, power function of a test, and likelihood ratio tests; regression; and analysis of variance. *The computer science degree has its own probability course called CS1503. It covers certain topics in calculus 3 and stat 1151 at a more surface level, specifically topics relevant to machine learning. Double majors in SCI are allowed to substitute STAT1151 into CS1503, and even if you’re not double majoring, I’d recommend talking to your advisor and the current director of the undergraduate program about talking STAT1151 instead of CS1503 for academic reasons.
Discrete Math and Formal Methods CS0441: The purpose of this course is to understand and use (abstract) discrete structures that are backbones of computer science. In particular, this class is meant to introduce logic, proofs, sets, relations, functions, counting, and probability, with an emphasis on applications in computer science. CS1502: The course is an introduction to the theory of information and computation as a physical phenomenon. The course covers standard formalizations of computational concepts and proofs of noteworthy implications of these formalizations. Typical topics include: finite automata, computability, reducibility, and complexity. You are required to take both of these courses to satisfy the computer science degree requirements.
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.
Some Recommended Coursework
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 taking some of 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.
More importantly, try to be happy
If you want to take a ton of math courses, do that. If you want to take a lot of computer science coursework, also do that! I want to really reinforce that the following courses are what I’d either recommend, or what Pitt just has to offer you. Complete coursework, sign up for clubs, and grind things out for the love of the game, and for no other reason. If you force yourself to do something, you’ll begin to resent it, and then you’ll have already failed, because you’ll never beat the person who’s having fun or feeling rewarded.
Machine Learning Coursework
Pitt offers coursework in many aspects of machine learning and AI, and the best thing about them is you can find your niche, or just take classes you find interesting.
We have coursework in the following: Introduction to AI is a course that will go over the fundamental ideas of what problems artificial intelligence can solve. Human Language Technologies covers technologies that span from natural language processing. It’s a very application heavy course, and the topics scale up to include LLMs, HMMs, and more. Computer Vision is about how computers can gather information from images, such as object detection, activity recognition, and feature extraction. Machine Learning is a general course that spans many topics across machine learning and deep learning, but does not go into any specific in great detail. Deep Learning is a course that looks into deep learning techniques and applications, computer vision, reinforcement learning, and natural language processing are a result of deep learning advancements. Reinforcement Learning is a branch of machine learning that allows models to get better by trial and error.
Many of these courses only have a pre-requisite of 1501 (Intro to AI only needs 441 and 445, and machine learning also needs a stats class), so you can take these courses as soon as your sophomore year.
Computer Science Coursework
Machine learning isn’t all math and statistics, it’s a subfield of computer science. Which means you’ll need to be good at programming, know how a computer works, and how other disciplines that support machine learning engineers operate. There’s a ton of computer science courses, and I could recommend many of them for different reasons, but these would be my top four recommendations.
I’d specifically recommend taking algorithm design (CS1510), computer architecture (CS1541), data science (CS1656), and cloud computing (CS1660).
CS1510 Algorithm Design is a hard course, but I think I’d do you a disservice by not bringing this class to your attention. It’s a proof-based course, and this class will definitely teach you how to think. Dynamic programming, greedy algorithms, and parallel algorithms are an important part of research and application, so I’d consider taking this course.
CS1541 Computer Architecture is an important course because models are fundamentally constrained by the hardware you’re running them on. You should definitely consider becoming intimately familiar with how your computer works, and to know more about memory and GPUs.
CS1656 Data Science has a lot of particular details that you’d use on your day to day. Data management, information retrieval, and other kinds of data analysis are skills you need ironed out, whether you’re a researcher, industry worker, or hobbyist.
CS1660 Cloud Computing is important to engineering in general. You need to know how your code reaches the world, and by extension, the models you design. Cloud computing bridges that gap, and I’d recommend this course to just become a better software engineer.
Math and Statistics
Outside of the required math and statistics courses, I’d recommend these courses on top of that, but I wouldn’t swear by them like I did on the foundational courses. You need calc 3, matrices, prob theory, and math stats to do machine learning research, however, you don’t technically need the other courses. Optimization has an insanely high ROI, combinatorics, graph theory, stochastic processes, and regression would also be useful, but you don’t technically need them to get into research or industry.
With that in mind, I’d recommend you take optimization (MATH1101), and look into coursework like stochastic processes (STAT1731), regression (STAT1221, STAT1661, or STAT1662), graph theory (MATH1310), and combinatorics (MATH1050) depending on what niche interests you.
MATH1101 Optimization has arguably the highest return on investment of any advanced math elective, and I’d consider taking this course. Nearly every machine learning model fundamentally reduces to an objective function that needs to be minimized or maximized. The class covers linear, integer, and nonlinear programming alongside convex sets and unconstrained optimization. If you want to actually understand what gradient-based solvers are doing under the hood or want to do research, take this course.
STAT1731 Stochastic processes is a niche course if you’re interested in modern research and development, especially if you’re into LLMs and agents. The course talks about Markov chains, Poisson processes, and Brownian motion, and their concepts are the mathematical backbone of reinforcement learning.
STAT1221, STAT1661, STAT1662 Regression deals with the core of empirical modeling that you’ll actually use day to day. There’s applied regression which is the foundation for time series and understanding industry relevant domains, and we also have coursework on linear regression and nonlinear regression which is more classical. Being able to properly fit a model, run diagnostic checks on your residuals, and interpret data relationships is a basic skill you need ironed out for research and industry alike.
MATH1310 Graph theory is also an important course, especially with how much attention Graph Neural Networks and relational data pipelines have gotten. You’ll cover fundamental graph properties, trees, network connectivity, and algorithms on graphs, and if you plan on working with structured networks or knowledge graphs, then this class is for you.
MATH1050 Combinatorics is another proof-based course, and I’d say its value is attributable to helping you become a smarter researcher. The class focuses on discrete math fundamentals like recurrence relations, generating functions, inclusion-exclusion, and graph coloring problems. It’s not exactly relevant to your day to day, but I wanted to bring the course up since learning how to think is always valuable.
Domains
All of this machine learning needs to be used for something, and that’s when domains come into effect. Although, I don’t actually have much to tell you about this.
Finding out what you want to do with machine learning or artificial intelligence is completely up to you. Do you like biophysics? Look at what current researchers are doing in that field with physics-powered models. What about neuroscience? Or maybe you want to work on a certain product in robotics, security cameras, or even a recommendation algorithm.
Machine learning is amazing, and that’s a lot you can do with it, however, if you love something else too, then apply machine learning to it!
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
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