Merge branch 'main' of github.com:conanhujinming/comments-for-awesome-courses into stanford

This commit is contained in:
Zhang-Each
2021-06-21 00:02:34 +08:00
3 changed files with 123 additions and 2 deletions

View File

@@ -40,7 +40,17 @@
xv6的主分支上已经修复了这个问题。但是2020版的前几个lab没merge这个patch需要自己在.gdbinit.tmpl-riscv里加一行`set riscv use-compressed-breakpoints yes`
关于后面lab的注意事项可以加入[6.S081学习交流群](https://zhuanlan.zhihu.com/p/251366985)了解。
## 关于在mac上的环境搭建
* 大部分参考https://zhayujie.com/mit6828-env.html
* qemu
* 版本为5.1.0 手动make可能需要多次make才会成功
* 下载地址 https://download.qemu.org/
* xv6 需要clone2020课程的仓库但是链接感觉失效了需要自己百度一下clone。
* RISC-V工具链
* 版本9.2.0 不要用brew安装因为会在gdb调试时出问题
* 下载地址第一个链接里给出了用博主给的下载链接自行make
* 注意在make前修改一下源码 在riscv-gdb/readline/rltty.c 和 riscv-gdb/readline/terminal.c 中添加头文件#include<sys/ioctl.h>
* 如果变异中途退出记得多变异几次大概持续30min-60min。
## 非官方资料推荐
1. 强推[肖宏辉大神](https://www.zhihu.com/people/xiao-hong-hui-15)的[课程内容翻译](https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/)。
@@ -50,4 +60,4 @@
- [MIT 6.828](https://abelay.github.io/6828seminar/index.html) 系统论文阅读研讨会,适合对系统领域的科研感兴趣的同学。
- [System Paper Reading Seminar](https://learn-sys.github.io/cn/reading/):很多同学自己组织的系统论文研讨会,中文资源,有视频。
- [MIT 6.824](https://pdos.csail.mit.edu/6.824/):分布式系统。
- [MIT 6.824](https://pdos.csail.mit.edu/6.824/):分布式系统。

View File

@@ -0,0 +1,64 @@
课号:[CS144 Fall 2020](https://cs144.github.io/)
教授Keith Winstein
评论贡献者:[WangAShao](https://github.com/WangAShao)
- [x] [Lab x 8](https://cs144.github.io/)
- [x] 本地有完备的测试用例
- [x] Videos [bilibili](https://www.bilibili.com/video/BV137411Z7LR)
- [x] [Slides](https://cs144.github.io/)
## 课程信息
计算机网络:计算机网络的基础课程,实验很厉害。
下面简单介绍一下实验做了些什么:
- lab0配置环境telnet命令的使用使用OS提供的网络api接口编写一个网络应用程序同时带你熟悉Sponge的文档
- lab1我们知道TCP是面向字节流的所以数据是乱序到达接收方这个实验就是将失序的数据按序重组同时处理重叠等情况。
- lab2我们实现的是一个用户态TCP协议TCP协议是用来传输数据的那么必然有一个发送方和接收方我们这个实验就是来实现接收方的想想你会怎么解析这个到来的包呢期待吧
- lab3这个实验就是实现我们的发送方喽想不想知道我们的用户态TCP协议是怎么把数据发出去的呢啃底层源码吧
- lab4这个实验就是把前面的内容全部整合起来一个真正的TCP协议就此诞生了
后面三个lab我没写我是简单浏览了一下文档后说的
- lab5貌似是实现ARP协议
- lab6实现基于最长前缀匹配规则的路由器转发功能
- lab7把前面的整合在一起
## 适合人群
这门课属于基础课程的性质所以计网0基础的同学也是可以学习这门课程的不用担心跟不上来我当初学这门课的时候计网就是基本0基础。
另外已经有计网基础并且对TCP协议很感兴趣的也可以刷一刷这门课。
## 课程评价
这门课的视频听说比较捞,听起来很犯困,所以不太推荐。
这门课的PPT我也看过没什么信息量而且跟实验貌似没什么关系也不推荐看。
这门课最为推荐的就是它的实验,下面重点来讲一讲实验:
- 实验指导书:我能想到的最好的一个形容词就是详略得当了
所谓详,是指在指导书当中把整个系统的架构以及你需要做哪些工作,填充哪个函数,这些函数的功能是什么,互相之间怎么交互的说的已经非常清楚了;
所谓略则是指它省略了很多边界条件没有说当你发现在这种case下原来需要这样处理但是为什么指导书却没有说的时候你可能要骂指导书太垃圾但我觉得就是这种略让你陷入bug让你调试才让你对这个case印象更加深刻达到了训练的目的。
- 测试用例测试代码完全开源并且相当完备。唯一比较坑的地方就是斯坦福的教授为了避免你面向测试编程所以在lab1~3给出的测试用例并不完备然后在lab4的时候才给出更完备的测试用例导致lab4 debug很痛苦。
- 预计工作量lab1~3都挺简单每个大概一天就能做完代码量我的实现不超过50行。lab4相对难不少写个差不多对但不完全对的也许要3 ~ 5天。
最后我要泼一盆冷水这个实验即使做完了你在计算机网络上其实还只是一个入门汉因为TCP协议只是计算机网络中很小的一部分所以计网学习的脚步不能就此停下来推荐看一下《计算机网络 自顶向下》。
## 非官方资料推荐
1. CS144QQ学习群群号485077457
2. 我本人在做实验的过程中记录了一些[笔记](https://zhuanlan.zhihu.com/p/382380361)里面主要包括我当时0基础做实验的心路历程以及测试用例的解读和遇到的坑里面没有贴任何具体实现的代码所以可以放心观看。
## 后续课程推荐
暂无

View File

@@ -0,0 +1,47 @@
课号:[CS357 Numerical Methods I](https://courses.engr.illinois.edu/cs357/sp2021/pages/resources.html)
教授Prof. Mariana Silva & Tom Gambill & and many
评论贡献者:[Blurry Light](https://github.com/BlurryLight)
- [X] Videos [2020版本B站](https://www.bilibili.com/video/BV1zv411p7nk?from=search&seid=2598392382108593145)
- [X] [slides & notes](https://courses.engr.illinois.edu/cs357/sp2021/pages/resources.html)
- [X] Assignments & solutions: 不公开。
- [X] [Machine problems & tests:](https://courses.engr.illinois.edu/cs357/su2014/mp.htm)
- [X] [Exams & solutions 期末考试和半期考试](https://courses.engr.illinois.edu/cs357/su2014/exams.html)
- [X] [demos 代码片段](https://github.com/gachet/demos-cs357)
## 课程信息
数值方法,计算机工程和科研进阶所必须的知识,尽管现在很多时候已经不需要手动再写数值方法了,但是明白如何选用合适的数值方法,分析数值算法在什么时候能够得出最小误差的解,如何解的最快以及如何得到稳定的解仍然是进阶领域所必须的知识。
这里推荐的资源是多年的杂糅。CS357课程似乎每年会开多次并且由不同的老师执教。尽管Assignments不官方开放谷歌上可以搜到往年的版本并且我在最后附上了stanford的相同课程的作业喜欢做assignments巩固认知的可以做stanford的但是Assignments基本接近于做题。这门课的核心更在于demos的代码片段通过简短的代码阐述了许多数值计算上的核心概念。
## 适合人群
需要高等数学知识(微分,积分相关内容)和线性代数相关的知识,概率论涉及的较少。强烈建议作为研究生阶段的第一门数学课或者本科高年级进入科研领域之前修读这门课。数值方法是一些需要坚固数学基础的计算机方向,如物理模拟,几何优化,机器学习的核心内容。
## 课程评价
缺点:
这门课是每年会开多次不同季节由不同老师执教虽然同样名为CS357但是内容差距蛮大的。每年内容也会有修订。github上谷歌上能搜索到往年的demos和slides内容经常有变化但是核心的内容差不多可以参照着不同年份不同老师教的大纲挑选合适的内容来学习。主要参照demos和slides上的伪代码来学习自己实现常用的算法。
优点:
充足的Python例程和可视化贴心的帮你准备好了`colab jupyter`环境。我看的slides [2014夏季版本](https://courses.engr.illinois.edu/cs357/su2014/lect.htm)推导充分并且伪代码丰富纯靠slides也能完整自学。
## 需要注意的坑点
由于不同年份的同名课程较多,并且并不是每一个老师都开放了课程资料,需要付出甄选资料的精力。建议直接挑选某一个版本来学习,其他的查漏补缺就好。
## 非官方资料推荐
- [stanford cs205 Mathematical Methods for Robotics, Vision, and Graphics](http://graphics.stanford.edu/courses/cs205a/schedule.html) 作业可作为补充,本质上是一样的。
## 后续课程推荐
- [CS 450: Numerical Analysis (Spring 2021)](https://www.bilibili.com/video/BV1Vq4y1L7yM/?spm_id_from=333.788.recommend_more_video.5)