• Stars
    star
    589
  • Rank 75,909 (Top 2 %)
  • Language
    JavaScript
  • Created about 4 years ago
  • Updated 11 months ago

Reviews

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

Repository Details

CS61A

What's is CS61A ?

The CS 61 series is an introduction to computer science, with particular emphasis on software and on machines from a programmer's point of view.

  1. CS 61A concentrates on the idea of abstraction, allowing the programmer to think in terms appropriate to the problem rather than in low-level operations dictated by the computer hardware.
  2. CS 61B deals with the more advanced engineering aspects of software, such as constructing and analyzing large programs.
  3. CS 61C focuses on machines and how they execute programs.

In CS 61A, we are interested in teaching you about programming, not about how to use one particular programming language. We consider a series of techniques for controlling program complexity, such as functional programming, data abstraction, and object-oriented programming.

CS 61A primarily uses the Python 3 programming language. Python is a popular language in both industry and academia. It is also particularly well-suited to the task of exploring the topics taught in this course. It is an open-source language developed by a large volunteer community that prides itself on the diversity of its contributors. We will also use two other languages in the latter half of the course: the Scheme programming language and the Structured Query Language (SQL).

Mastery of a particular programming language is a very useful side effect of CS 61A. However, our goal is not to dictate what language you use in your future endeavors. Instead, our hope is that once you have learned the concepts involved in programming, you will find that picking up a new programming language is but a few days' work.

Useful links

Workload

I spent two weeks to finish all the homework, labs and projects. If you are a fresher in coding, this lesson will be a fantastic tour for you to learn the core ideas in programming. Even if you already have some experience in programming, you will certainly learn something that you've never thought of before. For me, I had a much deeper understanding of the higher order function and the use of tail recursion to optimize recursion. What's more, the python tutor will help you clearly understand the logic behind program frame and variable bindings.

By the way, I also highly recommend you to read the textbook written for this lesson(the link is above). It is adapted from the legendary book ----《SICP》. If you feel painful to read 《SICP》from head to tail, this book may be a good alternative.

At last, all the start codes and test program for homework, labs and projects are on the course website. You can download them for free. This repository contains my solution specified to the 2020 summer course. Hope this can help you.

Wanna Learn More ?

Check out this repository which contains all my self-learning materials : )

More Repositories

1

cs-self-learning

计算机自学指南
HTML
54,539
star
2

Self-learning-Computer-Science

the resources I use to learn computer science in my spare time
2,961
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