楼主: Self_Learner
跳转到指定楼层
上一主题 下一主题
收起左侧

[入门|算法|数据结构] 普林斯顿 算法课 (上)学习总结,附每周Project链接

   
🔗
Cosmos218 2018-5-23 10:22:11 | 只看该作者
全局:
NathanielNg 发表于 2018-5-23 00:17
是事實, 61B本身不要求懂JAVA, 我上61B時所有LANGUAGE都不會, 還能上. 他有給一本很烏菜的java書給你自修 ...

哈哈是的,61B那个老师讲的很明白,网站上材料也很全~
回复

使用道具 举报

🔗
gop157 2018-5-23 17:23:46 | 只看该作者
全局:
Self_Learner 发表于 2018-5-23 07:09
这是个自己写的private method,用来验证传进来的参数是不是有效的

在最下面看见了看见了,自己眼搓
回复

使用道具 举报

🔗
gop157 2018-5-23 17:23:52 | 只看该作者
全局:
Self_Learner 发表于 2018-5-23 07:09
这是个自己写的private method,用来验证传进来的参数是不是有效的

在最下面看见了看见了,自己眼搓
回复

使用道具 举报

🔗
konve123 2018-5-26 17:44:30 | 只看该作者
全局:
最近剛跟完了演算法的上下部份
大概花了三個月的時間

這是我寫在長期加分帖的心得
希望分享給每個對這門課有興趣的同學
也歡迎一起討論
這是我作業:https://github.com/yhtsao/princeton-algs

1. 課程的基本信息:課程平台,開課學校,課程全名,開課時間,課程鏈接。
        課程平台:Coursera
        開課學校:Princeton University
        課程全名:Algorithms, Part I & II
        開課時間:一直都會開
        課程鏈接:Part I - https://www.coursera.org/learn/algorithms-part1/
                          Part II - https://www.coursera.org/learn/algorithms-part2/

2. 課程難度,作業量,每週花在這門課的時間,以及你的基礎(是初學者?還是本來就是你的專業內容?)
        我的背景:本科CS, 碩士CS, 以前已經在學校修過演算法相關課程,目前工作也是在寫JAVA
        課程難度:對本科生來說,不會太難
        花的時間:我花了大概三個月的時間把兩個部分上完,上跟下分別都拆成六週的課程,
                每週的視頻大概都是三到四個小時,前五週都會有作業,總共是10次作業,每次作業大概會花5-6小時完成
                如果認真一點,空閒時間不要打混,用平日晚上還有週末的時間,應該兩個月就夠了
               
3. 各種感想、收穫、課程內容介紹、你對這門課的評價等等~~這個就自己發揮啦(請具體!)
        這是我第一次跟的公開課,原本只想把第一部分跟完就好,後來還有點時間就繼續把第二部分也上完了。
        第一部分:Stack, Queue, Sorting, Symbol table, BST, Hash Table
        第二部分:Graph (DFS, BFS), MST, Shortest Path, Max Flow & Min Cut, String processing (Radix sort, trie, substring)

        因為本身是CS專業出身,對於大部分的演算法都是有點基礎的
        但我必須說這堂課最值得上的地方,就是老師在介紹每個演算法的時候,都會把前因後果說明得非常清楚
        假設為瞭解決A問題,一開始一定是用brute-force的解法,之後才介紹了B解法,
        但B解法有memory complexity的issue,為瞭解決這issue,又有了另一個C解法
        
        老師介紹每個演算法,都會在最後放上java sample code來佐證這個演算法,會讓人對這個演算法有更直覺的理解
        以前上課,大部分放上的都是pseudo code,就會比較沒感覺
        也會對於介紹演算法的各種應用,這部分也是我覺得很棒的地方
        因為以前學演算法都像是為了考試而理解它,學完還是不懂為什麼需要有這些算法的存在
        
        大部分的作業也都是讓你用課堂上的演算法去應用在現實情況,
        例如:他會讓你用graph去解決word net (每個詞彙跟另一個詞彙的關係)的問題,而不是實作graph
        
4. 如果讓你重新學過這門課,你會在學習方法上,背景提升上會有什麼樣的改進(選答)        
        我會先把課程講義看一遍再開始上課,會更容易跟上老師上課內容

5. 這門課和其他你跟過的課,用過的資源或者是學校上過的課有什麼區別?(選答,如果你還跟過其他類似的課的話)
        這門課用的課本不是聖經本(Introduction to Algorithm),而是用Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne
        以前上演算法課程有一段介紹divide and conquer 和 dynamic programing
        但這門公開課沒有特別針對這兩個概念去做說明

6. 給以後打算學這門課的同學一些建議(請具體!可包括任何方面)
        如果是CS專業的同學,但還不會寫JAVA,可以直接來上,裡面沒用到太難JAVA的語法,還算好懂
        如果不是CS專業的同學,建議先會寫一點JAVA再來跟這堂課,畢竟這堂課JAVA只是輔助,
        如果上這堂課花太多時間在理解JAVA code,就跟這堂課的目的背道而馳了
        
        視頻的部分,老師講話的語速很慢,所以理解上不會有太大問題,我都是開1.25x速在上課

        作業的部分,建議都是跟完當週視頻在開始寫,
        因為老師在課程介紹的演算法應用,通常會是當次作業的內容
        我寫作業的順序是看完spec之後,他還會有個checklist的網頁
        裡面都是一些以前被提問過的問題,已經相對應的回答,可以讓你避開一些雷
        還有一個區塊是Possible Progress Steps,會有一些實作的步驟讓你參考
        我大部分都是跟著他的progress steps去實作,會比較快上手

        如果滿分十分,我會給這門課十分
        真心推薦給每個對演算法有興趣的同學,或是對演算法感到疑惑的人

评分

参与人数 10大米 +17 收起 理由
生蚝来十个 + 1 给你点个赞!
jasonzhouu + 1 赞一个
fmusk + 1 赞一个
小当家123 + 1 很有用的信息!
NewRita + 3 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
angelordemon 2018-5-27 10:27:15 | 只看该作者
全局:
楼主,这个课上的作业,是免费的吗?还是需要注册course啊。
回复

使用道具 举报

🔗
 楼主| Self_Learner 2018-5-27 15:38:41 | 只看该作者
全局:
angelordemon 发表于 2018-5-27 10:27
楼主,这个课上的作业,是免费的吗?还是需要注册course啊。

课程和作业都是免费的
回复

使用道具 举报

🔗
xiaoling99 2018-5-28 04:01:55 | 只看该作者
全局:

楼主,你好厉害,真的很佩服
回复

使用道具 举报

🔗
林红玉 2018-5-28 12:48:32 | 只看该作者
全局:
被楼主鼓励到了!
回复

使用道具 举报

🔗
evonneli 2018-5-28 13:19:28 | 只看该作者
全局:
佩服楼主,我也要努力学习~~
回复

使用道具 举报

🔗
 楼主| Self_Learner 2018-5-29 01:10:43 | 只看该作者
全局:
konve123 发表于 2018-5-26 17:44
最近剛跟完了演算法的上下部份
大概花了三個月的時間

谢谢分享,非常有用的信息~
回复

使用道具 举报

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

本版积分规则

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