Computer science is a broad discipline that encompasses a wide variety of areas of computing. Our students are trained to think creatively, to solve complex problems, and to communicate with clarity and precision.

Degrees in computer science start with:

  • CS 111 Introduction to Computer Science
  • CS 235 Data Structures

CS 111 assumes prior programming experience. If you have never programmed before, you should take CS 110 How to Program first. For more guidance, see our Frequently Asked Questions.

Early in the program students also take courses in algorithms, computer systems, software design, calculus, and discrete mathematics

After mastering these basic skills, you take courses in a variety of areas, depending on your interests. Some of the areas within the BYU Computer Science department include:

  • Software engineering: Focuses on the techniques used to build large-scale software systems.
  • Human-computer interaction: Focuses on how computing can better serve humanity, especially by studying how humans interact with computers and how developers can make software that better fits how humans think.
  • Machine learning: Studies how computer programs can mimic the ability of humans to learn and reason, often using large amounts of data.
  • Computer systems: Focuses on how computing can improve the Internet, computer security, operating systems, and smart devices.
  • Animation and games: Creates films and games using a combination of technical and artistic skills.
  • Programming language theory: Studies the design, implementation, and analysis of programming languages.
  • Formal verification: Studies methods for proving the correctness of a program, meaning it does what the author intends for it to do.
  • Decision algorithms: Uses systems, control theory, and related tools to analyze and design complex systems and information processing techniques in a variety of fields.


Most of our programs are open for any major, with no need to apply! The only exception is CS: Animation and Games, which does require an application.


Computer Science B.S.

The Computer Science B.S. provides study in computer science fundamentals and the flexibility to take electives in a wide variety of areas of computing. When majoring in computer science, you can choose one of the following options: