楼主: convoi
收起左侧

[打卡]CS61B/61C

 楼主| convoi 2019-6-9 12:01:27 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   4
100%
0%
0
今天做完了 CS 61B 的 proj1a。需要注意的是 sp18 这个学期的作业有 Autograder,所以我做的是 sp18 的作业。Project 1a 是以链表和数组为存储后台实现 dequeue,而 dequeue 其实是栈和队这两种数据结构的一般化版本(可以通过限制方向来让 dequeue 成为栈或者队),因此 Proj1a 就是一个很好的训练。在实现的时候使用 JUnit 逐个逐个测试每个单元,最后 debug 的时间花得不多,更多时间在纸上去讨论。需要注意的是对于这种算法,使用随机化测试确实是很好的找到 bug 的方式,随机测试可以覆盖到一些手动构造测试用例的时候遗漏掉的一些边界情况。

晚上给 Babel 进行了 PR 的修正。如果可以合并的话,就可以接着找找这个项目的其它问题来做了。
回复

使用道具 举报

 楼主| convoi 2019-6-10 12:18:08 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   4
100%
0%
0
各种cannot resolve symbol, 把library导入之后还是不行

请参考 https://sp19.datastructur.es/materials/lab/lab2setup/lab2setup 设置你的 IntelliJ,注意库导入了以后,需要设置项目的 SDK,同时在文件选择器里面对着你的代码所在的文件夹点击右键,选择 Marked as Source.
回复

使用道具 举报

 楼主| convoi 2019-6-10 12:27:49 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   4
100%
0%
0
昨天做完了 CS 61C 的 Homework 1. 还没有正式开始 Project 1,在配置 Debug 环境的时候就遇到了 Valgrind 不支持 macOS Mojave 的问题,最后使用了 https://github.com/LouisBrunner/valgrind-macos 使得可以在 Mojave 中使用 Valgrind。

61C 推荐使用 GDB 来做调试工具。但是 macOS 上的主流是 LLDB,决定做个死沿用 clang 和 LLDB 的技术路线达到调试的目标。希望后面的任务不会高度关联 GDB 。

晚上收到 Babel 维护者 Nicolo 的回复之后继续改,Nicolo 真是个好哥们,给的回复又快又靠谱。我也第一次知道原来 ECMAScript 里面的解构还可以使用计算属性,具体来说就是可以写这样的代码:


  1. let a = "outside";
  2. function l([{
  3.   [a]: g
  4. }]) {
  5.   let a = "inside";
  6.   return g;
  7. }
复制代码


而我的工作是当对这个函数进行 a 重命名到 z 的操作的时候,不能够把函数参数里的 a 也改成 z,因为这里的 a 是函数外面的域给定的。最后的解决方式是对函数参数遍历语法结构,定位到 computedProperty 并且不在一个新的域里面,接着就解析 property 里面的变量是在哪个域定义的,最后决定是否对参数列表进行重命名操作。
回复

使用道具 举报

mancunian 2019-6-10 17:10:58 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   0
0%
0%
0
为楼主赞一个!

我是非科班的在校学生,上半年已经自学完成cs61b的所有课程作业和proj,现在很想继续学习cs61c,楼主可否一起来学习交流?

补充内容 (2019-6-10 17:25):
还有我在youtube上看到有2015年的cs61c的课程视频https://www.youtube.com/watch?v= ... XLpqib90mDFJI-e1lpk
回复

使用道具 举报

 楼主| convoi 2019-6-10 21:51:39 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   4
100%
0%
0
还有我在youtube上看到有2015年的cs61c的课程视频https://www.youtube.com/watch?v= ... XLpqib90mDFJI-e1lpk


非常感谢你提供的地址!跟着课程视频看 slides 比我原来自己光看爽多了。

我是非科班的在校学生,上半年已经自学完成cs61b的所有课程作业和proj,现在很想继续学习cs61c,楼主可否一起来学习交流?


非常棒!只要肯学习,时间最终会给你奖励。我上次上数据结构课已经是十年前了,但当我自己想往 CS 的深处走的时候,意识到这门课非常重要。以前学生时代总纠结于要会写代码,纠结于用哪个 IDE 哈哈。

可以在这个帖子直接回复交流,我每天都会更新一遍这个贴子。

另外也建议你分出一些时间去尝试贡献开源社区,把自己所学可以有个地方用起来。
回复

使用道具 举报

mancunian 2019-6-10 23:29:56 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   0
0%
0%
0
convoi 发表于 2019-6-10 21:51
非常感谢你提供的地址!跟着课程视频看 slides 比我原来自己光看爽多了。

好的!我其实是马上毕业了,最近一边要实习一边在准备秋招,没学过组成原理和操作系统所以想学一下61系列神课

我有个问题,就是cs61c的作业和proj有答案或者自动打分机制吗?做完之后怎么知道自己对不对呢

还有最近其实在犹豫到底是学cmu 15-213还是伯克利的cs61c,你知道cs61c的后面做的几个proj大概是个什么样的小项目吗?我做完cs61b之后会有3个proj,其中一个地图应用还很有实际效果,我写在简历里面都蛮不错的,所以想知道cs61c大概是最后要做什么样的proj,会不会对简历有帮助
回复

使用道具 举报

mancunian 2019-6-10 23:38:57 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   0
0%
0%
0
mancunian 发表于 2019-6-10 23:29
好的!我其实是马上毕业了,最近一边要实习一边在准备秋招,没学过组成原理和操作系统所以想学一下61系列 ...

其实也是比较犹豫,不知道学哪一门比较利于找工作2333

现在看操作系统的话还有比较推荐的课程吗,是不是感觉cs61c对操作系统的讲解比较省略?
回复

使用道具 举报

 楼主| convoi 2019-6-11 12:07:41 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   4
100%
0%
0
就是cs61c的作业和proj有答案或者自动打分机制吗?


一般的纸面作业有答案,但是 Autograder 没有向公众开放。

不知道学哪一门比较利于找工作2333


如果不是去从事系统编程或者是编译器设计的话,我理解 61a 和 61b 更利于找工作多一些。我学 61C 是因为我想学 CS 164 和 CS 162,这两门课的先修课程是 61C。学 CS 164 和 CS 162 是因为我想未来从事编译器相关的工作。我觉得与其看哪一门有利于找工作,不如问问自己内心最喜欢什么吧?人生苦短啊,总得为自己活一次。

现在看操作系统的话还有比较推荐的课程吗,是不是感觉cs61c对操作系统的讲解比较省略?


61C 我个人理解主要是 CPU 、内存管理相关的知识,是为 CS 164 做准备的。如果希望看操作系统的话,可以到 https://www.ops-class.org/ ,这一系列课程是让你自己造一个 OS。
回复

使用道具 举报

 楼主| convoi 2019-6-11 12:13:37 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   4
100%
0%
0
今天上午跟完了 CS 61C 的 Lab1,和 Lab 要求不同的是我使用 LLDB instead of GDB 来做这一个 Lab,第一次在命令行界面里面设置程序断点还是挺有意思的。这里还有一个 GDB 到 LLDB 的操作映射,变着法子安利你 LLDB 如何方便 https://lldb.llvm.org/use/map.html#watchpoint-commands

下午听完了 CS 61B 的第十节 Extends, Casting, Higher Order Functions 。Dynamic Method Selection 的原理还需要巩固一下。好玩的是在 Java 7 之前,函数是不能作为参数传递的,还需要把函数包装成一个类,然后初始化脱成函数在高阶函数来运行。这当然比 JavaScript 这种函数是第一公民的语言麻烦多了。不过 Java 8 以后引入了 Lambda Expressions 终于让这件事情成为可能:https://docs.oracle.com/javase/t ... bdaexpressions.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

Advertisement
>
快速回复 返回顶部 返回列表