• Stars
    star
    2,961
  • Rank 15,305 (Top 0.4 %)
  • Language
  • Created almost 4 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

the resources I use to learn computer science in my spare time

Self-learning-Computer-Science

License

News: ไธญๆ–‡็‰ˆๅทฒๅ‘ๅธƒ๏ผŒ่ฏท็‚นๅ‡ป่ฟ™้‡Œ.

I'm an undergraduate student majored in Computer Science in Peking University. Tired of the boring courses, I began self-learning totally after my fresh year. This repository contains all the resources I used to self-learning. The links below will take you either to another repository which contains my solution for homework and course projects or to the course website where you can get full guidance.

If you feel quite painful to take the courses at unversity. Trust me, there is high possibility that it's not your duty. Computer Science is so interesting and everyone should enjoy it if you have a good teacher to teach you a good course.

All the courses in this repository are developed in MIT, UC Berkeleys, Princeton, Harvard ...... , and I guarantee you will have a completely different experience to take these courses !

Let's self-learning together and get better together !

If you find this repo helpful for you, your ๐ŸŒŸ is the best gift for me ~

Overview

This guidance is a little bit long and may grow as I learn. Here are the section links. After each section, there is a โ†ฉ which can link you back into Overview.

Great Resources

Maths Courses

Programming Basics

Data structures and Algorithms

Electronical Engineering Basics

Computer Architecture

Machine Learning and Deep Learning

Computer Systems

Software Engineering

Great Resources

Some people asked me how can I find these wonderful courses. Here are some great links that I used to choose my learning materials.

MIT OpenCouse Ware: There are hundreds of thousands of MIT courses in this website including all the subjects you can name.

UC berkeley EECS course map: The map details the UC berkeley EECS courses dependancy and has links to each course's official website.

image

UC berkeley CS Course List: The computer science courses list for UC berkeley's undergraduate students.

MIT CS Course List: The computer science courses list for MIT students.

Computer Science Roadmap: A complete guide to Computer Science.

โ†ฉ

Maths Courses ๐Ÿ“–

I'm a fan in math, so I took many maths courses which CS students are not obligated to take. So feel free to take the ones you like !

1. Basics ๐ŸŒฑ


1.1 Calculus and Linear Algebra

Course Link Difficulty
MIT18.01: Single variable calculus ๐ŸŒŸ๐ŸŒŸ
MIT18.02: Multi variable calculus ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ
MIT18.06: Linear Algebra ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

Think you have already been expert in these three courses ? Trust me, spend some time reading the course notes, it will deepen your understanding !

1.2 Basics of Information theory

Course Link Difficulty
MIT6.050J: Information theory and Entropy ๐ŸŒŸ๐ŸŒŸ

This course is designed for freshman in MIT. I strongly recommend you to take it to understand some basic concepts in information theory.

โ†ฉ

2. Intermediate ๐Ÿ˜Š


2.1 Probability theory

Course Link My repository Difficulty
UCB CS70 : discrete Math and probility theory Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ
MIT6.431: Probabilistic Systems Analysis and Applied Probability ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ
UCB CS126 : Probility theory Ongoing ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

I took these three courses about probility theory. The UCB CS126 has some really interesting labs where you can write code in python to solve some practical probability problems. I suggest you take the first two to enhance your theoretical basis then take the last one just for fun !

2.2 Differential equations

Course Link Difficulty
MIT18.03: differential equations ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ
MIT18.04: Complex variables functions ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ
MIT18.152: Partial differential equations ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

MIT18.03 focuses on constant differential equations. To solve more interesting dynamic systems, we need to learn partial differential equations. Since PDE requires that you should know about complex variable functions, read the notes of MIT18.04 first !

2.3 Numerical thinking

You may feel tired to learn theoretical math (come on, isn't it exciting ?)

Don't worry, you can use computer to do the math for you. Many MIT maths courses use Julia language to help you understand maths concepts and deal with the maths problems in real life !

Course Link My repository Difficulty
MIT18.S191: Introduction to Computational Thinking TBA ๐ŸŒŸ๐ŸŒŸ
MIT18.330 : Introduction to numerical analysis Ongoing ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ
MIT18.335 : Introduction to numerical method TBA ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

In the first course, you will master julia and do some basic but interesting labs, e.g. image processing, ray tracing, climate simulation and so on !

Then you can use julia to do the numerical analysis ! (a sad story: there are also many theoretical contents ~)

If you find 18.330 a little bit easy, you can take the graduate-level course : MIT18.335.

โ†ฉ

3. Advanced ๐Ÿคฏ

Course Link My repository Difficulty
MIT18.650: Statistics for Applications Unknown
MIT18.781: Theory of Numbers Unknown
MIT6.441: Information Theory Unknown
Standford EE364A: Convex Optimization Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ
Standford CS255: Cryptography Unknown

All the courses above are graduate-level and I haven't taken all of them. I may dive into some of them when I need. However, I personally recommend the Convex Optimization course.

โ†ฉ

Programming Basics ๐Ÿ’ป

There are many programming courses for freshman, I find all of them interesting !

Course Link Language Difficulty
MIT missing-semester Shell ๐ŸŒŸ๐ŸŒŸ

Just as the course name indicated, this course will teach the missing things in the university courses. It will cover shell programming, git, vim editor, tmux, ssh, sed, awk and even how to beatify your terminal. Trust me, this will be your first step to become a hacker !


Course Link Language My repository Difficulty
UCB CS61A: Structure and Interpretation of Computer Programs Python, SQL, Scheme Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

Have you ever heard about the legendary book SICP? but that book used the language "Scheme" which is not so popular today. This course uses Python to teach you the same idea! Isn't that cool ? Trust me, after this course, you will be expert in python!


Course Link Language My repository Difficulty
Havard: cs50 C, Python, SQL ๐ŸŒŸ๐ŸŒŸ
Havard: cs50 ai Python Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

CS50 is the most popular courses in Havard University. In the first course you will learn C, Python and SQL. In the second course you will use python to learn some basic concepts about AI ! The most shining part of cs50 is the lab sections. There are many interesting labs that you want to dive into it once you hear about them: Minesweeper, crossword, Nim game, Tic-Tac-Toe and so on.


Course Link Language My repository Difficulty
Stanford: CS106L C++ Completed ๐ŸŒŸ๐ŸŒŸ

This is a C++ programming course taught in Stanford University. It covers many modern features of C++ (c++11, c++17, c++20 ...), and will almost certainly help you understand C++ more in depth.

โ†ฉ

Data structures and Algorithms ๐Ÿ“š

Now you may have some experience in programming, but the art of programming is not programming itself, but to use it to solve problems elegantly and efficiently ! So data structures and algorithms are the most important part for a qualified programmer no matter you want to be a full-stack engineer, a theorist or a deep learning researcher.

And, it is actually very interesting to learn ~~ if you found it hard, it must be your teacher's guilty : (

Course Link Language My repository Difficulty
UCB CS61B: data structures and algorithms Java Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ (not hard, but code heavy)

In this course you will learn Java and use it to implement many data structures and algorithms. I highly recommend you to take the Spring 2018 version where you can use the Gradescope to self-grade your code. See the course website for more details !

Also, this course has some great labs and projects. In labs, you will implement the data structure by yourself. While in projects, you will use data structures to solve real problems. For example, in project 1 you will simulate the N-body problem. In project 2, you will implement a game in java. In project 3, you will implement a mini-GoogleMap.


Course Link Language My repository Difficulty
Princeton: Algorithms I & Princeton: Algorithms II Java Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ(not hard, but code heavy)

These two courses are the greatest algorithm courses I found in coursera.

Do you often forget how to implement a specific algorithms?

I find the easiest way to master an algorithm is :

  • first to know why do in this way
  • second to know how to implement it
  • then to use it to solve real problems

To know why you should do the algorithm in this way, I think the open-sourced textbook of this course is very helpful, where you can find the rigorous mathematical proofs for all the algorithms in this course.

To know how to implement it, the author implements all the algorithms in Java in a clear and efficient way. I find it very helpful to learn from official codes.

Now the last and also the most exciting part โ€”โ€” use it to solve real problems. These are 10 projects in total where you can use algorithms to solve practical problems.


Course Link Language My repository Difficulty
UCB CS170: Efficient Algorithms and Intractable Problems Latex Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

In this course you will learn more advanced algorithms like divide-and-conquer, dynamic programming, Network Flow, Graph algorithms Linear Programming and some NP problems.

This is a theoritic course where you do not need to write code but to design your algorithms and bound the time and memory complexity.

โ†ฉ

Electronical Engineering Basics ๐Ÿ“Ÿ

As a CS student, it does not harm to learn some EE lessons to deepen your understandings on the hardware. I found these basic EE lessons will help you understand the ideas in computer architecture.

Course Link Language My repository Difficulty
UCB: EE16A Python Completed ๐ŸŒŸ๐ŸŒŸ
UCB: EE16B Python TBA ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

These two lessons are the introductary courses for freshman in UC Berkeley majored in EE. You can learn the basic ideas about circuits and some data analysis methods. You can also make your hands dirty in its labs.


Course Link Language My repository Difficulty
MIT 6.003 : signal and systems ------ ----- ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ
UCB EE120 : signal and systems Python Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

Signal and Systems is a very important course which will change your views of the world ! MIT 6.003 provides all the lecture videos and homework with solutions. UCB EE120 has some great course notes which I think are written in a very clear and easy to understand way. Personally I think the notes about Fourier transform are quite clear and great. So my recommended learning map is as follows :

  • watch videos of MIT 6.003
  • read the related notes of EE120
  • complete the homework of MIT 6.003 to check your understanding
  • complete the interesting labs of EE120 where you can use python to process real signals and solve practical problems (These labs are very very very interesting. For example, in lab3 you will implement your own FFT and compare it with numpy's version. In lab4 you will use the videos of your finger to predict your heart-beat rate. In lab5 you will restore blurred images taken by the Hubble Telescope. In lab6 you will control the small car to make it hold one stick.)

โ†ฉ

Computer Architecture ๐Ÿ—„

Now it's the most exciting part. When I was a little boy, people always told me that computer's world is just 0 and 1. I was so confused and sweared to understand how on earth the computer works in just 0 and 1. After learning these courses, you will understand it in depth.

Course Link Language My repository Difficulty
Nand2Tetris I & Nand2Tetrix II choose as you like, I chose Python Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

This course got 5.0 full score on coursera ! It is divided into two part : hardware part and software part.

Hardware part : you will use Nand gates to implement all the components (ALU, Memory, Decoder, Mutiplexer ... ...) of a running computer. In the end you will implement a CPU to run your machine code.

Software part : The author created a new language called Jack. You will write the compiler to translate the Jack code into your machine code and run it on the computer you made in the hardware part. Then you will implement a basic OS to do the input and output. Finally you can write a Tetris game in Jack and play it on the computer you made ! It is so coolllllll !


Course Link Language My repository Difficulty
UCB CS61C: Great Ideas in Computer Architecture C, RISC-V, Logism Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

Although Nand2Tetris course is great, it is not a university-level course. So to step further, CS61C is your choice.

All the labs and projects are fantastic. In this course, you will learn C programming language and RISC-V assembly language, understand how the computer runs your code, write a MNIST classification neural network in RISC-V, use Logism to build your own CPU to run RISC-V from scratch, and finally, you can write a naive, but quite powerful numpy in C to accelerate the matrix manipulation. This is the best architecture course I've ever taken !


Course Link Language Difficulty
CMU CS15213: CASPP C ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

This course is so well-known and I don't believe that you haven't heard about it before. Peking University has bought the copyright of this course so I took this course at school, but its official website has all the materials for you to complete the course. You can find course videos on Bilibili or Youtube.

The most important part of this course is its 8 labs, but the labs are relatively hard comparing to the other labs in the above courses.

p.s. I was the TA for this course in 2020, and this repository is somewhat created for my seminar students. Thanks for their excellence to drive me to write this long long README : )

โ†ฉ

Machine Learning and Deep Learning ๐Ÿงฌ

There are so many good resources on the Internet you can use to learn AI, machine learning and deep learning, below are just some courses which I prefer.

1. Introduction courses

I recommend this 2018 version which you can use the gradescope. This course will teach you the basic ideas in AI, such as search, CSP, MDP, RL, BNs, NN, logistic regression and so on.

In this course you will learn the basic neural network such as CNN, RNN, GAN, VAE, and learn to use tensorflow in the labs.

2. Machine Learning

This course is taught by Andrew Ng (ๅดๆฉ่พพ). This couse is maths heavy. If you feel painful, you can take the coursera Machine Learning course which is also taught by Andrew. I finished the coursera course's labs too, they are quite interesting !

3. Deep Learning

โ†ฉ

Computer Systems ๐Ÿง™

0. System Programming

Course Link Language Repository Difficulty
Stanford CS110L Rust Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

In this course, you will learn Rust, a magic language with C's speed and other high level language's safety. It aims at empowering everyone to write efficient and safe software.

In this course, you will learn more than mastering a language. Rust's design philosophy will help you program elegantly and safely in other system programming language (e.g. C/C++). Also, the course focused on concurrency in the second half. You will trade off between multi-processing/multi-threading and event-driven programming and learn some subtle bugs when using them.

Personally, I love the "futures in Rust" part best. Future is a very weird concept and I spent two to three days to fully digest it. However, when you finally understand it, you will be amazed by its elegance and use it happily.

1. Operating System

Course Link Language Repository Difficulty
MIT 6.S081: Operating System C Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

This course is lab-driven, you will implement many features of a real operating system based on xv6 (a toy operating system which is designed for teaching). After finishing 11 labs, I'm sure you will have a deep understanding of the operating system.


2. Distributed System

Course Link Language Repository Difficulty
MIT 6.824: Distributed Systems Go Ongoing ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

One paper per class!! Wonderful labs !! You will implement a working Raft protocal and write your KV storing service based on it.

This course is graduate-level and very hard. I am trying to find some time to finish it.


3. Computer Network

Course Link Language Repository Difficulty
Computer Networking: A top down approach Python Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ
stanford CS144: Introduction to computer network C++ Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

In the fall 2020, the authors of this wonderful book (A Top Down Approach) released his teaching videos online which you can use to supplement your learning. In its labs, you will use wireshark to catch real network packet to understand how each protocol works.

The Stanford course is much harder and you can also find its teaching videos on Youtube or Bilibili. In its labs you will implement the TCP, Network Interface, IP routing and put them together to talk with other peers on the Internet. Sounds cool right? (a sad story: the labs are time-consuming, personally I spent 5-6 hours per lab on average).

Here is the picture of what you will implement in CS144 labs :

image


4. Compiler

Course Link Programming Language My repository Difficulty
Stanford CS143: Compilers Java or C Ongoing ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

I am taking Compiler course at school this term. Hope I can have time to complete this legendary course.


5. Computer Security

Course Link Programming Language My repository Difficulty
UCB CS161: Computer Security Python, Go, C Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

This course is divided into 5 sections:

  • Security principles : how to design a secure system
  • Memory safety : buffer overflow attack
  • Cryptography : symmetric encryption, asymmetric encryption, MAC, digital signature .........
  • Web : SQL, XSS, XSRF .......
  • Networking : attacks for each layer

The shining part of the course is the labs and projects, which will greatly enhance your mastery of the knowledge.

  • Labs : there are three labs in total
    • padding oracle : how to make use of the padding oracle to breach the block cypher.
    • a real attack : a real problem countered in the CS61A's exam file releasing
    • networking : packet sniffing
  • Projects : there are three projects in total
    • Proj1 : Hack into the VM using buffer overflow attacks. You will do real attacks on the providing virtualbox virtual machine.
    • Proj2 (warning) : This is a very code-heavy projects. You will implement a secure file sharing system in Go language. Here is my implementation and design doc.(I spent three whole days to complete this project, 3k lines of code in total)
    • Proj3 : In this project, you will use what you have learned in web scurity to attack a poorly-implemented website. Unfortunately, this project is only available for the Berkeley's students. However, I found a great website Hacker101 which provides similar project.

6. Parallel Computing

Course Link Programming Language My repository Difficulty
Stanford CS149 : Parallel Computing C/C++ Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

From smart phones, to multi-core CPUs and GPUs, to the world's largest supercomputers and web sites, parallel processing is ubiquitous in modern computing. The goal of this course is to provide a deep understanding of the fundamental principles and engineering trade-offs involved in designing modern parallel computing systems as well as to teach parallel programming techniques necessary to effectively utilize these machines. Because writing good parallel programs requires an understanding of key machine performance characteristics, this course will cover both parallel hardware and software design.

There are five programming assignments in the course. You will learn to analyze parallel program, write a CUDA renderer, use OpenMP to parallel BFS and use Spark to do the page rank.


7. Database System

Course Link Programming Language My repository Difficulty
UCB CS186: Introduction to Database System Java/SQL/MQL Completed ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

How to write SQL queries? What happens after you type in the queries into the SQL command line tool? How to optimize the query? How to design your own database to fit your demand? How to run tons of queries concurrently? How to recover your database from a ... fire? How to parallel your queries? What is NoSQL and how to write quries in the NoSQL database Mongodb? What is MapReduce and Spark? If you are interested in any questions above or if you want to implement a relational database yourself, this course is your best choice! Wonderful learning materials and wonderful projects, no need to say more.

โ†ฉ

Software Engineering

All the programmers can write code, but how to write good code, how to write hundreds of thousands lines of good code is hard, and is even art.

Course Link Programming Language My repository Difficulty
MIT 6.031 : Software Construction Java Ongoing ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

The primary goal in this course is learning how to produce software that is:

  • Safe from bugs. Correctness (correct behavior right now) and defensiveness (correct behavior in the future) are required in any software we build.
  • Easy to understand. The code has to communicate to future programmers who need to understand it and make changes in it (fixing bugs or adding new features). That future programmer might be you, months or years from now. Youโ€™ll be surprised how much you forget if you donโ€™t write it down, and how much it helps your own future self to have a good design.
  • Ready for change. Software always changes. Some designs make it easy to make changes; others require throwing away and rewriting a lot of code.

To achieve the goal, you will learn Java, learn how to write specifications, how to write tests, how to design good Abstract Data Types, how to write concurrent programs and so on.


Course Link Programming Language My repository Difficulty
UCB CS169 : software engineering Ruby/Javascript Ongoing ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

Unlike other traditional software engineering course which teaches you the old "plan and document" method, Software as a Service (SaaS) and agile development is today's trend. This great course will guide you into the world of modern software engineering, which is widely used by almost all the big companies like Google, Amazon ... ...


Course Link Programming Language My repository Difficulty
MIT web development course Javascript Ongoing ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ

Do not have time to learn a comprehensive software engineering course ? Wanna develop your own website in two weeks ? Take this MIT's web development crash course! You will learn HTML/CSS/Javascript/React/NodeJS/MongoDB... ... almost all the critical things you need to know about web dev.

โ†ฉ

More Repositories

1

cs-self-learning

่ฎก็ฎ—ๆœบ่‡ชๅญฆๆŒ‡ๅ—
HTML
54,539
star
2

CS61A

JavaScript
589
star
3

CS61B

course resources for UCB_CS61B 2018 summer
Java
326
star
4

MIT6.S081-2020fall

MIT undergraduate operating system course
C
295
star
5

CS144-Computer-Network

Learning materials for Stanford Computer Network course : CS144
C++
281
star
6

CS186

Learning materials for UCB CS186: Introduction to Database System
229
star
7

CS61C-summer20

all the course resources of UCB's CS61C course -- Great ideas in computer architecture
C
175
star
8

CS229

Jupyter Notebook
167
star
9

UCB-CS70

discrete mathematics and probability theory
163
star
10

CS106L

CS106L : Standard C++ Programming Course
C++
155
star
11

NandToTetris

all the course resources and my completion for all the projects
Hack
149
star
12

Computer-Network-A-Top-Down-Approach

My learning materials for Computer Networking : A Top Down Approach
Python
138
star
13

CMU10-714

Learning material for CMU10-714: Deep Learning System
Jupyter Notebook
137
star
14

CS149-parallel-computing

Learning materials for Stanford CS149 : Parallel Computing
C
122
star
15

MIT6.824

distributed system
Go
109
star
16

Princeton-Algorithm

Java
75
star
17

EECS126

UCB EECS126 : probability theory and random processes.
Jupyter Notebook
64
star
18

UCB-CS170

This repo contains all the learning materials for UC Berkeley's course CS170 : Efficient Algorithms and Intractable Problems
Jupyter Notebook
61
star
19

Standford_CVX101

Stanford convex optimization course
Jupyter Notebook
56
star
20

MIT6.031-software-construction

learning materials and implementation for MIT6.031: software construction problemsets
Java
55
star
21

cs50_ai

cs50 AI course resources
HTML
54
star
22

CS61C-labs

my implementation for the CS61C labs in 2020 summer version
C
51
star
23

CS224n

all the notes, ppts and homework for CS224n
JavaScript
49
star
24

CS169-Software-Engineering

Learning materials for UCB CS169 : software engineering
36
star
25

CS110L

Stanford CS110L: Safety in Systems Programming
Rust
33
star
26

EE16A

UCB EECS16A Designing Information Devices and Systems I
Jupyter Notebook
30
star
27

UCB-EE120

UC Berkeley signal and system course
Jupyter Notebook
30
star
28

pku-cs-self-learning

This repo is deprecated.
27
star
29

CS186-Rookiedb

My implementation for CS186 proj2 - proj5
Java
27
star
30

pku-os-course

Course website for Operating System course in Peking University.
HTML
13
star
31

PKUFlyingPig

my personal repo
12
star
32

UCB-CS161

computer security
Jupyter Notebook
12
star
33

Hadoop_vs_Spark

็ ”็ฉถ็”Ÿ่ฏพใ€Š็ฝ‘็ปœๅคงๆ•ฐๆฎ็ฎก็†็†่ฎบๅ’Œๅบ”็”จใ€‹ๅคงไฝœไธš้กน็›ฎไปฃ็ 
Java
10
star
34

Thesis-Template

Thesis template for undergraduate students at Peking University.
10
star
35

MIT18.330

undergraduate numerical analysis course in MIT
Jupyter Notebook
8
star
36

CS143-compiler

Learning materials for Stanford Compiler course : CS143
Java
6
star
37

MIT6.1600

Learning resources for MIT6.1600: Foundations of Computer Security.
Python
5
star
38

CS186-proj1

Project 1 for CS186: SQL
Python
4
star
39

ArchiveMachine

the backend of the project of Software Engineering
HTML
4
star
40

RISC-V_CPU

UCB-CS61C project3 : RISC-V CPU design
Python
3
star
41

homepage

My homepage
HTML
3
star
42

os-course

website for operating system course at Peking University
HTML
2
star
43

machine-learning-exercises

codes for the exercises of Machine-Learning by ZhouZhihua
Jupyter Notebook
2
star
44

CS179

CS179 : GPU computing
C++
2
star
45

NeuralNetwork-by-RISC-V

implement a simple MNIST classifier by RISC-V
Python
2
star
46

GameOfLife

C implementation of the Game Of Life
C
1
star
47

dotfiles_MacOS

FlyingPig's Dotfiles repository
Shell
1
star
48

CS186-proj6

My implementation for CS186 project 6: NoSQL
Python
1
star