Computer Science
Computer Science, often referred to as “CS,” is a broad term that covers many sub-disciplines, including the worlds of software and hardware. It can be found in every piece of technology you use, from a smartphone or gaming console to a car or ATM. With so many applications for Computer Science, there’s a space for everyone!New to Computer Science? Start here
Jumpstart your career
All courses in Computer Science
Free + Paid courses
All levels
106 courses
- Skill path
Pass the Technical Interview with JavaScript
Learn important fundamental data structures and algorithms, and build each one in JavaScript.Includes 8 CoursesWith CertificateIntermediate36 Lessons - Skill path
Pass the Technical Interview with Java
Learn important fundamental data structures and algorithms, and build each one in Java.Includes 8 CoursesWith CertificateIntermediate36 Lessons - Skill path
Pass the Technical Interview with Python
Learn important fundamental data structures and algorithms, and build each one in Python.Includes 8 CoursesWith CertificateIntermediate43 Lessons - Course
Learn Python 3
Learn the basics of Python 3, one of the most powerful, versatile, and in-demand programming languages today.With CertificateBeginner Friendly14 Lessons - Free course
Learn Java
Learn to code in Java — a robust programming language used to create software, web and mobile apps, and more.Beginner Friendly16 Lessons - Course
Learn Python 2
Learn the basics of the world's fastest growing and most popular programming language used by software engineers, analysts, data scientists, and machine learning engineers alike.With CertificateBeginner Friendly20 Lessons - Course
Learn C++
Learn C++ — a versatile programming language that’s important for developing software, games, databases, and more.With CertificateBeginner Friendly13 Lessons - Free course
Learn C#
Learn Microsoft's popular C# programming language, used to make websites, mobile apps, video games, VR, and more.Beginner Friendly20 Lessons - Course
Learn C
Learn the basics of the C programming language in this beginner friendly course.With CertificateBeginner Friendly10 Lessons - Course
Learn the Command Line
Discover the power of this simple yet essential text-based tool and increase your productivity as a developer.With CertificateBeginner Friendly4 Lessons - Course
Learn Git & GitHub
Use our beginner friendly Git course to integrate Git and GitHub and manage versions of your projects using Git branches.With CertificateBeginner Friendly5 Lessons - Course
Learn Intermediate Python 3
Learn Intermediate Python 3 and practice leveraging Python’s unique features to build powerful, sophisticated applications.With CertificateIntermediate11 Lessons - Free course
Learn C#: Introduction
Dive into C#, a scalable programming language that is easy to read and maintain.Beginner Friendly6 Lessons - Free course
Python for Programmers
A quick primer on Python fundamentals for programmers.Intermediate - Free course
Learn Intermediate Java
Dive deeper into Java — one of the world’s most popular programming languages.Intermediate8 Lessons - Free course
Introduction to Game Development
Explore video game development, including game design, gameplay development, and asset creation.Beginner Friendly4 Lessons - Free course
Choosing a Career in Tech
Are you feeling confused about where to aim for with your career goals? Take this course to learn about different career options!Beginner Friendly - Free course
Learn C++: Introduction
Dive into C++, a flexible and well-supported language that's still widely used now, over 40 years after its conception.Beginner Friendly5 Lessons - Free course
Choosing a Programming Language
This course will introduce learners to factors to consider when picking a first language as well as describe some popular options.Beginner Friendly - Free course
Introduction to IT
Take your first steps into the world of IT, or Information Technology! Introduction to IT will teach you about core IT subjects.Beginner Friendly6 Lessons - Free course
Introduction to Blockchain and Crypto
Learn about the concepts behind Blockchain and Crypto!Beginner Friendly1 Lesson - Free course
Learn C++: Functions
Use C++ functions to write more flexible, modular, reusable code.Beginner Friendly3 Lessons - Course
Introduction to Linux
In this introductory course, we'll be getting familiar with Linux and how to navigate within a Linux environment!With CertificateIntermediate7 Lessons - Free course
Discrete Math
Learn about discrete math, the math of computer science!Intermediate8 Lessons - Free course
Learn the Basics of Regular Expressions
Get a taste of regular expressions (regex), a powerful search pattern language to quickly find the text you're looking for.Beginner Friendly1 Lesson - Free course
Learn MongoDB
Learn a new way to work with databases using MongoDB!Beginner Friendly5 Lessons - Free course
Learn C: Introduction
Learn about the basics of the C programming language, and write your first C program!Beginner Friendly1 Lesson - Free course
Learn Git: Introduction
Learn about the basics of Git, an open-source version control system.Beginner Friendly2 Lessons - Free course
Learn C++: Loops
Learn how to automate repetitive tasks with loops.Beginner Friendly2 Lessons - Free course
Learn C#: Classes, Objects, Interfaces, and Inheritance
Learn about object-oriented programming in C#.Beginner Friendly4 Lessons - Free course
Learn C#: Arrays and Loops
Learn how to organize data and automate repetitive tasks with arrays and loops.Beginner Friendly2 Lessons - Free course
Java for Programmers
Take this course meant for experienced programmers and learn Java, one of the world's most popular languages.Intermediate - Course
Learn Advanced Python 3
Learn advanced topics in Python 3 and improve your developer skills.With CertificateAdvanced5 Lessons - Free course
Learn C#: Lists and LINQ
Work with data in C# using lists and LINQ queries.Beginner Friendly2 Lessons - Free course
Learn C#: Methods
Learn to call and create methods: a fundamental building block in C# development.Beginner Friendly3 Lessons - Free course
Learn C++: Classes and Objects
Use C++ classes and objects to build more scalable, modular programs.Beginner Friendly1 Lesson - Free course
Learn to Code with Blockly
Want to learn how to get started with programming in an interactive way? Try our drag and drop code lessons!Beginner Friendly5 Lessons - Free course
Learn C++: Vectors
Learn how to use C++ vectors, a great way to keep your data organized.Beginner Friendly1 Lesson - Free course
Machine Learning: Artificial Intelligence Decision Making with Minimax
Teach computers how to make decisions and play games with the Minimax Algorithm!Advanced2 Lessons - Free course
Learn Raspberry Pi
Learn Raspberry Pi, the world-famous credit card sized computerBeginner Friendly4 Lessons - Free course
Learn C: Pointers and Memory
Learn about pointers and memory in C.Beginner Friendly1 Lesson - Free course
Learn C++: References and Pointers
References and pointers are some of the most powerful features in C++; they allow programmers to directly manipulate memory.Beginner Friendly1 Lesson - Free course
Learn C: Functions and Structures
Learn about functions and structures in C.Beginner Friendly2 Lessons - Free course
Rust for Programmers
A quick primer on Rust fundamentals for experienced programmers.Intermediate - Course
Learn the Basics of Blockchain with Python
Learn beginner blockchain concepts and create your own mini blockchain using Python 3 code.With CertificateBeginner Friendly3 Lessons - Free course
Learn Intermediate Python 3: Object-Oriented Programming
Learn how to utilize one of the most popular programming paradigms - Object-Oriented Programming.Intermediate1 Lesson - Free course
Introduction to Personal Digital Security
Hackers and cyber threats are a fact of today's modern, digital world. Everyone needs to be able to protect themselves from these threats.Beginner Friendly3 Lessons - Free course
Learn Intermediate Python 3: Functions, Namespaces, and Scope
Dive deeper into the unique ways to utilize functions to create cleaner and more efficient software.Intermediate3 Lessons - Free course
Computer Architecture: Assembly Language
Learn about Assembly languages and the role they play in computer architectures.Beginner Friendly1 Lesson - Free course
Learn C: Arrays and Strings
Learn about arrays and strings in C.Beginner Friendly2 Lessons - Free course
Learn C: Conditionals and Loops
Learn about conditionals and loops in C.Beginner Friendly2 Lessons - Free course
Learn C: Variables and Operators
Learn about variables and operators in C.Beginner Friendly2 Lessons - Course
Computer Architecture
Learn about the rules, organization of components, and processes that allow computers to process instructions.With CertificateIntermediate8 Lessons - Free course
Learn Object Oriented Programming with Python & Project-Based Learning
This course utilizes Project-Based Learning (PBL) to teach learners how to create Classes and Objects in Python.Beginner Friendly - Course
Technical Interview Practice with Python
Hone your coding skills by practicing with industry standard technical interview problems!With CertificateIntermediate4 Lessons - Free course
Learn Emojicode
🍇 Learn about Emojicode, a programming language that consists of emojis! 🍉Beginner Friendly3 Lessons - Free course
Learn Git: Branching and Collaboration
Learn how to use Git's branching features to collaborate with others.Beginner Friendly2 Lessons - Course
Learn Recursion with Python
Recursion gives you a new perspective on problem-solving by defining a problem in terms of itself.With CertificateIntermediate3 Lessons - Free course
Learn Intermediate Python 3: Exceptions and Unit Testing
Learn to maintain a healthy codebase by creating unit tests using Python's built-in `unittest` framework.Intermediate2 Lessons - Free course
Learn C#: References
Unlock the power of references, an essential aspect of object-oriented programming in C#.Beginner Friendly3 Lessons - Course
Learn Advanced Java
Learn advanced topics in Java and improve your developer skills!With CertificateAdvanced3 Lessons - Free course
Fundamentals of Operating Systems
Learn about operating systems by taking a deep dive into each of its main functionalities.Beginner Friendly8 Lessons - Free course
Learn LOLCODE
Learn about LOLCODE, an esoteric programming language based on internet memes and cats!Intermediate3 Lessons - Free course
Operating Systems: IO Systems
Learn about IO Hardware and Software and how they interact with your Operating System.Beginner Friendly2 Lessons - Course
Learn Advanced Algorithms and Data Structures with Python
Learn advanced algorithms and data structures to improve your developer skills!With CertificateAdvanced8 Lessons - Free course
Operating Systems: Filesystems
Learn about filesystems and how they interact with Operating Systems.Beginner Friendly1 Lesson - Free course
Operating Systems: Introduction
Learn about the basics of Operating Systems.Beginner Friendly1 Lesson - Free course
Introduction to Open Source
Learn how to contribute to, create, and maintain open source projects!Beginner Friendly1 Lesson - Free course
Operating Systems: Process Synchronization and Memory Management
Learn about Operating Systems and how to synchronize processes and handle memory management.Beginner Friendly2 Lessons - Free course
Learn GitHub: Best Practices
Learn how to maintain clean code and work with the GitHub community.Beginner Friendly - Free course
Operating Systems: Processes
Learn about processes, threads, and process scheduling.Beginner Friendly2 Lessons - Free course
Learn GitHub: Introduction
Learn how to use GitHub, a service that allows you to host and share your code.Beginner Friendly1 Lesson - Course
How to Implement Search Algorithms with Python
Finding the data you are looking for in a data set is an important skill: get started with two common approaches.With CertificateIntermediate4 Lessons - Course
Learn Sorting Algorithms with Python
Learn about the usefulness and efficiency of computational sorting by implementing different sorting algorithms yourself.With CertificateIntermediate8 Lessons - Course
Learn Complex Data Structures
Discover and design new data structures that follow abstract rule-based systems by building out graphs, hash-maps, and heaps.With CertificateIntermediate8 Lessons - Course
Learn Hardware Programming with CircuitPython
The perfect introduction to electronics and programming. ⚡️With CertificateBeginner Friendly2 Lessons - Free course
Deploying Websites using Git and GitHub
Use GitHub Pages to easily publish your own websites.Beginner Friendly - Free course
Computer Architecture: Parallel Computing
Learn how to process instructions efficiently and explore how to achieve higher data throughput with data-level parallelism.Beginner Friendly2 Lessons - Free course
Computer Architecture: Introduction
Learn about the basics of computer architecture and work with binary numbers and logic gates.Beginner Friendly3 Lessons - Free course
Computer Architecture: Instruction Set Architecture
Learn about how your computer's hardware and software communicate using Instruction Set Architecture.Beginner Friendly1 Lesson - Free course
Computer Architecture: Cache Memory
Learn about cache memory, and work with a simulation cache to understand how it functions.Beginner Friendly1 Lesson - Free course
Learn Intermediate Python 3: Iterators and Generators
Create and implement your own iterators and generators in Python.Intermediate2 Lessons - Free course
Learn Intermediate Python 3: Sets and Specialized Collections
Use specialized Python collections to create more efficient programs.Intermediate2 Lessons - Free course
Learn Intermediate Python 3: Resource Management
Learn to harness the power of context managers in Python.Intermediate1 Lesson - Free course
Learn Advanced Python 3: Logging
Learn how to use logs in Python to help debug and track your software.Advanced1 Lesson - Free course
Learn Advanced Python 3: Functional Programming
Learn how to use functional programming to create clean, efficient programs.Advanced1 Lesson - Free course
Learn Advanced Python 3: Database Operations
Learn how to perform database operations in Python using the sqlite3 module.Advanced1 Lesson - Free course
Learn Advanced Python 3: Concurrency
Learn how to use concurrent programming to implement code more efficiently.Advanced2 Lessons - Free course
Learn Advanced Data Structures with Python: Deques
Learn how to leverage the power of double-ended queues in Python.Advanced1 Lesson - Free course
Learn Advanced Algorithms with Python: String Searching Algorithms
Learn about two powerful string searching methodologies: the Rabin-Karp algorithm and the Knuth-Morris-Pratt algorithm.Advanced2 Lessons - Free course
Learn Advanced Data Structures with Python: Trees
Learn how to use tries and binary indexed trees for efficient search implementations.Advanced2 Lessons - Free course
Learn Advanced Algorithms with Python: Hamiltonian Algorithms
Learn about Hamiltonian paths and cycles and how to find both in Python.Advanced1 Lesson - Free course
Discrete Math: Proofs
Learn about induction, strong induction, and other types of proofs.Beginner Friendly1 Lesson - Free course
Discrete Math: Sequences and Summations
Learn about sequences and summations and their relevance in computer science.Beginner Friendly1 Lesson - Free course
Discrete Math: Binary and Bases
Learn about binary, octal, decimal, and hexadecimal bases.Beginner Friendly1 Lesson - Free course
Discrete Math: Sets and Set Operations
Learn about sets and set operations and their relevance to computer science.Beginner Friendly1 Lesson - Free course
Discrete Math: Congruences
Learn about congruences and their relevance to cryptography.Beginner Friendly1 Lesson - Free course
Discrete Math: Permutations and Combinations
Learn about permutations and combinations and their relevance to computer science.Beginner Friendly1 Lesson - Free course
Discrete Math: Counting Theory
Learn about counting theory and its relevance to computer science, and dive into the pigeonhole principle.Beginner Friendly1 Lesson - Free course
Discrete Math: Recurrence Relations
Learn about recurrence relations and dive deeper into recursion and dynamic programming.Beginner Friendly1 Lesson - Free course
Introduction to Linux: Installation
Dive into Linux, a useful and lightweight operating system with a large impact on open-source technology.Intermediate2 Lessons - Free course
Introduction to Linux: Bash Scripting
Learn about Bash scripting, a powerful way to combine Bash commands.Intermediate3 Lessons - Free course
Introduction to Linux: Users and Permissions
Learn how to define Linux users and how to set permissions for files.Intermediate1 Lesson - Free course
Learn Raspberry Pi: Introduction
Dive into Raspberry Pi and get to know the power of this credit card-sized computer.Beginner Friendly1 Lesson - Free course
Learn Raspberry Pi: Command Line
Use the command line to discover more about the Linux operating system and the Raspberry Pi.Beginner Friendly1 Lesson - Free course
Learn Raspberry Pi: Electronics
Blend hardware and software with digital electronics and Raspberry Pi.Beginner Friendly2 Lessons