Specializations

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.

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.