A curated collection of introductory computer science courses from Harvard University and MIT, designed for absolute beginners with no prior coding experience. These resources offer rigorous academic foundations in programming logic, algorithms, and software development principles.
Get targeted exposure with custom position pinning and highlighted placement.
Harvard's most popular introductory course covering the intellectual enterprises of computer science and computational problem-solving. It provides a comprehensive foundation in algorithms, data structures, and software development using languages like Python, SQL, and C.
A rigorous introduction to computing that focuses on computational problem-solving using the Python programming language. This course covers data abstraction, algorithm analysis, and object-oriented design, serving as a cornerstone for further studies in computer science.
An advanced introductory course that builds upon CS50 principles to teach full-stack web development. Students learn to create modern web applications using Python, SQL, HTML, CSS, and JavaScript, with a focus on responsive design and database management.
An engaging entry point into computer science through the lens of video game creation. This course teaches programming fundamentals using C# and the Unity game engine, guiding students through the design, implementation, and testing of 2D and 3D games.
This foundational course introduces basic programming concepts using Python, emphasizing computational thinking and algorithmic problem-solving. It covers essential topics like data types, loops, functions, and file processing, suitable for those with minimal prior experience.
A core MIT course that introduces computational thinking and algorithmic problem-solving using Python. It covers fundamental programming concepts such as variables, control flow, functions, and data structures, providing a strong basis for advanced computer science studies.
An accessible introduction to the fundamental ideas and algorithms behind modern artificial intelligence. This course explores topics like machine learning, neural networks, and natural language processing using Python, offering practical insights into AI applications.
This course bridges the gap between hardware and software by exploring the fundamental structures of computing systems. Students learn about digital logic, microarchitecture, and assembly language, gaining a deep understanding of how computers execute programs at a low level.
Designed for students who have completed introductory programming, this course focuses on the theoretical underpinnings of software development. It covers discrete math, logic, and algorithmic analysis, providing a rigorous mathematical approach to programming challenges.
A seminal course covering the design and analysis of efficient algorithms for fundamental computational problems. It teaches techniques for sorting, searching, graph traversal, and dynamic programming, essential for mastering computer science theory and practice.
This course extends traditional computer science concepts to focus on their application in artificial intelligence. Students learn about data structures, algorithms, and search methods specifically tailored to AI challenges, preparing them for advanced AI coursework.
A course that introduces Python programming with a focus on computational thinking and data analysis. It covers topics like linear regression, optimization, and machine learning algorithms, providing practical skills for working with large datasets.
An exploration of the principles and practices of cybersecurity, from encryption to network security. This course teaches students how to identify vulnerabilities, protect data, and implement secure coding practices in modern software systems.
A course focusing on the theoretical and practical aspects of deep learning neural networks. It covers topics like backpropagation, convolutional networks, and recurrent networks, providing a solid foundation for building and training deep learning models.
While often part of CS50, this focused track emphasizes memory management and low-level programming in C. It provides a deep understanding of pointers, memory allocation, and system-level programming, crucial for developing efficient and robust software.
This course applies mathematical rigor to software engineering problems, covering logic, set theory, and graph theory. It provides the theoretical framework needed to analyze software systems, verify correctness, and optimize software architecture.
An introductory course using Java to teach object-oriented programming and software design principles. It covers classes, objects, inheritance, and polymorphism, providing a structured approach to building complex, scalable software applications.
A foundational course that introduces Python programming and computational thinking for beginners. It covers basic syntax, control structures, and functions, providing a gentle yet comprehensive entry into the world of computer science.
This course explores the mathematical and algorithmic foundations of computer graphics. Students learn to create 2D and 3D images using programming, covering topics like rendering, animation, and geometric modeling for visual applications.
A course that combines probability theory with practical data science applications using Python. It covers statistical inference, hypothesis testing, and predictive modeling, providing essential skills for analyzing and interpreting real-world data.