CS50 課程導讀心得:Week 4
- 直播影片:https://www.youtube.com/watch?v=KJ35LaK1VUA
- 投影片:https://docs.google.com/presentation/d/1PfNCvxJV_pOozArub_N-99-fXwu7yNw_Lt3EjlVKLiU/edit?usp=sharing
CS50 開始慢慢變得越來越難了,這一週的作業就是開啟我對於 CS50 感到驚歎的契機。
當初我在做這一週作業的時候感想是:
哇塞,太狠了吧!通識課欸!教你用 xxd 看 binary 還有直接寫 C code 去處理圖片,這太硬了吧!厲害厲害
就是因為這次作業,讓我覺得 CS50 的深度很夠,而且我以前其實也沒有用 C 處理過圖片的經驗,所以這次作業也讓我學到很多。
總之呢,CS50 前半段課程會愈來愈往底層走,最底大概到 Week6吧,要實作部分的 HTTP Server,接著就會慢慢拉回來了。所以前半段安然度過的話,後半段也一定沒有問題。
我在做投影片的時候,把這週的重點放在指標上面,畢竟這是我一直以來覺得 C 裡面很難的一個東西,尤其對於初學者。但看大家的反應,我解釋的應該是還可以啦,不錯不錯。
比較遺憾的是,這週直播剛開始又有一點小錯誤,麥克風不知道為什麼收音很奇怪,我後來也沒做什麼,就是重開 OBS 而已,怪了。但幸好重開之後就好了,不然我也不知道還可以怎麼修了。
這幾週導讀感覺越來越順了,而且這一週大概一小時以內就結束了,所以這幾週最快的吧XD
課後回饋
這一次的回饋表單裡面,我靈機一動加入了一個簡單的指標陷阱題小測驗,看起來效果滿好的,以後可以考慮多出一點這種測驗。
接著來看一下大家普遍的反饋:
指標講得很好、圖片解析那邊很有趣、喜歡問卷上的題目、搭配 PPT 很容易理解概念
圖片解析那邊我也是後來才想到要加上的,因為我也覺得超有趣。投影片我也是下了一番苦心在做,我自己在做的時候就覺得做得還不錯XD
然後這次這種出題的方式,我以後會考慮變成常態性的,而且我也不怕你改答案啦,畢竟我也沒有要評分的意思。
有人反饋了一個缺點:
程式底層運作那邊是cs50講的很詳細, 相較下導讀沒有詳述memory每塊大概的意思, 但可能是因是導讀所以也好像不算什麼缺點…
的確啦,我是認為如果有些概念 CS50 花很多時間講得很好,其實基本上我就不用再重講一遍了,除非是我覺得還可以再進步的、或者是真的很重要(例如說指標)的概念,我就會把它列入重點。
最後來回一下大家的問題:
請問哪裡可以找到作業的解答~~? 目前才跟到第一週的導讀, 寫完作業後程式碼可以依照作業需求run,但也很想知道可以在哪裡找到cs50或老師提供的解答,對對看有沒有哪裡寫法不一樣的地方 。
可能是因為怕別人抄作業的關係啦,所以有些解答大家都自己留著,沒有公開出來,官方就更不可能有解答了。但儘管如此,你 Google: cs50 pset 之類的關鍵字,還是能在 Github 上面找到其他人的解答喔。
至於我自己的,可能日後會公佈啦,我不太確定。
下次直播前幾分鐘可先作設備測試,關於題目我覺得比較好的解釋是資料型態錯誤,*ptr 應該assign成記憶體位址資料型態 而不是整數資料型態
好的,這個建議十分受用,我也覺得應該做個測試。
然後 Google 表單不能換行,所以要解釋很麻煩我沒解釋到這麼詳細,但你的這個解釋很好喔,大家可以參考這個解釋。
我還沒有花時間去找所以要求這個有點厚臉皮 … 我想問老師能不能提供CS50的作業環境架構指南跟每一次的作業內容。因為目前在資策會上課的時間壓力有點大,三不五時就要寫到天亮(功力太差orz),就沒餘裕去收集資訊…
不行XD
這些其實官網上面都有啦(只是是英文的),如果時間壓力很大的話,其實可以考慮之後再修,畢竟這堂課很自由的,任何時間都可以來修。不過我的確是有考慮把作業翻成中文的,但目前還在考慮階段而已。
一開始的設備問題老師非常快速即時的解決,非常感謝。關於問題詳解的地方我覺得自己答錯是因為,我本來認為的錯誤在於ptr應該宣告成 int* ptr才能使用(也就是後面才能接&a),我的理解是 int*(沒有空格) ->宣告int指標;*ptr(沒有空格) ->去到ptr所指的紙標。
我以前的想法跟你一樣,就是那個星號讓我混淆超久。所以我在直播裡面說了,「在宣告的時候的星號是一個意思,取值的時候又是另外一個意思」,int* ptr跟 int *ptr 一模一樣。
然後取值的時候用的 *ptr 又是另外一個意思了,絕對不要把它跟宣告時候的星號想在一起,不然會比較難理解。
哈哈 答案宣布在這邊,會不會有人偷改答案呢! 指標真的不是很直覺,我還是需要一點時間來理解 QQ
加油QQ 打敗他你就海闊天空了
好啦,以上就是這週全部的問題,再次感謝大家的填表,我們下週見。
意見回饋列表:https://docs.google.com/spreadsheets/d/1P3ypgUubB-o8b4132xb3tmhu-_YGTP32Lj51Z4quPII/edit?usp=sharing
