Convert Figma logo to code with AI

ForrestKnight logoopen-source-cs

Video discussing this curriculum:

18,703
2,968
18,703
38

Top Related Projects

🎓 Path to a free self-taught education in Computer Science!

A complete computer science study plan to become a software engineer.

Interactive roadmaps, guides and other educational content to help developers grow in their careers.

:books: Freely available programming books

323,302

😎 Awesome lists about all kinds of interesting topics

Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

Quick Overview

The ForrestKnight/open-source-cs repository is a curated curriculum for learning computer science through free online courses. It aims to provide a comprehensive, self-paced learning path equivalent to a traditional computer science degree, covering fundamental topics and advanced concepts in the field.

Pros

  • Free and accessible to anyone with an internet connection
  • Comprehensive curriculum covering a wide range of CS topics
  • Flexibility to learn at your own pace
  • Includes courses from reputable institutions and platforms

Cons

  • Lack of formal accreditation or certification
  • Limited direct interaction with instructors or peers
  • May require strong self-motivation and discipline to complete
  • Some linked courses may become outdated or unavailable over time

Getting Started

To get started with the open-source CS curriculum:

  1. Visit the ForrestKnight/open-source-cs repository on GitHub.
  2. Review the README file for an overview of the curriculum structure.
  3. Start with the "Introduction to Computer Science" section and work your way through the courses in order.
  4. Click on the course links to access the free online materials.
  5. Keep track of your progress and complete the suggested projects for each course.
  6. Join the community discussions on the repository's Issues page for support and collaboration.

Competitor Comparisons

🎓 Path to a free self-taught education in Computer Science!

Pros of computer-science

  • More comprehensive curriculum covering a broader range of CS topics
  • Larger community and more frequent updates
  • Includes advanced topics like compilers and distributed systems

Cons of computer-science

  • Can be overwhelming for beginners due to its extensive content
  • Less focused on practical, industry-oriented skills
  • Requires more time commitment to complete the full curriculum

Code Comparison

open-source-cs:

## Computer Science Basics

Course | Duration | Effort
:-- | :--: | :--:
[Intro to Computer Science](https://www.edx.org/course/cs50s-introduction-to-computer-science) | 12 weeks | 10-20 hours/week

computer-science:

### Introduction to Computer Science

**Topics covered**:
`hard/soft problem distinction`, `computational thinking`, `algorithm design`, `debugging`, `abstraction`, `data structures`, `encapsulation`

Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Introduction to Computer Science and Programming using Python](https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-10) | 9 weeks | 15 hours/week | none

The computer-science repository provides more detailed information about course content and prerequisites, while open-source-cs offers a simpler, more concise format.

A complete computer science study plan to become a software engineer.

Pros of coding-interview-university

  • More comprehensive coverage of computer science fundamentals
  • Includes detailed study plans and learning strategies
  • Offers a wider range of topics, including system design and scalability

Cons of coding-interview-university

  • Can be overwhelming due to its extensive content
  • Less structured than open-source-cs, which follows a traditional CS curriculum
  • May require more self-discipline to follow through

Code Comparison

While both repositories focus on theoretical concepts rather than code examples, coding-interview-university does include some pseudocode for algorithms. Here's a brief comparison:

coding-interview-university:

def binary_search(list, item):
    low = 0
    high = len(list) - 1
    while low <= high:
        mid = (low + high) // 2
        guess = list[mid]
        if guess == item:
            return mid
        if guess > item:
            high = mid - 1
        else:
            low = mid + 1
    return None

open-source-cs: This repository doesn't provide code examples directly, instead linking to external resources for practical implementation.

Both repositories serve as excellent learning resources for aspiring software engineers, with coding-interview-university being more focused on interview preparation and open-source-cs providing a structured curriculum similar to a traditional computer science degree.

Interactive roadmaps, guides and other educational content to help developers grow in their careers.

Pros of developer-roadmap

  • Provides comprehensive visual roadmaps for various tech roles
  • Regularly updated with new content and technologies
  • Offers interactive versions of roadmaps on the website

Cons of developer-roadmap

  • May be overwhelming for beginners due to the sheer amount of information
  • Focuses more on breadth than depth of topics
  • Lacks direct links to specific learning resources for each topic

Code comparison

While both repositories don't contain significant code samples, developer-roadmap includes some HTML for its interactive roadmaps:

<map name="image-map">
    <area target="" alt="Internet" title="Internet" href="https://roadmap.sh/guides/what-is-internet"
        coords="245,107,246,171,333,170,333,107" shape="poly">
    <!-- More area tags... -->
</map>

open-source-cs, on the other hand, primarily consists of markdown files with course listings and links:

## Computer Science Basics

| Course                                                                                                                                                                         | Duration |    Effort    | Prerequisites |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------: | :----------: | :-----------: |
| [Intro to Computer Science](https://www.edx.org/course/cs50s-introduction-to-computer-science)                                                                                 | 12 weeks | 10-20 hours/week |     none      |

Both repositories serve different purposes: developer-roadmap provides visual guides for career paths, while open-source-cs offers a curated list of free online courses for a computer science education.

:books: Freely available programming books

Pros of free-programming-books

  • Extensive collection of free programming resources across various languages and topics
  • Regularly updated with community contributions
  • Includes resources in multiple languages (not just English)

Cons of free-programming-books

  • Less structured approach to learning compared to a curated curriculum
  • May overwhelm beginners with too many options
  • Quality of resources can vary as it's a community-driven list

Code comparison

Not applicable for these repositories as they primarily contain curated lists of resources rather than code.

Summary

free-programming-books offers a vast collection of free programming resources, making it an excellent reference for developers at all levels. Its community-driven nature ensures regular updates and diverse content. However, the lack of a structured learning path may be challenging for beginners.

open-source-cs provides a more focused, curriculum-style approach to computer science education. While it offers fewer resources overall, its curated selection and structured format may be more beneficial for those seeking a guided learning experience.

Both repositories serve different purposes and can be complementary for learners. free-programming-books is ideal for finding specific resources or exploring various topics, while open-source-cs is better suited for those wanting a more traditional CS education path.

323,302

😎 Awesome lists about all kinds of interesting topics

Pros of awesome

  • Much broader scope, covering a wide range of topics and technologies
  • Larger community with more contributors and frequent updates
  • Well-organized structure with clear categories and subcategories

Cons of awesome

  • Can be overwhelming due to the sheer volume of information
  • Less focused on providing a structured learning path for beginners
  • May include some outdated or less relevant resources due to its size

Code comparison

Not applicable, as both repositories primarily consist of curated lists and don't contain significant code samples.

Summary

awesome is a comprehensive collection of lists covering various topics in software development and technology. It offers a vast array of resources but can be overwhelming for beginners.

open-source-cs provides a more focused curriculum for computer science education, making it easier for newcomers to follow a structured learning path.

Both repositories serve different purposes:

  • awesome is ideal for discovering resources across a wide range of topics
  • open-source-cs is better suited for those seeking a guided approach to learning computer science fundamentals

The choice between the two depends on the user's goals and level of experience in the field.

Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

Pros of system-design-primer

  • More comprehensive coverage of system design concepts
  • Includes visual diagrams and illustrations for better understanding
  • Provides real-world examples and case studies

Cons of system-design-primer

  • Focuses solely on system design, lacking broader computer science topics
  • May be overwhelming for beginners due to its depth and complexity
  • Less structured learning path compared to open-source-cs

Code Comparison

While both repositories primarily focus on educational content rather than code, system-design-primer does include some code snippets for illustration. Here's a brief comparison:

system-design-primer:

def get_user(request, user_id):
    user = _get_user_from_cache(user_id)
    if user is None:
        user = _get_user_from_database(user_id)
        _save_user_to_cache(user)
    return user

open-source-cs:

No direct code examples available in the main repository.
Instead, it provides links to external resources and courses.

The system-design-primer repository includes code snippets to illustrate concepts, while open-source-cs focuses on curating external resources without direct code examples in the main repository.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

The 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.

Computer Science Basics

CoursesSchoolDurationEffortFrequencyPrerequisites
Intro to Computer ScienceHarvard10 weeks10-20 hours/weekself-pacednone

Programming

CoursesSchoolDurationEffortFrequencyPrerequisites
Java Programming: Solving Problems with SoftwareDuke4 weeks4-8 hours/weektwice a monthnone
Java Programming: Arrays, Lists, and Structured DataDuke4 weeks4-8 hours/weektwice a monthJava Programming: Solving Problems with Software
Object Oriented Programming in JavaDuke6 weeks4-6 hours/weekevery weekJava Programming: Arrays, Lists, and Structured Data
Data Structures and PerformanceDuke6 weeks6-10 hours/weekevery weekObject Oriented Programming in Java
Java Programming: Principles of Software DesignDuke4 weeks4-8 hours/weektwice a monthJava Programming: Arrays, Lists, and Structured Data
Java Programming: Build a Recommendation SystemDuke4 weeks3-6 hours/weekonce a monthJava Programming: Principles of Software Design
Programming Languages, Part AUW5 weeks8-16 hours/weekonce a monthObject Oriented Programming in Java
Programming Languages, Part BUW3 weeks8-16 hours/weekonce a monthProgramming Languages, Part A
Programming Languages, Part CUW3 weeks8-16 hours/weekonce a monthProgramming Languages, Part B

Math

CoursesSchoolDurationEffortFrequencyPrerequisites
Calculus 1A: DifferentiationMIT12 weeks6-10 hours/weekself-pacedpre-calculus
Calculus 1B: IntegrationMIT15 weeks6-10 hours/weekself-pacedCalculus 1A: Differentiation
Calculus 1C: Coordinate Systems & Infinite SeriesMIT8 weeks6-10 hours/weekself-pacedCalculus 1B: Integration
Linear Algebra - Foundations to FrontiersUT Austin15 weeks6-10 hours/weekself-pacedpre-calculus
Introduction to Probability and DataDuke5 weeks5-7 hours/weektwice a monthnone
Intro to Statistics Udacity8 weeks5-7 hours/weekself-pacednone

Systems

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: From Nand to Tetris IIHebrew University of Jerusalem6 weeks10-15 hours/weekonce a monthBuild a Modern Computer from First Principles: From Nand to Tetris
Introduction to Operating SystemsGeorgia Tech8 weeks5-8 hours/weekself-pacedBuild a Modern Computer from First Principles: From Nand to Tetris II

Theory

CoursesSchoolDurationEffortFrequencyPrerequisites
Computer Science: Algorithms, Theory, and MachinesPrinceton10 weeks2-5 hours/weekonce a monthCalculus 1A (all), basic programming
Algorithms, Part IPrinceton6 weeks6-12 hours/weekonce a monthComputer Science: Algorithms, Theory, and Machines
Algorithms, Part IIPrinceton6 weeks6-12 hours/weekonce a monthAlgorithms, Part I

Applications

CoursesSchoolDurationEffortFrequencyPrerequisites
Software Engineering: IntroductionUBCx6 weeks8-10 hours/weekself-pacedJava Programming: Build a Recommendation System
Machine LearningStanford11 weeks5-7 hours/weektwice a monthLinear Algebra - Foundations to Frontiers
Database Management EssentialsCU7 weeks4-6 hours/weektwice a monthbasic programming & CS knowledge
Cryptography IStanford7 weeks5 hours/weekonce a monthLinear Algebra - Foundations to Frontiers & Introduction to Probability and Data

Unix

CoursesSchoolDurationEffortFrequencyPrerequisites
Linux Command Line BasicsUdacity1 week5 hours/weekself-pacednone
The Unix WorkbenchJHU4 weeks4 hours/weekonce a monthnone