投資、科技、生活


Stanford Code in Place線上Python入門課程 - Week 1

紮實的Stanford程式課 - 第一週

隨著美國疫苗的大規模施打、解封,2021年秋天學生將正式回歸校園,基於Stanford CS106A Programming Methodologies的免費程式線上課程 - Stanford Code in Place 2021 也很可惜的落幕了。 

整理一下課程學習資源,包含YouTube教學影片、課程講義、部分程式碼,希望能幫助對從頭開始學習程式、Python程式語言入門有興趣,或原本自學但希望能更有系統的學習,更或者存粹只是想看看全美Computer Science排名#1 的入門課程是怎麼教學的朋友。

過去雖然有多年程式經驗,對於Python也花了一些時間自學,但始終覺得不太能掌握寫出好程式的要點,透過Code in Place的課程成功建立了正確的觀念,對於後續再深入學習與應用有很大的幫助,因此希望藉由分享幫助有相同需求的朋友。

自己上完整個課程的感覺是課程安排很有邏輯,遠比自己學習要有效率很多,另外教授也會傳達很多寫出好的程式架構的建議,當然要學好還是需要不斷練習與繼續學習,誠心推薦給大家!

Code in Place Lesson 1,右上角分別是老師Chris Piech、Mehran Sahami


Lesson 1: Welcome to Karel

學習目標

Karel是Stanford研究生Rich Pattis於1970年代設計的一個簡單機器人,以簡化的程式環境來幫助學生學習程式概念。Lesson 1 的目的在了解Code in Place課程、授課老師、助教,學習良好的程式撰寫方式。

Code in Place Lesson 1 學習要點

YouTube課程

   Lecture 1-1: Welcome 

   Lecture 1-2: About Code in Place

   Lecture 1-3: Meet Karel

延伸閱讀 Karel Reader (包含可線上運行的Karel程式)

   Chapter 1: Introducting Karel the Robot

   Chapter 2: Programming Karel

   Chapter 3: Defining New Functions

   Chapter 4: Decomposition

附屬資料

作業Assignments

學習程式最有效的就是不斷的練習,Code in Place的作業與課程練習題都是透過Ed平台運行,電腦只需要瀏覽器就可執行Karel、Python程式,無需在電腦端另外安裝Python程式,但是Ed平台需要帳號,所以無法提供給大家使用。

課程也提供Assignment作業的Python檔案下載,提供PyCharm安裝介紹以及在PyCharm上執行的環境,需要的朋友可以在上方的附屬資料處下載。如果PyCharm上執行Karel還有困難,也可以在延伸閱讀Karel Reader網頁上直接執行Karel程式。

因為Q1~Q4屬於比較基礎練習,在此就不介紹,後面在Lesson 3有三個問題可以練習看看,特別是Q7,在只能使用Karel認識的function限制下,不能使用一般程式的variables來計算,對於培養利用top down、decomposition來解決問題,還頗具挑戰性的喔,也符合教授說的開發程式大約80%時間用在思考如何解決問題,只有20%時間在實際的coding。




Lesson 2: Control Flow

學習目標:for loop, while loop, if statement 流程控制

Code in Place Lesson 2: Control Flow

YouTube課程

   Lecture 2-1: Karel Recap

   Lecture 2-2: For loops

   Lecture 2-3: While loops

   Lecture 2-4: If statement

   Lecture 2-5: SteepleChase Program

點我下載課程講義

延伸閱讀 (包含可線上運行的Karel程式)

   Chapter 5: For Loops

   Chapter 6: While Loops

   Chapter 7: Conditionals





Lesson 3: Decomposition (aka Refinement)

學習目標:以top down方式,透過decomposition分解的過程來解決問題

Code in Place Lesson 3: Decomposition

YouTube課程:

   Lecture 3-1: Intro

   Lecture 3-2: Morning

   Lecture 3-3: Mountain

   Lecture 3-4: Rhoomba

   Lecture 3-5: WordSearch

點我下載課程講義

延伸閱讀

   Chapter 8: Refinement

作業Assignments

   提供Q5、Q6、Q7等三個作業問題

Q5: Ramp Climbing Karel

Lesson 3, Assignment Q5,資料來源:Ed, Code in Place 2021


Q6: Stone Mason Karel

Lesson 3, Assignment Q6,資料來源:Ed, Code in Place 2021

Q7: Midpoint(略具挑戰性的題目,有各種不同解法)

Lesson 3 Assignment Q7,資料來源:Ed, Code in Place 2021

未完待續 ...

延伸閱讀:從Stanford學習免費、但值一萬美元的程式設計課




0 comments