add software engineering && security && web dev && compiler

This commit is contained in:
zhongyinmin
2021-12-11 22:32:48 +08:00
parent 26de261609
commit 880486ca41
7 changed files with 135 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
# Stanford CS142: Web Applications
## 课程简介
- 所属大学Stanford
- 先修要求:有一定的编程经验
- 编程语言JavaScript/HTML/CSS
- 课程难度:🌟🌟🌟🌟
- 预计学时100小时
斯坦福的Web应用开发课程内容覆盖了HTML、CSS、JavaScript、ReactJs、NodeJS、ExpressJS、Web安全等等。8个Project会让你在实战中锻炼自己的Web开发技巧。
## 课程资源
- [课程网站](https://web.stanford.edu/class/cs142/index.html)
- [课程视频](https://web.stanford.edu/class/cs142/lectures.html)
- 课程教材:无
- [课程作业](https://web.stanford.edu/class/cs142/projects.html)

16
docs/Web开发/mitweb.md Normal file
View File

@@ -0,0 +1,16 @@
# MIT Web Development Crash Course
## 课程简介
- 所属大学MIT
- 先修要求:掌握至少一门编程语言
- 编程语言JavaScript/HTML/CSS/NoSQL
- 课程难度:🌟🌟🌟
- 预计学时:因人而异
MIT在每年1月份会有一个为期4周的[Independent Activities Period](https://elo.mit.edu/iap/) (IAP)在这个月里MIT的学生和老师可以自由地开设很多有趣的课程而这门网站开发课程就是其中之一。
在一个月的时间里你会从零开始掌握一个网站的设计、搭建、美化、交互等等核心内容基本覆盖了Web开发的前后端大部分技术栈。如果你不需要系统地学习网络开发而只是出于兴趣想把它加入自己的技能包里那么这门课将非常适合你。
## 课程资源
- [课程网站](https://weblab.mit.edu/schedule/)
- 课程视频:参见课程网站链接
- 课程作业参见课程schedule

View File

@@ -0,0 +1,14 @@
## 课程简介
- 所属大学UC Berkeley
- 先修要求CS61A线性代数
- 编程语言Python
- 课程难度:🌟🌟🌟
- 预计学时80小时
伯克利的数据科学入门课程内容相对基础覆盖了数据清洗、特征提取、数据可视化以及机器学习和推理的基础内容也会讲授PandasNumpyMatplotlib等数据科学常用工具。其丰富有趣的编程作业也是这门课的一大亮点。
## 课程资源
- [课程网站](https://ds100.org/fa21/)
- 课程视频:参见课程网站
- [课程教材](https://www.textbook.ds100.org/intro.html)
- 课程作业:参见课程网站

View File

@@ -0,0 +1,27 @@
## 课程简介
- 所属大学UC Berkeley
- 先修要求CS61A, CS61B, CS61C
- 编程语言C, Go
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时150小时
伯克利的计算机系统安全课程课程内容分为5个部分
- Security principles : how to design a secure system
- Memory safety : buffer overflow attack
- Cryptography : symmetric encryption, asymmetric encryption, MAC, digital signature .........
- Web : SQL-injection, XSS, XSRF .......
- Networking : attacks for each layer
这门课让我印象最为深刻的部分是Project2让你用Go语言设计和实现一个安全的文件分享系统。我花了整整三天才完成了这个非常虐的Project总代码量超过3k行。在这样密集型的开发过程中能极大地锻炼你设计和实现一个安全系统的能力。
2020年夏季学期的版本开源了课程录影大家可以在下面的课程网站链接里找到。
## 课程资源
- [课程网站](https://su20.cs161.org/)
- 课程视频:参见课程网站
- 课程教材:无
- 课程作业7个在线HW + 3个lab + 3个Project
## 资源汇总
我在学习这门课中用到的所有资源和作业实现都汇总在[这个Github仓库](https://github.com/PKUFlyingPig/UCB-CS161)中。

View File

@@ -0,0 +1,19 @@
# Stanford CS143: Compilers
## 课程简介
- 所属大学Stanford
- 先修要求:计算机体系结构
- 编程语言Java或C++
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时150小时
斯坦福的编译原理课程设计者开发了一个Class-Object-Oriented-Language简称COOL语言。这门课的核心就是通过理论知识的学习为COOL语言实现一个编译器将COOL高级语言编译为MIPS汇编并在Spim这个MIPS模拟器上成功执行。
理论部分基本按照龙书的顺序覆盖了词法分析、语法分析、语义分析、运行时环境、寄存器分配、代码优化与生成等内容,实践部分则相应地分为词法分析、语法分析、语义分析、代码生成四个阶段,难度循序渐进,并在优化部分给学生留下了很大的设计空间。
## 课程资源
- [课程网站](http://web.stanford.edu/class/cs143/)
- [课程视频](https://www.bilibili.com/video/BV17K4y147Bz?p=17&spm_id_from=pageDriver)
- 课程教材:龙书
- 课程作业5个书面作业 + 5个编程作业带你实现一个编译器
## 资源汇总
我在学习这门课中用到的所有资源和作业实现都汇总在[这个Github仓库](https://github.com/skyzluo/CS143-Compilers-Stanford)中。

View File

@@ -0,0 +1,25 @@
## 课程简介
- 所属大学MIT
- 先修要求:掌握至少一门编程语言
- 编程语言Java
- 课程难度:🌟🌟🌟🌟
- 预计学时100小时
这门课的目标就是让学生学会如何写出高质量的代码,所谓高质量,则是满足下面三个目标(课程设计者原话复制,以防自己翻译曲解本意):
- 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. Youll be surprised how much you forget if you dont 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.
为此这门课的设计者们精心编写了一本书来阐释诸多软件构建的核心原则与前人总结下来的宝贵经验内容细节到如何编写注释和函数Specification如何设计抽象数据结构以及诸多并行编程的内容并且会让你在精心设计的Java编程项目里体验和练习这些编程模式。
2016年春季学期这门课开源了其所有编程作业的代码框架而最新的课程教材可以在其最新的教学网站上找到具体链接参见下方。
## 课程资源
- 课程网站:[2021spring](http://web.mit.edu/6.031/www/sp20/)[2016spring](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-005-software-construction-spring-2016/)
- 课程视频:无
- 课程教材参见课程网站的课程notes
- 课程作业4个编程作业 + 1个Project
## 资源汇总
我在学习这门课中用到的所有资源和作业实现都汇总在[这个Github仓库](https://github.com/PKUFlyingPig/MIT6.031-software-construction)中。

View File

@@ -0,0 +1,19 @@
## 课程简介
- 所属大学UC Berkeley
- 先修要求:无
- 编程语言Ruby/JavaScript
- 课程难度:🌟🌟🌟🌟
- 预计学时100小时
伯克利的软件工程课程,不同于很多传统的软件工程课强调各种类图、文档设计(plan and document模式),这门课专注于最近逐渐流行起来的敏捷开发(Agile Development)模式,利用云平台提供软件即服务(software as a service)。为此,课程设计者编写了[Software as a service](https://github.com/PKUFlyingPig/CS169-Software-Engineering/blob/master/saasbook.pdf)这本教材通过Ruby/Rails框架来阐释saas这个概念并且有丰富的配套编程练习。
这门课在[Edx](https://www.edx.org/)这个由MIT和Havard大学发起的在线教育平台全资料开源大家可以在Edx自行搜索`Agile SaaS Development`这门课程进行学习。课程内容基本按照教材的顺序带你一步步以敏捷开发的方式搭建一个软件并免费部署在云平台上。
## 课程资源
- [课程网站](http://www.saasbook.info/courses)
- 课程视频参见Edx课程主页。
- 课程教材:[Software as a service](https://github.com/PKUFlyingPig/CS169-Software-Engineering/blob/master/saasbook.pdf)
- 课程作业参见Edx课程主页。
## 资源汇总
我在学习这门课中用到的所有资源和作业实现都汇总在[这个Github仓库](https://github.com/PKUFlyingPig/CS169-Software-Engineering)中。