Bachelor of Science in Computer Science

Behind every awesome website, must-have mobile app, or mission-critical data management system is a computer scientist—or a team of computer scientists—that made it happen. Computer scientists, software engineers, programmers, and other computing professionals are experts on how technology works and how computing can address even the most complicated and intricate problems.

In the Bachelor of Science in Computer Science program, you’ll get in-depth, hands-on experience in the theory and application of computing, as well as practical experience—more than half our students complete internships.


Artificial Intelligence
  • Artificial intelligence allows students to push the cutting edge while utilizing intelligent systems and databases to study reasoning. Learn how to collect and analyze big data, make inferences about the real world, and build hard devices, including robots. Related areas include artificial intelligence, machine learning, and data mining—skills that are in-demand in nearly all industries. Artificial intelligence is for those who love staying ahead of the trends.
Data Science
  • Data science focuses on the algorithms, programming, and systems expertise needed to acquire, model, store, search, analyze, mine, and learn to extract knowledge from data. The data can range in size from small to very large. It can come in various forms or types, from structured to unstructured, and be of different quality, whether it be accurate, incomplete, or uncertain. The data science specialization is designed for graduating computer science students who wish to pursue a career in data science or as a data engineer in industry, government, and academic institutions.
  • Foundations
    •  Foundations focuses on the fundamentals of computing theory and structure, including algorithm design and analysis, language theory, various computational models, program verification, database concepts, and more. Consider this specialization if you excel at math, are motivated by the pursuit of finding patterns and analyzing things.
    Programming Languages
    • Learn both the practical side and philosophical aspects of programming. Students learn multiple language structures and concepts, how languages interact, and how they are used to manage data structures. Building and understanding tools that are used for software is a focus, as are languages, computer programs—such as compilers—and operating systems. If you love to build and understand how things work, programming languages could be the specialization for you.
    • The security specialization provides students with a solid foundation in systems and the networking that underpins all modern systems—including the theory, practice, and tools behind securing these systems—and the software systems built upon them.