Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

22 Commits

Repository files navigation

The Python Open Source Computer Science Degree

This is a curated list of free courses from reputable universities like MIT, Stanford, and Princeton that satisfy the same requirements as an undergraduate Computer Science degree, minus general education.

Learning How to Efficiently Learn

Before jumping into technical content, it’s crucial to build learning skills that will help you master complex subjects efficiently. This course offers science-backed strategies on memory, focus, and time management that will benefit you throughout the entire degree and beyond.

If it has been a while since you've been in the classroom or need to take your learning skills to the next level, this course is essential. It's a survival kit for those with busy lives who want to maximize efficiency while learning.

CoursesSchoolDurationEffortFrequencyPrerequisites
Learning How to Learn: Powerful mental tools to help you master tough subjectsDeep Teaching Solutions4 weeks4-5 hours/weekSelf-pacedNone

Computer Science Basics

This foundational section introduces core principles of computer science: how computers work, what programming is, and how to think algorithmically. It sets the stage for deeper technical learning.

CoursesSchoolDurationEffortFrequencyPrerequisites
CS50's Introduction to Computer ScienceHarvard12 weeks10-20 hours/weekSelf-pacedNone

Programming

Programming is the language of computers. These courses teach you how to write, debug, and structure code using Python—an accessible yet powerful language widely used in industry.

CoursesSchoolDurationEffortFrequencyPrerequisites
Programming for Everybody (Getting Started with Python)University of Michigan4 weeks4-6 hours/weekSelf-pacedNone
Python Data StructuresUniversity of Michigan6 weeks4-6 hours/weekSelf-pacedProgramming for Everybody
Using Python to Access Web DataUniversity of Michigan4 weeks4-6 hours/weekSelf-pacedPython Data Structures
Using Databases with PythonUniversity of Michigan3 weeks4-8 hours/weekSelf-pacedUsing Python to Access Web Data
Capstone: Retrieving, Processing, and Visualizing Data with PythonUniversity of Michigan2 weeks4-6 hours/weekSelf-pacedUsing Databases with Python

Alternative

CoursesSchoolDurationEffortFrequencyPrerequisites
Python 3 Programming SpecializationUniversity of Michigan5 months7 hours/weekSelf-pacedNone

Math

Math is the backbone of computer science and data analysis. This section covers calculus, linear algebra, and statistics—tools that enable deeper understanding in AI, simulations, data science, and graphics.

CoursesSchoolDurationEffortFrequencyPrerequisites
Calculus 1A: DifferentiationMIT12 weeks6-10 hours/weekSelf-pacedPre-calculus
Calculus 1B: IntegrationMIT15 weeks6-10 hours/weekSelf-pacedCalculus 1A
Calculus 1C: Coordinate Systems & Infinite SeriesMIT8 weeks6-10 hours/weekSelf-pacedCalculus 1B
Linear Algebra - Foundations to FrontiersUT Austin15 weeks6-10 hours/weekSelf-pacedPre-calculus
Introduction to Probability and Data with RDuke University5 weeks5-7 hours/weekTwice a monthNone
Intro to StatisticsUdacity8 weeks5-7 hours/weekSelf-pacedNone

Data Science

This track introduces you to working with data: cleaning it, visualizing trends, and applying machine learning. Data science skills are in high demand across nearly every industry today.

CoursesSchoolDurationEffortFrequencyPrerequisites
Introduction to Data Science in PythonUniversity of Michigan4 weeks4-6 hours/weekSelf-pacedBasic programming
Applied Plotting, Charting & Data Representation in PythonUniversity of Michigan4 weeks5-7 hours/weekSelf-pacedIntro to Data Science
Applied Machine Learning in PythonUniversity of Michigan6 weeks5-7 hours/weekSelf-pacedApplied Plotting
Applied Text Mining in PythonUniversity of Michigan5 weeks5-7 hours/weekSelf-pacedApplied ML
Applied Social Network Analysis in PythonUniversity of Michigan5 weeks5-7 hours/weekSelf-pacedText Mining

Systems

Understanding systems gives insight into how computers work under the hood—from logic gates to operating systems. This knowledge helps you write more efficient, low-level code and grasp how software interacts with hardware.

CoursesSchoolDurationEffortFrequencyPrerequisites
Build a Modern Computer from First Principles: From Nand to TetrisHebrew University of Jerusalem6 weeks5 hours/weekTwice a monthBasic programming knowledge
Build a Modern Computer from First Principles: Nand to Tetris Part IIHebrew University of Jerusalem6 weeks10-15 hours/weekOnce a monthPart I
Introduction to Operating SystemsGeorgia Tech8 weeks5-8 hours/weekSelf-pacedNand to Tetris II

Theory

Theory teaches you how to solve problems efficiently and how to reason about algorithms and computation. It sharpens your ability to write code that not only works but works well.

CoursesSchoolDurationEffortFrequencyPrerequisites
Computer Science: Algorithms, Theory, and MachinesPrinceton10 weeks2-5 hours/weekOnce a monthCalculus 1A, basic programming
Algorithms, Part IPrinceton6 weeks6-12 hours/weekOnce a monthAlgorithms Theory
Algorithms, Part IIPrinceton6 weeks6-12 hours/weekOnce a monthPart I

Applications

Here, you explore how software applies in real-world domains like databases and cybersecurity. You’ll gain practical skills to manage and secure data, which are essential in industry roles.

CoursesSchoolDurationEffortFrequencyPrerequisites
Database Management EssentialsUniversity of Colorado7 weeks4-6 hours/weekTwice a monthBasic programming & CS knowledge
Cryptography IStanford7 weeks5 hours/weekOnce a monthLinear Algebra, Probability

Unix

The Unix command line is a powerful tool for developers. You’ll learn how to navigate systems, manage files, and automate workflows—skills critical for any software engineer or data scientist.

CoursesSchoolDurationEffortFrequencyPrerequisites
Linux Command Line BasicsUdacity1 week5 hours/weekSelf-pacedNone
The Unix WorkbenchJohns Hopkins University4 weeks4 hours/weekOnce a monthNone

Networking

Computer networking is the foundation of how devices communicate and share information. This section helps you understand internet protocols, TCP/IP, DNS, HTTP, and real-world tools used in network administration.

CoursesSchoolDurationEffortFrequencyPrerequisites
Computer Networking: Principles, Protocols and PracticeUCLouvainSelf-paced~20 hoursSelf-pacedNone
The Bits and Bytes of Computer NetworkingGoogle6 weeks5 hours/weekSelf-pacedNone
Introduction to NetworkingCisco4 weeks4-6 hours/weekSelf-pacedNone
Network Security & Database VulnerabilitiesRochester Institute of Technology8 weeks8-10 hours/weekSelf-pacedIntro to networking

Software Engineering

This section focuses on professional software practices: how to write clean, maintainable code and work in teams using tools like Git and Agile methodology. You’ll also learn design patterns and testing techniques that lead to robust software systems.

CoursesSchoolDurationEffortFrequencyPrerequisites
Object-Oriented Programming in JavaDuke University4 weeks4-6 hours/weekSelf-pacedBasic programming
Software Development Processes and MethodologiesUniversity of Minnesota4 weeks4-6 hours/weekSelf-pacedNone
Agile with Atlassian JiraAtlassian4 weeks4-5 hours/weekSelf-pacedNone
Design PatternsUniversity of Alberta4 weeks4-6 hours/weekSelf-pacedOOP experience
Version Control with GitAtlassian4 weeks2-4 hours/weekSelf-pacedNone
Test-Driven Development (TDD) in PythonUdemy~3 hoursSelf-pacedPython basics

This section helps you understand how to write maintainable, scalable, and testable code using modern software development methodologies and OOP principles. It also gives hands-on experience with tools like Git and Jira, used in real-world software teams.

Cybersecurity

Cybersecurity is the practice of protecting systems, networks, and programs from digital attacks. This section introduces you to fundamental security concepts, cryptography, and practical skills needed to defend and assess systems.

CoursesSchoolDurationEffortFrequencyPrerequisites
Introduction to Cyber Security SpecializationNYU (via Coursera)~4 months4-6 hours/weekSelf-pacedNone
Cybersecurity for EveryoneUniversity of Maryland8 weeks4-6 hours/weekSelf-pacedNone
Cybersecurity BasicsIBM6 hoursSelf-pacedSelf-pacedNone
Introduction to Information SecurityUdacity6 weeks6-8 hours/weekSelf-pacedBasic computer skills

Specializations

After building core computer science skills, you can branch into specialized domains based on your interests or career goals. These specializations allow you to go deeper into high-impact fields such as web development, robotics, DevOps, blockchain, game development, and mobile apps.


🌐 Web Development

Web development enables you to build interactive applications and deploy them on the internet. You’ll learn both the frontend (user interface) and backend (server logic), making you a well-rounded developer.

CoursesSchoolDurationEffortFrequencyPrerequisites
HTML, CSS, and Javascript for Web DevelopersJohns Hopkins University6 weeks5-10 hours/weekSelf-pacedNone
Responsive Web DesignfreeCodeCamp~300 hoursSelf-pacedSelf-pacedNone
JavaScript Algorithms and Data StructuresfreeCodeCamp~300 hoursSelf-pacedSelf-pacedNone
Full Stack OpenUniversity of Helsinki~12 weeks15-20 hours/weekSelf-pacedBasic JS

🤖 Robotics / Embedded Systems

This specialization explores how software controls hardware. You’ll gain hands-on experience with physical devices, sensors, and automation. It’s perfect for aspiring engineers interested in robotics, IoT, or embedded programming.

CoursesSchoolDurationEffortFrequencyPrerequisites
Introduction to RoboticsColumbia University10 weeks5-8 hours/weekSelf-pacedCalculus, Linear Algebra
An Introduction to Programming the Internet of Things (IoT)UC Irvine6 months6 hours/weekSelf-pacedPython basics
Microcontrollers and the C Programming LanguageUniversity of Colorado6 weeks6-8 hours/weekSelf-pacedC programming helpful
Build Your Own Internet of Things (IoT) SystemCurtin University6 weeks3-4 hours/weekSelf-pacedNone

☁️ DevOps & Cloud Engineering

DevOps bridges software development and IT operations, enabling faster delivery, scalable applications, and automation. Learn how to build CI/CD pipelines, manage infrastructure as code, and deploy in the cloud.

CoursesSchoolDurationEffortFrequencyPrerequisites
Google IT Automation with PythonGoogle6 months5-10 hours/weekSelf-pacedPython
AWS Cloud Technical EssentialsAWS4 weeks3-5 hours/weekSelf-pacedNone
Introduction to DevOpsLinuxFoundationX7 weeks2-3 hours/weekSelf-pacedNone
Continuous Integration and Continuous Deployment (CI/CD)IBM4 weeks4-5 hours/weekSelf-pacedIntro to DevOps

⛓️ Blockchain & Web3

Blockchain technology powers cryptocurrencies, decentralized applications (dApps), and smart contracts. This specialization introduces core blockchain concepts and gives hands-on experience with Ethereum, Solidity, and decentralized systems.

CoursesSchoolDurationEffortFrequencyPrerequisites
Blockchain BasicsUniversity at Buffalo4 weeks4-6 hours/weekSelf-pacedNone
Ethereum and Solidity: The Complete Developer's GuideUdemy~24 hoursSelf-pacedJavaScript helpful
Blockchain SpecializationUniversity at Buffalo~4 months5-7 hours/weekSelf-pacedProgramming experience
CryptoZombiesLoom NetworkSelf-paced~20 hoursSelf-pacedNone (interactive Solidity intro)

🎮 Game Development

Game development combines creativity, mathematics, and performance optimization. Learn to build interactive 2D/3D games, implement game physics, and develop with engines like Unity or Godot.

CoursesSchoolDurationEffortFrequencyPrerequisites
Game Development for Beginners with UnityUdemy~20 hoursSelf-pacedSelf-pacedNone
CS50’s Introduction to Game DevelopmentHarvard12 weeks6-12 hours/weekSelf-pacedPython or basic programming
Godot 4 Game Development for BeginnersUdemy~15 hoursSelf-pacedNone
Mathematics for Computer GraphicsUniversity of Tokyo5 weeks6-8 hours/weekSelf-pacedLinear algebra

📱 Mobile App Development

Mobile development lets you create apps for Android and iOS platforms. This track covers both native and cross-platform approaches, using tools like Kotlin, Swift, and Flutter.

CoursesSchoolDurationEffortFrequencyPrerequisites
Developing Android Apps with KotlinGoogle~8 weeks6-8 hours/weekSelf-pacedBasic programming
iOS App Development with SwiftStanford~10 weeks~8-10 hours/weekSelf-pacedProgramming experience
Flutter Development BootcampUdemy~30 hoursSelf-pacedNone
Multiplatform Mobile App Development with Web TechnologiesHong Kong University5 weeks6-8 hours/weekSelf-pacedWeb development basics

Capstone Project Suggestions

Capstone projects help you consolidate your knowledge by building something real. They also strengthen your portfolio, demonstrating your capabilities to potential employers or collaborators.

These projects allow you to apply your knowledge from across the curriculum in a real-world setting. Choose one or more depending on your interests:

  1. Personal Portfolio Website

    • Stack: HTML, CSS, JavaScript, and optionally a JS framework (React/Vue)
    • Host it on GitHub Pages or Netlify
    • Include your resume and links to all your completed projects
  2. Data Analysis Pipeline

    • Stack: Python, Pandas, Matplotlib/Seaborn, Jupyter
    • Choose a real dataset (e.g., from Kaggle) and perform EDA, visualizations, and modeling
    • Document everything in a clear report or Jupyter Notebook
  3. Full-Stack Web App

    • Stack: React + Node.js/Express + MongoDB or PostgreSQL
    • Idea: Budget tracker, Task manager, Recipe app, etc.
    • Deploy using Vercel/Render and include authentication
  4. Nand to Tetris Final Project

    • Complete the Nand2Tetris computer by building an assembler or operating system components
    • Demonstrate understanding of how computers work from the ground up
  5. Machine Learning Mini Project

    • Stack: Python, scikit-learn, NumPy, Jupyter
    • Implement a classifier or predictor (e.g., spam detector, price predictor)
    • Explain your results and choices clearly
  6. Open Source Contribution

    • Find a beginner-friendly issue on GitHub (tag: good first issue)
    • Fork, contribute, and document your process
    • Link the pull request in your portfolio

About

Curated list of free courses from top universities offering a comprehensive Python-focused Computer Science degree equivalent.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors