和男女朋友出去旅行及日常生活中如何平摊费用?

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货

最近看过此主题的会员

科技公司如何
用数据分析驱动产品开发
Coupon code: best
深入浅出AB Test
从入门到精通
Coupon code: best
码农求职神器Triplebyte:
不用海投
内推多家公司面试
E轮2.5亿美元融资
K12教育独角兽一起作业诚聘
机器学习/数据统计/教育等职位
高效直聘+内推,70%面试率
AI帮你免费完善简历
直击全美十万个科技职位
坐标湾区
DreamCraft创始团队
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
查看: 2879|回复: 21
收起左侧

CS61B - 等待学校结果靠刷课转移注意力

[复制链接] |试试Instant~
我的人缘0
gritwins 发表于 2018-2-24 12:29:08 | 显示全部楼层 |阅读模式
本楼: 【顶】   100% (2)
 
 
0% (0)   【踩】
全局: 顶  100% (11)
 
 
0% (0)  踩

[其他]Data Structures, Spring 2018 #4 - 2018-01-17@UC Berkeley

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
背景:
已经申请18Fall,为了缓解紧张和等待的焦急,通过记录刷课来转移注意力。工作中使用的主力语言是Python,通过CS61B夯实Java基础,为刷题做足准备。

课程地址:
http://sp18.datastructur.es/

进度说明 (一共15周课程):

Week 1: 已经完成,主要是java语言的介绍,极度OOP的语言确实能通过另一个视角帮助我们看待编程语言;
Week 2: 已经完成,介绍递归和一些基本数据结构:单向链表,双向链表,开始使用IntelliJ环境(之前一直是Vim),完成Project 0 - NBody,很经典的一个project,模拟星球运行;
Week 3: 已经完成,涉及TDD思想,以及List数据结构的两种实现方式:链表和数组,Project 1A - Data Structures, 使用Linked List和Arrays来实现Deque这种数据结构, 哨兵Node的涉及和array的resizing思想很受用;

进度追踪:

定期更新自己的学习进度,也希望和其他学友一起交流。


评分

参与人数 4大米 +13 收起 理由
jamesleborn + 3 很有用的信息!
debuger + 2 厉害了 我的哥!
jiahui + 3 给你点个赞!
小石匠 + 5 给你点个赞!

查看全部评分


上一篇:Algorithms, Part II 组队一起刷
下一篇:UCB CS 61B 求队友!!!
我的人缘0
 楼主| gritwins 发表于 2018-2-26 17:10:53 | 显示全部楼层
本楼: 【顶】   100% (1)
 
 
0% (0)   【踩】
全局: 顶  100% (11)
 
 
0% (0)  踩
loveboy26 发表于 2018-2-26 05:56
我也准备跟这个课,想请问你是怎么测试你做的HW和PROJECT的? 他有公开的TEST CASES之类的吗貌似不是学生没 ...

我觉得guide挺完善的,没有autograder倒也不是特别影响。
回复

使用道具 举报

全球28万学生4.7分推荐
我的人缘0
loveboy26 发表于 2018-2-26 05:56:50 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (2)
 
 
0% (0)  踩
我也准备跟这个课,想请问你是怎么测试你做的HW和PROJECT的? 他有公开的TEST CASES之类的吗貌似不是学生没法ACCESS他那个AUTOGRADER(GRADESCOPE)
回复

使用道具 举报

我的人缘0
 楼主| gritwins 发表于 2018-2-26 17:08:46 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (11)
 
 
0% (0)  踩
本帖最后由 gritwins 于 2018-2-26 17:09 编辑

Week 4:  Lecture:  

1. 提出继承:这是OOP中特别强大的一个概念,如果想要扩展父类的功能,就要接触到这个概念,这个概念首先很自然映射到现实生活中,其次,很好地实现了DRY的理念。有几点需要注意:第一,constructor无法被继承,需要借助super关键词,但是java会隐式调用无变量的constructor; 第二,继承用extends关键字实现,如果没有其实都隐式地继承了Object类;

2. 封装概念:OOP很好地表达了封装,就像我们使用餐厅服务,我们根据餐厅提供的“方法”,点餐,付款,进餐,而不需要关心餐厅具体实现其方法的“具体细节”;怪不得java是特别好的一门面向团队的语言,强大的封装特性能够更好地实现拆分任务从而分配到各个开发身上;然而,继承很有可能破坏了封装的特性,我是这么理解的,开发还是要对于自己所要继承的父类的实现有所了解;

3. 静态类型 vs 动态类型:对应也就是编译时类型和运行时类型,其实仔细画图分析即可,课程中有很多练习都涉及到这一点,特别是在做cast(类型转换)的时候;

4. 学习CS61a或者lisp时有一个很好用的概念是HoF(高阶函数),这个在函数是一等公民的编程语言中特别有用,但是对于java选择了用 interface的方式曲线救国实现HoF,eg:各种Comparator;

5. 使用接口支持多态:我的理解是,接口定义了统一的方法,有很多类都实现了这些方法,那么就可以用统一的方式进行调用,主要应用在:Comparable上

6. 介绍Abstract Data Type, ADT其实定义了What, 而具体实现就交给了实际的类,比如课程中一直做的大作业Deque, 我们会定义Deque这个interface,ArrayDeque和LinkedListDeque就是两个Deque的经典实现,比如未来我们找到了一种更好的实现方法,完全可以无缝插入到现有代码中,这让我联想到了网络的layered design,这种封层思想其实体现在CS的各个角落;

7. 初步认识了java.util中的集合数据结构,List,Set,Map,其实和Python一对比就非常有趣,Python内置了这三种数据结构:list(), dict(), set(), 作为使用者我们根本不需要关心他们的实现方式(实际上python的list底层也是需要resize的)。讲师大大鼓吹了java的好处:更加面向computer底层,所以更好调优!

8. 抽象类,提供了比interface更加强大的功能,可以说是interface的加强版,但是复杂度也增加了,Python中其实有一个叫做abc的包就是抽象类的思想

9. 包管理,简单一提   

Project:  

在Project1A的基础上扩展Project1B, 主要是基于ArrayDeque和LinkedListDeque的应用,判断回文词; 另一个有价值的作业是自己写autograder,可以说是引入了一些随机测试的方法,很有价值。

评分

参与人数 1大米 +5 收起 理由
小石匠 + 5 给你点个赞!

查看全部评分

回复

使用道具 举报

我的人缘0
 楼主| gritwins 发表于 2018-3-6 19:26:22 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (11)
 
 
0% (0)  踩
Week 5-a:

这个拖地比较久,因为收到了CMU MSE的录取。不用太焦虑了,但还是要继续坚持。还是先把CS61b做完,然后学习一下system的课程,cmu有一门pre-course ics 貌似load也很高。

Lecture:

1. Coding in the real world 给大家看了一下STEM专业多么稀缺,鼓励大家投入码农的行业,本周有一个Midterm,所以后半段基本都是答疑;
2. 接下来补充一些相对比较高阶的java语法:
    1. Autoboxing 和 unboxing:以前真不太懂int与Integer之间的区别,后者会把前者包裹起来成为一个类,提供了各种和这个类相关的方法,好处在于不用显式地去做相关转换,但是作为一个effective programmer建议还是不要依赖这种特性,因为box后的会占用更大的内存;
    2. Widen, 对于一些primitive,比如int会做扩展,这个在强类型语言中可能提供了一种便利吧,比如从int -> double 长度增加
    3. Immutability,典型的就是string类型,如果要改变,只能生成新的对象,其次,private本身不能被user 改变,最后,使用final关键词可以控制其immutability
    4. Generics,类型在runtime的时候动态捆绑,可以使用这种技巧,大大提升对于代码复杂度的管理,之前的课程中已经提到很多,重点注意静态方法中使用generics需要先显示的在方法前写一下(类似提前声明),有些时候声明中有的类实现了某些接口,使用“extends”注明实现关系,这一点确实很困惑,为什么不用“implements”呢?
    5. 基本的exception概念,try…catch结构,使用throw主动抛出去(python中是raise),核心就是使用exception其实可以更好地控制代码的workflow,写过golang的深刻地理解这一点 :),如果exception没有被主动处理那么就会逐层向上抛,这个就是stacktrace
    6. 异常分为checked和unchecked, 对于Error和runtime exception可以不用处理,但是对于其他的或者需要捕捉处理或者需要在方法定义时用 throws 说明
    7. Iterables <> Iterator: 这一组概念完全可以类比 Comparable <> Compartor, 在python中也有类似的magic method, __next__, __iter__, Iterator实现了hasNext和next两个方法,就将一个集合类做成可以循环迭代的对象了,然后使用for循环就很方便(我理解for循环本身也使用的是hasNext和next两个方法)

Practice:

对于ADT有一些深入练习,比如:List, Set, Map 以及 Stack,PriorityQueue。特别有印象的就是使用两个Stack来做一些高级功能,比如浏览器的前进和后退的实现。

Midterm:

我是打印出来在高铁上自己做的,160分,大概能得130分左右,主要对于静态类型和动态类型掌握并不是太好,可能就是python转过来的原因,哈哈

接下来主要集中在Project2的实现,josh说这个是十分challenging的project,推荐两人一小组进行,如果有感兴趣的,大家一起组队吧。
回复

使用道具 举报

我的人缘0
dut2010 发表于 2018-3-13 10:15:53 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  66% (2)
 
 
33% (1)  踩
gritwins 发表于 2018-3-6 19:26
Week 5-a:

这个拖地比较久,因为收到了CMU MSE的录取。不用太焦虑了,但还是要继续坚持。还是先把CS61b ...

我想做project 2,请问怎么组队。
回复

使用道具 举报

我的人缘0
SSGEZREAL 发表于 2018-3-13 17:06:16 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (14)
 
 
0% (0)  踩
求问楼主我刷完CS61A 关于Data Structure 还有别的课可以看吗
回复

使用道具 举报

我的人缘0
 楼主| gritwins 发表于 2018-3-14 10:14:34 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (11)
 
 
0% (0)  踩
dut2010 发表于 2018-3-13 10:15
我想做project 2,请问怎么组队。

加个好友?
回复

使用道具 举报

我的人缘0
 楼主| gritwins 发表于 2018-3-14 10:15:22 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (11)
 
 
0% (0)  踩
SSGEZREAL 发表于 2018-3-13 17:06
求问楼主我刷完CS61A 关于Data Structure 还有别的课可以看吗

推荐MIT的6.006,是用python讲的,也可以Princeton的算法课

With React+D3v4 you'll learn the basics of building fast data visualization components in about an hour.


回复

使用道具 举报

我的人缘0
17717093229 发表于 2018-3-17 11:06:10 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  57% (4)
 
 
42% (3)  踩
求加好友~我刚上完week2在做project1A
回复

使用道具 举报

游客
请先登录

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法 - 不要多加空格: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|小黑屋|一亩三分地留学网

GMT+8, 2018-12-17 06:45

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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