Build expertise and career skills in the most important computer science topics. Courses and projects cover subjects like:
Architecture, Compilers, and Parallel Computing
Learn parallel programming and how to achieve peak performance from multi-core CPU and many-core GPU architectures. Master languages, compilers, and libraries that are suited for various parallel applications and platforms.
Artificial Intelligence and Machine Learning
Build your knowledge of the fundamental statistical models and numerical optimizations of machine learning, including deep learning, with applications in computer vision, natural language processing and intelligent user interaction.
Database and Information Systems
Learn the basics of database systems as well as data mining methods for extracting insight from structured datasets (e.g. for a sales recommendation system) as well as unstructured data (e.g. from natural language text).
Formal Methods, Programming Languages, and Software Engineering
Discover the fundamentals of software engineering, including function-based and object-oriented methods for analysis and design. Learn to manage a large software project from specification through implementation, testing, and maintenance. You‘ll also learn to manage large enterprise-level codebases.
Graphics, Visualization, and Interactive Computing
Learn the fundamentals of interactive computing that promote synergy between the computer and its user. The Data Visualization course, for example, shows how to present and manipulate data to communicate understanding and insight to the public.
Systems and Networking
Learn how to network computers into distributed systems and build a cloud computing platform or an Internet of Things. Understand how to create applications that utilize cloud resources with programming projects that utilize Amazon Web Services and Microsoft Azure.
Discover the fundamentals of numerical analysis, and how it’s applied to scientific and engineering simulations, with applications ranging from creating video game worlds to virtual medicine.
When you graduate, you’ll be able to:
- Apply mathematical foundations, algorithmic principles, and computer science theory to real-word problems
- Analyze a problem and identify the computing requirements appropriate to its solution
- Design, implement, and evaluate a computer-based system, process, component, or program
- Apply design and development principles to construct software systems of varying complexity