Computing@UCLA

Career, major, and course guides to studying the computing fields at UCLA

Guide to Data Science (and Machine Learning) at UCLA

Data Science is one of the fastest growing fields in tech, and many students at UCLA are interested in entering the field after graduation. In this guide, I will attempt to provide a roadmap to the best majors, minors, and courses to pursue data science at UCLA. This is still a work in progress, so please bear with me as I update it.

This guide is meant to be comprehensive and used as a reference, so please use the Table of Contents below to navigate to the most relevant section.

Table of Contents

Clarifying the Question

As an aspiring data scientist, you know that the first step in getting the right answer is asking the right question. The term “data science” is vague and ill-defined, and when someone (like you) says “I want to work in data science,” or “I’m interested in ML,” they could be talking about a range of differing but interconnected roles. I’ll limit the discussion to four broad categories in this article:

  1. Data Scientist: This is most likely what you’re talking about when you say you want to work in data science. These are the folks responsible for processing and exploring data, applying statistical models and algorithms, and visualizing and presenting answers to business questions. The role requires predominantly statistical knowledge to apply models and domain knowledge to apply to business questions, with some proficiency in coding (usually a language like R or Python) to clean and process data and visualize results. Many Data Scientist roles require a graduate degree (especially with an influx of candidates from undergraduate programs in practically every other STEM field), but there are opportunities directly from an undergraduate program.
  2. Machine Learning Scientist (or Research Scientist): If you say you want to work in ML, you’re probably thinking of designing new machine learning algorithms and researching improvements in machine learning models, and probably publishing that research. That’s the work of a Machine Learning Scientist (sometimes called a Research Scientist in industry, or a Researcher in academia). They’re split between academic institutions like CMU, MIT, and Stanford, and corporate research labs like Meta AI, Google Brain, and OpenAI. They get to do the most ground-breaking, innovative work (like AlphaGo and GPT-4), and consequently have the highest barrier to entry. This type of work requires a PhD and published research, no ifs, ands, or buts.
  3. Machine Learning Engineer (or Research Engineer): Probably the least well-known (or well-understood) of the four roles, MLEs work with their data scientist counterparts to operationalize machine learning models and deploy systems to production. The data scientists build the models and answer the questions (like predicting customer churn), and the MLEs turn those models into business outcomes, which can include implementing data collection and machine learning pipelines, optimizing and deploying models into production, and ensuring that models stay up to date over time. This requires a combination of software development skills (including systems knowledge) as well as an understanding of machine learning. MLE is not usually an entry-level position, and the most common route is through experience as a Software Engineer. I’ve included Research Engineers here as well, since their role is similar in relation to a Research Scientist.
  4. Software Engineer (or Data Engineer): The most broadly applicable outside of data science and the role with the least data science or machine learning knowledge is software engineering. Software engineers are responsible for designing and implementing software systems and applications. Within data science, you’re more likely to encounter Data Engineers, which are software engineers who specialize in systems that collect, store, and transform data. Unlike data scientists (or data analysts), they don’t care as much about the content of the data, but more about its form, storage, and management. Data Engineers primarily need software engineering skills (data structures and algorithms; systems programming languages), knowledge of databases and data management systems, and proficiency with large-scale data processing tools and cloud platforms.

Once you understand which role interests you, you can tailor your academic program to best suit your career goals. I’ll keep each of these roles in mind as I discuss the options available to you at UCLA.

Majors

UCLA has several majors that can be an adequate springboard into a career in data science or machine learning. They differ in their exact mix of courses in mathematics, statistics, and computer science. Since most of them are housed in the College of Letters and Sciences, it’s very easy to change your major at freshman orientation, or if you’re a continuing student, sometime after.

Statistics and Data Science B.S.

With the name change to “Statistics and Data Science”, the Stats major is one of the most popular and most direct routes to a career in data science straight out of undergraduate studies. The lower division requirements cover all the math you need (single- and multivariable calculus and especially linear algebra), along with introductory statistics (STATS 10) and an intro to programming using R (STATS 20).

The upper division requirements for the major are split into three main series:

The major also includes a two-quarter capstone “experience” where you have the opportunity to actually work on a statistical consulting project with faculty, a campus organization, or your own design. It’s a good opportunity to apply everything you learn throughout the major and demonstrate your data science abilities to potential employers with a project from research to reports.

Finally, the Statistics major only has two free electives to choose from. There are a lot of potential options to choose from, and they allow you to specialize a little bit in some area you may be interested in, like time-series (STATS 170), finance (STATS C183), or geostatistics (C173).

The Stats major stands out for the large number of applied courses in the curriculum, which are important for building skills and experience if you want to go directly into industry from your undergraduate studies. It’s particularly suited for the Data Scientist roles. The lack of upper-division mathematics courses can pose a challenge for pursuing graduate study (necessary for a Machine Learning Scientist), and one of the math-related majors may be a better option for that route. The lack of software engineering knowledge makes the Stats major (by itself) inadequate preparation for both of the Engineering roles above.

The biggest downside of the Stats major is that all of the computing courses are taught using R, which is widely used for statistical computing, but lacks some of the general-purpose introductory software engineering courses (like data structures and algorithms) that are available in the other majors on this list and in dedicated Data Science programs at similar universities.

Data Theory B.S.

The Data Theory major is a relatively new major somewhat unique to UCLA, first introduced in 2019. It’s a mix between statistics and mathematics courses, with a little bit more on the computational side than a pure Statistics or Mathematics major. The lower division requirements cover the same foundations as Statistics, with the addition of programming courses in C++ (COMPTNG 10A or CS 31) and Python (STATS 21), and a course unique to Data Theory majors that covers data-driven modeling, analysis, and visualization (MATH 42).

The upper division requirements are also a mix of statistics and mathematics courses. The major requires almost all of the core statistics courses and adds upper-division linear algebra (MATH 115A), real analysis (131A), applied linear algebra and optimization (MATH 118), machine learning (MATH 156), and a free elective, which can be on applied numerical methods, optimization, finance, or algorithms. It also has an upper division course on commonly used tools in data science (STATS 147), and an ethics course on the impacts of data (STATS 184). Like the Statistics major, Data Theory also has a capstone course, which can be either a consulting experience or data science research.

The Data Theory major is probably the closest major to other universities’ Data Science curriculums. Compared to the Statistics major, it boasts more background in computer science (especially Python and its libraries), and more mathematical foundations in key areas like linear algebra and optimization. Similar to statistics, it is a good choice for aspiring Data Scientists, and the additional mathematical foundations provide better preparation for graduate study if you’re interested in pursuing a Machine Learning Scientist position. The computer science courses are relatively introductory, so it doesn’t provide much preparation for Machine Learning Engineers or Software Engineers.

Mathematics of Computation B.S.

The Mathematics of Computation major is a mix of about 60% math and 40% computer science. It’s one of the most popular options for pursuing computer science in the College of L&S. The lower division prerequisites are nearly identical to the Computer Science major, with the full suite of math classes (calculus, linear algebra, and differential equations), including Discrete Math (MATH 61), as well as physics and the introductory computer science series (it’s recommended to take CS 31, 32, and 33 instead of the Math department’s C++ programming courses).

The upper division courses are split between math and computer science:

The major provides a lot of flexibility with course selection, especially with regards to computer science courses. Many essential topics like algorithms and machine learning are offered in both the Math and Computer Science departments, so you have the flexibility to choose the approach you prefer.

One area where the Math of Comp major lacks is in statistical preparation. While you can take Stats classes for your math electives, Stats and Data Theory majors have enrollment priority, so it can be difficult to get into the Statistics core series. The Math department offers its own series on statistics and probability (MATH 170A and 170B), which you will probably take as a prerequisite to courses in machine learning and data science.

Compared to the previous majors, Math of Comp provides much more background in computer science. With appropriate elective selections, including operating systems (CS 111), algorithms (CS 180 or MATH 182), and machine learning (CS M146 or MATH 156), Math of Comp sets you up for Software Engineering and Machine Learning Engineering roles, or for graduate study in computer science and machine learning. It’s also possible to go directly into Data Scientist roles, based on your choice of electives, since you can shape the major to be very similar to Data Theory. Like Data Theory, the mathematical preparation is helpful for those pursuing graduate study for a Machine Learning Scientist position.

Computer Science B.S.

The Computer Science major provides a very broad education in theoretical computer science, and can be tailored to fit data science as well. The lower division prerequisites cover the full suite of math classes (calculus, linear algebra, and differential equations), including Discrete Math (MATH 61), as well as physics. The introductory computer science series covers basic C++ programming (CS 31), data structures (CS 32), machine structures (CS 33), common software construction tools (CS 35L), and digital logic (CS M51A).

The upper division courses cover most areas of computer science, including operating systems (CS 111), networking (CS 118) [no longer required after Fall 2025], software engineering (CS 130), programming languages (CS 131), architecture (CS M151B), algorithms (CS 180), and theory of computing (CS 181). The major provides five [seven after Fall 2025] free electives, and you can choose from a broad selection that includes many courses on machine learning and data science.

The Computer Science department offers a range of three majors: Computer Science, Computer Science and Engineering, and Computer Engineering. CS&E and CE trade some of the core CS courses and electives for additional courses in Electrical Engineering. If you want to study data science, Computer Science is the best option of the three.

Computer Science is housed in the School of Engineering, so the process to change your major is more difficult and requires at least a full year and a 3.5 GPA in the preparatory math, physics, and computer science courses taken. One benefit of being housed in the School of Engineering is that Computer Science majors have half the GEs of L&S students, and no foreign language requirement, leaving more room to take technical classes. As engineers, Computer Science majors have a Technical Breadth Area that requires students to take courses outside their major department. This can include courses in other engineering departments, mathematics, or the most popular options, digital humanities or technology management. This is an opportunity for CS majors to build some business knowledge that may be useful for data scientists.

In addition, the Sci-Tech Electives of the CS major allow you to take courses from a number of departments across campus. This includes Statistics and Mathematics (for a quantitative approach), as well as Economics and Management (for more business courses).

Unsurprisingly, the Computer Science major is the best preparation for Software Engineer positions, and with the right selection of electives, is a great major for Machine Learning Engineering as well. The lack of courses in statistics and mathematics may be a slight disadvantage for Data Scientist roles, but these are still well within reach (especially with a Sci-Tech in statistics or one of the minors below).

Cognitive Science B.S.

Cognitive Science (or “the other CS”) is a mixture of psychology and computer science, and is another possible route into data science from the College of Letters & Sciences. The psychology background of the Cognitive Science major can be helpful for designing and running experiments in data science. The lower division covers some basic sciences and psychology, single-variable calculus, as well as the introductory programming courses.

CogSci majors have a core of three upper division psychology courses, two fieldwork/research courses, and four electives to choose from a wide array. The elective offers include courses from communications, linguistics, math, neuroscience, psychology, statistics, and computer science. Much like Math of Comp majors, CogSci majors have the flexibility to specialize with their electives, though they face the same problems with difficulty enrolling in core stats, math, and CS courses required for those majors.

The fit for Cognitive Science majors is similar to Math of Comp, though with less preparation for graduate study in machine learning and computer science. With appropriate CS elective selections, including operating systems (CS 111), algorithms (CS 180 or MATH 182), and machine learning (CS M146 or MATH 156), CogSci majors can go into Software Engineering and Machine Learning Engineering roles, or focus on statistics courses for Data Scientist roles.

Others

Other possible options include Electrical Engineering, Computational and Systems Biology, Applied Math, Mathematics/Economics, and Linguistics + Computer Science, which all have a mix of statistics, mathematics, and computer science courses. They’re generally lacking at least one element that the majors above cover, but it’s definitely still possible to pursue data science with one of these majors and some determination. One of the best routes is by adding a minor from the following section.

Minors

UCLA has a very broad selection of minors relevant to students pursuing data science, spread across five departments and two schools. Most of these minors can be paired with any major (including those above) to add extra qualitative skills or to cover a missing foundation. The range of available courses gives you incredible flexibility to pursue data science from an approach that interests you.

Data Science Engineering Minor

The DSE minor is the Computer Science department’s approach to a data science minor. It requires linear algebra (MATH 33A) and data structures (CS 32), which itself requires introductory C++ (CS 31). The upper division required courses include a probability course (STATS 100A or equivalent), and the CS versions of data science (CS M148) and machine learning (CS M146). There are two electives that you can use to shape the minor in a particular direction, from hardcore deep learning (with EC ENGR C147 and CS 162) and data analysis (with STATS 100B, 170, or C180) to signal processing (with EC ENGR 102, 113, and 114) and software engineering (with CS 180 and 143).

The DSE minor is the most technical, and the most difficult, minor on this list, but it can add valuable computational skills to your resume that will help for any of the four roles. Data Scientists and Software Engineers alike (who aren’t Computer Science majors) can get a lot of mileage out of taking algorithms (CS 180) and databases (CS 143), while Machine Learning Engineers and Machine Learning Scientists will absolutely want to take deep learning (EC ENGR C147) and natural language processing (CS 162).

Statistics and Data Science Minor

Unsurprisingly, most of what was said above for the statistics major equally applies for the minor. The lower division prerequisites include linear algebra (MATH 33A), R programming (STATS 20), and intro statistics or data science (STATS 10 or STATS 15). You have two options for the upper division requirements - (1) take the full 100 series and either the 101 or 102 series, or (2) take the first two classes in all three series. Which option you choose can depend on which classes you find interesting, and which bases aren’t covered by your major.

Like the Statistics major, the minor is the best fit for the Data Scientist role, and pairs well with a major that lacks some of the applied regression and computational classes.

Social Data Science Minor

Restricted to majors in the Social Sciences division (anthropology, economics, history, sociology, etc.), the Social Data Science minor is geared towards social science students who want to build a background in data science and analysis skills to apply within their domains. The lower division requirements are similar to the Stats minor (but with additional options for introductory statistics courses), and the upper division requirement includes the Stats 101 series, a course on data ethics (STATS 184), and two electives that apply data science across a broad range of social science departments. The SDS minor is one of the broadest in scope due to the wide array of electives available. The Geography department offers courses in Geographic Information Systems (GIS); the Economics department teaches econometrics and forecasting; the sociology and communications departments offer classes in the social impacts of new technologies.

The SDS minor is mostly intended for social sciences students taking data science—related courses in their own departments, and as such is really a fit for Data Scientist—type roles, especially those related to research in the social sciences. The skills can also be useful for students looking to enter industry in data science or data analysis roles with social science majors, though it is not quite as rigorous as a Stats or Data Science Engineering minor.

Digital Humanities

In a similar vein to the SDS minor, Digital Humanities focuses on applying digital tools to research questions within the humanities subjects (classics, literature, philosophy, languages and cultures, etc.). The requirements include an expansive list of electives across the humanities departments. Like the SDS minor, it is most suited for Data Scientist—type roles in humanities research, but can also potentially be a fun path for more technical majors to study an area of interest within the humanities.

Bioinformatics Minor

The other minor offered by the Computer Science department, Bioinformatics is the application of statistical and computational methods to biological (especially genomic) data. Predictably, the lower division requirements include introductory biology (LIFESCI 7A) in addition to data structures (CS 32), linear algebra (MATH 33A), and somewhat uniquely among the minors listed here, discrete structures (MATH 61). The upper division requirements include an algorithms course (CS 180), a course in computational biology (CS M184), two bioinformatics courses (CS CM121, CM122, or CM124), and one elective, which can be a range of bioinformatics-related courses in the Computer Science, Chemistry, Statistics, or various Biology departments.

The courses in the Bioinformatics minor are very definitely geared towards a Data Scientist role specifically in biological fields. The minor can be a good supplement for graduate study in Biostatistics or similar programs.

A big caveat to the minor is that the Computer Science department has struggled to offer the required courses in the past, with many being offered in only a single quarter or not at all. Most of the same bioinformatics courses in the CS department can be taken through the Data Science Engineering minor, and though the minor lacks an explicit biological domain focus, it may be the better practical choice.

Mathematics Minor

Quite straightforwardly, the Mathematics minor is exactly what you expect from the name. It requires lower division math courses up through multivariable calculus (MATH 32A), linear algebra (MATH 33A), and differential equations (MATH 33B), and six upper division electives in the Mathematics department. Some of the most useful courses are discussed above in the sections on the Data Theory and Mathematics of Computation majors.

A Math minor can be directly useful for building relevant industry skills in machine learning and optimization, mostly for Machine Learning Engineers and Data Scientists. It’s an especially good choice for Computer Science or Statistics majors looking to pursue graduate study for Machine Learning Scientist roles, where advanced mathematics is a huge benefit.

Domain Knowledge

As you may remember from the beginning of the guide, a true Data Scientist role requires a combination of skills in computer science, statistics, and domain knowledge. Most of the majors and minors discussed above focus on computational and statistical skills, but you shouldn’t neglect building your domain knowledge for potential industries you are interested in. It only takes a few courses to build your foundational knowledge in a subject and to signal your interest in a particular career or industry.

Domain knowledge can be in practically any area outside of statistics and computer science. A double major or a minor is a great option to pursue.

Finally, a very important part of the job of a Data Scientist is presenting results to a non-technical audience. An effective Data Scientist is also an effective communicator. You could consider a double major in Communications, or a minor in Professional Writing to improve your communications and writing skills. It’s probably not your first thought for a double major or minor, but an effective communication style can make you stand out from other candidates with similar technical backgrounds.

Recommendations

If you’re absolutely decided on going directly into industry as a Data Scientist, my recommendation is a major in Statistics or Data Theory, with the option of a Data Science Engineering minor to add additional computational depth, or double major/minor in a domain emphasis. If you were admitted to Computer Science, then a CS + Stats double major is similarly good option that covers all three bases (or CS + a Stats minor, but the difference between the major and minor is only a few additional classes), and you may be able to study a domain emphasis with your Sci-Tech Electives. For Software Engineer and Machine Learning Engineer roles, a CS major or a Data Science Engineering minor is absolutely critical, along with as many machine learning classes as you can take.

If you want to pursue graduate school, especially in machine learning, then you want as much proof-based mathematical foundation as possible. Data Theory or Mathematics of Computation are your best shot, followed by Computer Science. For graduate study in data science and statistics, the Statistics major is a good option. Both Computer Science and Statistics majors can benefit from a minor in Mathematics for additional mathematical foundations.