Skip to content

gangyangaaa/BSCS_Open_Source_Degree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

My Open-Source CS Degree (in progress)

Summary

This curriculum mainly follows

Open Source Society University - Computer Science

Curriculum

Intro CS

Introduction to Programming

Topics covered: simple programs simple data structures

Courses Duration Effort Status Certificate School
Computing in Python I: Fundamentals and Procedural Programming 5 weeks 10 hours/week Certificate Georgia Tech
Computing in Python II: Control Structures 5 weeks 10 hours/week Certificate Georgia Tech
Computing in Python III: Data Structures 5 weeks 10 hours/week Certificate Georgia Tech
Computing in Python IV: Objects & Algorithms 5 weeks 10 hours/week Certificate Georgia Tech

Core CS

Core programming

Topics covered: functional programming design for testing program requirements common design patterns unit testing object-oriented design static typing dynamic typing and more

Courses Duration Effort Status Certificate School
Introduction to Object-Oriented Programming with Java I: Foundations and Syntax Basics 6 weeks 6 hours/week Certificate Georgia Tech
Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms 6 weeks 6 hours/week Certificate Georgia Tech
Introduction to Object-Oriented Programming with Java III: Exceptions, Data Structures, Recursion, and GUIs 6 weeks 6 hours/week Certificate Georgia Tech
Object-Oriented Design 4 weeks 4 hours/week Certificate University of Alberta
Design Patterns 4 weeks 4 hours/week Certificate University of Alberta
Software Architecture 4 weeks 5 hours/week Certificate University of Alberta
Service-Oriented Architecture 4 weeks 5 hours/week Certificate University of Alberta

CS Tools

Topics covered: terminals and shell scripting vim command line environments version control and more

Courses Duration Effort Status School
The Missing Semester of Your CS Education 2 weeks 12 hours/week 🅿️ MIT

Core systems

Topics covered: procedural programming manual memory management boolean algebra gate logic memory computer architecture assembly machine language virtual machines high-level languages compilers operating systems network protocols and more

Courses Duration Effort Status Certificate School
Build a Modern Computer from First Principles: From Nand to Tetris 6 weeks 7-13 hours/week Certificate Hebrew University of Jerusalem
Build a Modern Computer from First Principles: Nand to Tetris Part II 6 weeks 12-18 hours/week Certificate Hebrew University of Jerusalem
Operating Systems: Three Easy Pieces 10-12 weeks 6-10 hours/week 🅿️ Self-learn University of Wisconsin-Madison
Computer Networking: a Top-Down Approach (Labs) 8 weeks 4-12 hours/week ⬜️ Self-learn University of Massachusetts Amherst

Core theory

Topics covered: divide and conquer sorting and searching randomized algorithms graph search shortest paths data structures greedy algorithms minimum spanning trees dynamic programming NP-completeness and more

Courses Duration Effort Status Certificate School
Algorithmic Toolbox 5 weeks 4-8 hours/week Certificate UCSD
Data Structures 4 weeks 5-10 hours/week Certificate UCSD
Algorithms on Graphs 5 weeks 3-4 hours/week Certificate UCSD
Algorithms on Strings 5 weeks 3-4 hours/week Certificate UCSD
Advanced Algorithms and Complexity 5 weeks 3-4 hours/week Certificate UCSD
Genome Assembly Programming Challenge 5 weeks 3-4 hours/week Certificate UCSD

Core Security

Topics covered Confidentiality, Integrity, Availability Secure Design Defensive Programming Threats and Attacks Network Security Cryptography and more

Courses Duration Effort Status Certificate School
Information Security: Context and Introduction 5 weeks 3 hours/week 🅿️ Certificate University of London
Principles of Secure Coding 4 weeks 4 hours/week ⬜️ Certificate University of London
Identifying Security Vulnerabilities 4 weeks 4 hours/week ⬜️ Certificate University of London
Identifying Security Vulnerabilities in C/C++Programming 4 weeks 5 hours/week ⬜️ Certificate University of London
Exploiting and Securing Vulnerabilities in Java Applications 4 weeks 5 hours/week ⬜️ Certificate University of London

Core applications

Topics covered: Agile methodology REST software specifications refactoring relational databases transaction processing data modeling neural networks supervised learning unsupervised learning OpenGL raytracing and more

Courses Duration Effort Status Certificate School
Databases: Modeling and Theory 2 weeks 10 hours/week ⬜️ Certificate Stanford
Databases: Relational Databases and SQL 2 weeks 10 hours/week ⬜️ Certificate Stanford
Databases: Semistructured Data 2 weeks 10 hours/week ⬜️ Certificate Stanford
Machine Learning 11 weeks 4-6 hours/week Certificate Stanford
Computer Graphics 6 weeks 12 hours/week ⬜️ Certificate UCSD
Software Engineering: Introduction 6 weeks 8-10 hours/week ⬜️ Certificate University of British Colombia

Core Ethics

Topics covered: Social Context Analytical Tools Professional Ethics Intellectual Property Privacy and Civil Liberties and more

Courses Duration Effort Status Certificate School
Ethics, Technology and Engineering 9 weeks 2 hours/week ⬜️ Certificate Eindhoven University of Technology
Intellectual Property Law in Digital Age 4 weeks 2 hours/week ⬜️ Certificate Saint Petersburg State University
Data Privacy Fundamentals 3 weeks 3 hours/week ⬜️ Certificate Northeastern University

Advanced CS (electives)

Topics covered: debugging theory and practice goal-oriented programming parallel computing object-oriented analysis and design UML large-scale software architecture and design and more

Courses Duration Effort Status Certificate School
Parallel Programming 4 weeks 6-8 hours/week ⬜️ Certificate EPFL
Compilers 9 weeks 6-8 hours/week ⬜️ Certificate Stanford
Introduction to Haskell 14 weeks - ⬜️ Self-learn University of Pennsylvania
Learn Prolog Now! 12 weeks - ⬜️ Self-learn -
Software Debugging 8 weeks 6 hours/week ⬜️ Certificate Udacity
Software Testing 4 weeks 6 hours/week ⬜️ Certificate Udacity

Advanced systems

Topics covered: digital signaling combinational logic CMOS technologies sequential logic finite state machines processor instruction sets caches pipelining virtualization parallel processing virtual memory synchronization primitives system call interface and more

Courses Duration Effort Status Certificate School
Computation Structures 1: Digital Circuits 10 weeks 6 hours/week ⬜️ Self-learn MIT
Computation Structures 2: Computer Architecture 10 weeks 6 hours/week ⬜️ Self-learn MIT
Computation Structures 3: Computer Organization 10 weeks 6 hours/week ⬜️ Self-learn MIT

Advanced theory

Topics covered: formal languages Turing machines computability event-driven concurrency automata distributed shared memory consensus algorithms state machine replication computational geometry theory propositional logic relational logic Herbrand logic game trees and more

Courses Duration Effort Status Certificate School
Theory of Computation (Lectures) 8 weeks 10 hours/week ⬜️ Self-learn -
Computational Geometry 16 weeks 8 hours/week ⬜️ Certificate Tsinghua Univeristy
Game Theory 8 weeks 3 hours/week ⬜️ Certificate Stanford

Final project (elective)

Courses Duration Effort Status Certificate School
Fullstack Open 12 weeks 6 hours/week ⬜️ Certificate University of Helsinki
Modern Robotics (Specialization) 26 weeks 2-5 hours/week ⬜️ Certificate Northwestern
Data Mining (Specialization) 30 weeks 2-5 hours/week ⬜️ Certificate University of Illinois
Big Data (Specialization) 30 weeks 3-5 hours/week ⬜️ Certificate UCSD
Internet of Things (Specialization) 30 weeks 1-5 hours/week ⬜️ Certificate UCSD
Cloud Computing (Specialization) 30 weeks 2-6 hours/week ⬜️ Certificate University of Illinois
Data Science: Foundations using R (Specialization) 20 weeks 1-6 hours/week Certificate Johns Hopkins University
Functional Programming in Scala (Specialization) 29 weeks 4-5 hours/week ⬜️ Certificate EPFL
Game Design and Development with Unity 2020 (Specialization) 6 months 5 hours/week ⬜️ Certificate Michigan State
Algorithms for Battery Management Systems Specialization (Specialization) 6 months 5 hours/week Certificate University of Colorado

Note:

  • ✅ Done
  • 🅿️ In progress
  • ⬜️ Not started

About

My open source computer science degree: started since September 2021

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published