Computer Science Specializations
Consider your specialization options
Our specializations enable you to build skills in a key area of computing while personalizing your degree. These specializations – as well as a Luddy minor or a minor from another IU school – can also help in your job search. You have eight specialization options:
Artificial Intelligence
Artificial intelligence includes several subfields involving the study of reasoning and learning methods that collect data, analyze it, and make inferences about the real world. AI, machine learning, and data mining provide decision support for physicians, inform recommendations to consumers, aid scientists at complex tasks, and provide intelligent user interfaces and knowledge management systems. Nearly every industry is looking for employees with AI-related skills.
Data Science
This specialization focuses on the algorithms, programming, and systems expertise you need in order to effectively acquire, model, store, search, analyze, and mine data – all to ultimately extract knowledge from it.
Foundations
Learn 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 and are motivated by the pursuit of finding patterns and analyzing things.
Game Development
This specialization is designed for students who want to turn their love of games into a career in game programming and development. You’ll develop essential programming and design skills and gain experience using a variety of tools and game engines, all while learning to work together effectively in a team.
Programming Languages
This specialization focuses on how to design and implement computer languages—even ones that have yet to be invented. You’ll learn to build interpreters that bring the fundamental principles of computation to life, and also to create compilers that translate programs in high-level languages (for humans) into low-level languages (for machines).
Security
Computers affect every aspect of our lives. Ensuring that systems are secure and function properly is essential for everything from financial transactions to medical devices to self-driving vehicles. You’ll learn the fundamentals of systems and networking while focusing on the theory, practice, and tools behind securing these systems.
Software Engineering
Get ready to create software products for different platforms and purposes. This specialization focuses on the essential principles and techniques of software engineering. You’ll learn to effectively design, develop, test, debug, manage, and maintain software, and to work well on teams.
Systems
This specialization focuses on machine structure, the internal operation and hardware organization of computers, linking computers into networks, and working in areas such as operating systems and input/output devices. Systems may be a good fit for you if you enjoy building and working with your hands.