CS144 Lab1翻译
这里给出CS 144 Lab 1: stitching substrings into a byte stream的翻译。
实验资料:
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://kangyupl.gitee.io/cs144.github.io/
https://gitee.com/kangyupl/sponge
实验1:将子字符串拼接成一个字节流0. 合作政策编程作业必须是你自己的工作:你必须编写你为编程作业提交的所有代码,但我们作为作业的一部分提供给你的代码除外。请不要复制和粘贴来自StackOverflow,GitHub或其他来源的代码。如果你的代码基于你在网上或其他地方找到的样例,请在提交的源代码中的注释中引用URL。
与他人合作:你不能把你的代码给别人看,也不能看别人的代码,更不能看往年的解决方案。你可以与其他学生讨论作业,但不要抄袭任何人的代码。如果你与其他学生讨论作业,请在你提交的源代码中的注释中列出他们的姓名。请参阅课程管理讲义了解更多详细信息,如果有任何不清楚的地方,请 ...
CS144 Lab0翻译
这里给出CS 144 Lab 0: networking warmup的翻译。
实验资料:
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://kangyupl.gitee.io/cs144.github.io/
https://gitee.com/kangyupl/sponge
实验0:网络热身欢迎来到CS144:计算机网络入门。在这个热身实验中,你将在你的计算机上安装Linux,学习如何在互联网上手动执行一些任务,用C++编写一个小程序,在互联网上获取一个网页,并实现(在内存中)网络的一个关键抽象概念:写入器和读取器之间的可靠字节流。我们预计这个热身赛将花费你2到6个小时来完成(未来的实验将花费你更多的时间)。在进入实验之前,最好先阅读整个实验的内容。
0. 合作政策编程作业必须是你自己的工作:你必须编写你为编程作业提交的所有代码,但我们作为作业的一部分提供给你的代码除外。请不要复制和粘贴来自StackOverflow,GitHub或其他来源的代码。如果你的代码基于你在网上或其他地方找到的样例 ...
CS144 Lab6
这里回顾Lab 6: building an IP router。
实验资料:
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://kangyupl.gitee.io/cs144.github.io/
https://gitee.com/kangyupl/sponge
Lab 6: building an IP router准备工作下载代码以及跑通流程git checkout -b lab6-startercode
git fetch
git merge origin/lab6-startercode
cd build
make -j4 && make check_lab6
说明
为了实现方便,使用vector存储转发表的每一项
当收到datagram时,搜索转发表,找到最长前缀匹配以及interface_num
通过interface_num对应的interface发送datagram
代码router.hh添加ForwardTableEntry, _forward_tab ...
CS144 Lab5
这里回顾Lab 5: building an IP router。
实验资料:
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://kangyupl.gitee.io/cs144.github.io/
https://gitee.com/kangyupl/sponge
Lab 5: building an IP router准备工作下载代码以及跑通流程git checkout -b lab5-startercode
git fetch
git merge origin/lab5-startercode
cd build
make -j4 && make check_lab5
说明
维护ip到(EthernetAddress, time)的映射表arp_map,其中time表示添加映射的时间;
对于每次发送的dgram和next_hop,一共分为三种情况:
映射表里表里有的next_hop对应的ip,则直接发送;
映射表里表里一开始没有next_hop对应的ip,后来得到映射,然后发 ...
CS144 Lab4
这里回顾CS 144 Lab 4: the summit (TCP in full),这次的实验对我难度还是太大了,只能通过85%左右的测试,所以这里只给出一点实验经验。
实验资料:
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://kangyupl.gitee.io/cs144.github.io/
https://gitee.com/kangyupl/sponge
https://segmentfault.com/a/1190000039220243
https://kiprey.github.io/2021/11/cs144-lab4/#%E5%85%AD%E3%80%81%E5%85%B7%E4%BD%93%E5%AE%9E%E7%8E%B0
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
http://yuzijun.life/2021-02/CS144
Lab 4: the summit (TCP in full ...
CS144 Lab6翻译
这里给出CS 144 Lab 6: building an IP router的翻译。
实验资料:
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://kangyupl.gitee.io/cs144.github.io/
https://gitee.com/kangyupl/sponge
实验6:构建IP路由器0. 合作政策编程作业必须是你自己的工作:你必须编写你为编程作业提交的所有代码,但我们作为作业的一部分提供给你的代码除外。请不要复制和粘贴来自StackOverflow,GitHub或其他来源的代码。如果你的代码基于你在网上或其他地方找到的样例,请在提交的源代码中的注释中引用URL。
与他人合作:你不能把你的代码给别人看,也不能看别人的代码,更不能看往年的解决方案。你可以与其他学生讨论作业,但不要抄袭任何人的代码。如果你与其他学生讨论作业,请在你提交的源代码中的注释中列出他们的姓名。请参阅课程管理讲义了解更多详细信息,如果有任何不清楚的地方,请在Piazza上询问。
Piazza:请随时在P ...
CS144 Lab5翻译
这里给出CS 144 Lab 5: down the stack (the network interface)的翻译。
实验资料:
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://kangyupl.gitee.io/cs144.github.io/
https://gitee.com/kangyupl/sponge
实验5:底层(网络接口)0. 合作政策编程作业必须是你自己的工作:你必须编写你为编程作业提交的所有代码,但我们作为作业的一部分提供给你的代码除外。请不要复制和粘贴来自StackOverflow,GitHub或其他来源的代码。如果你的代码基于你在网上或其他地方找到的样例,请在提交的源代码中的注释中引用URL。
与他人合作:你不能把你的代码给别人看,也不能看别人的代码,更不能看往年的解决方案。你可以与其他学生讨论作业,但不要抄袭任何人的代码。如果你与其他学生讨论作业,请在你提交的源代码中的注释中列出他们的姓名。请参阅课程管理讲义了解更多详细信息,如果有任何不清楚的地方,请在Piazz ...
CS144 Lab4翻译
这里给出CS 144 Lab 4: the summit (TCP in full)的翻译。
实验资料:
https://www.cnblogs.com/kangyupl/p/stanford_cs144_labs.html
https://kangyupl.gitee.io/cs144.github.io/
https://gitee.com/kangyupl/sponge
实验四:顶峰(summit)(完整的TCP)0. 合作政策编程作业必须是你自己的工作:你必须编写你为编程作业提交的所有代码,但我们作为作业的一部分提供给你的代码除外。请不要复制和粘贴来自StackOverflow,GitHub或其他来源的代码。如果你的代码基于你在网上或其他地方找到的样例,请在提交的源代码中的注释中引用URL。
与他人合作:你不能把你的代码给别人看,也不能看别人的代码,更不能看往年的解决方案。你可以与其他学生讨论作业,但不要抄袭任何人的代码。如果你与其他学生讨论作业,请在你提交的源代码中的注释中列出他们的姓名。请参阅课程管理讲义了解更多详细信息,如果有任何不清楚的地方,请在Piazza上询问 ...
Programming Languages Part A HW1
这次回顾HW1,主要是Standard ML的基本语法。
课程主页:
https://www.coursera.org/learn/programming-languages/home
B站搬运:
https://www.bilibili.com/video/BV1dL411j7L7
参考资料:
https://www.coursera.org/learn/programming-languages-part-b/discussions/weeks/1/threads/qdnA6f5EEeaJEAqoFc7ZZA
代码(* problem 1 *)
fun is_older(date1: int*int*int, date2: int*int*int) =
if (#1 date1) < (#1 date2)
then true
else
if (#1 date1) = (#1 date2)
then
if (#2 date1) < (#2 date2)
...
Programming Languages Part A HW0
这次回顾HW0,主要是环境配置和熟悉提交作业的流程。
课程主页:
https://www.coursera.org/learn/programming-languages/home
B站搬运:
https://www.bilibili.com/video/BV1dL411j7L7
Homework 0这次作业比较简单,只要将加法修改为乘法即可:
(* Dan Grossman, Coursera PL, HW0 Provided Code *)
(* The line below is wrong -- replacing the addition, +, with
multiplication, *, will fix it *)
fun f(x,y) = x * y
(* Do not change these: They should be correct after fixing the code above *)
fun double x = f(x,2)
fun triple x = f(3,x)
比较重要的是测试文件的使用方式:需 ...
Programming Languages Part A Week 2笔记
这次回顾Week2的内容,主要是Standard ML的语法介绍。
课程主页:
https://www.coursera.org/learn/programming-languages/home
B站搬运:
https://www.bilibili.com/video/BV1dL411j7L7
Week 2ML表达式和变量绑定一个非常简单的ML程序(* Programming Languages, Dan Grossman *)
(* Section 1: Our first ML program *)
(* val is a keyword
x is a variable name
= is used as a keyword here (has different meaning in expressions)
34 is a very simple expression (and value)
; is used as a keyword here (has different meaning in expressions)
*)
val ...
Programming Languages Part A Week 1笔记
之前一直想学习Coursera上Programming Languages系列课程,但去年一直在看SICP,所以这部分推迟到现在开始学习,这次回顾Week1的内容,主要是一些课程介绍。
课程主页:
https://www.coursera.org/learn/programming-languages/home
B站搬运:
https://www.bilibili.com/video/BV1dL411j7L7
Week 1欢迎!(以及一些课程机制)欢迎!
这是一个具有挑战性的学习编程语言基本概念的机会。
通过努力工作、耐心和开放的心态,本课程使你成为一个更好的程序员 :
即使是我们不会使用的语言 ;
学习每种语言的核心思想,尽管表面上存在着无数的差异和变化;
“糟糕”的课程摘要:“使用ML、Racket和Ruby”;
介绍性材料本视频:
课程机制,结构
其他介绍性视频:
我是谁和员工致谢
最初的“为什么这样学习编程语言”
2-3周内的真实课程动机
讨论推荐背景
为什么“课程”分为A、B和C部分
评分策略
总体“路线图”,特别是接下来的几周
简洁的待办事项清单
熟悉网 ...