成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

是時候改變自學編程方法了,這篇國外網友的教程被fast.ai創始人點贊

新聞 前端
Jeff提出了一套編程教學的新思路,他的想法在Haker News上獲得了廣大程序員的贊同。甚至連課程平臺fast.ai的創始人Jeremy Howard也來捧場:“這與我們平臺上深度學習的教學方法相似。”

 本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。

還記得你大學時的Java、C、Python等語言是怎么學習的嗎?讓我們打開經典教材和網絡課程看一下,幾乎都是下面的套路:

學習變量、數組、對象等專業詞匯;

查看編程示例,依葫蘆畫瓢寫代碼;

重復以上步驟,直到學完全部課程。

是时候改变自学编程方法了,这篇国外网友的教程被fast.ai创始人点赞

然而一位程序員Jeff Olsen卻認為,這種教學方式太過時了。

是时候改变自学编程方法了,这篇国外网友的教程被fast.ai创始人点赞

編程和計算機科學的關系,就如同烹飪和化學的關系一樣。即使沒搞清楚化學變化,一樣可以做出美味的煎蛋。

為此,他提出了一套編程教學的新思路,Jeff的想法在Haker News上獲得了廣大程序員的贊同。

甚至連課程平臺fast.ai的創始人Jeremy Howard也來捧場:“這與我們平臺上深度學習的教學方法相似。”

是时候改变自学编程方法了,这篇国外网友的教程被fast.ai创始人点赞

有網友指出,對于初學者而已,歸納推理能力的形成非常重要,

這種方法不僅對老師有意義,對于自學編程的人來說也不失為一種更好的學習方法。

改變教學方法

Jeff提出的教學方法叫做“預測至上”。先給學生一段簡單的代碼,讓他們預測會發生什么,然后從運行結果中學習語言的一些特性。

為此,Jeff提出了編程教學的5條標準,符合這些標準的教學課程才能將知識點傳達到位:

  1. 還不知道此語法的學生,能找出這段代碼的作用嗎?
  2. 這段代碼是否與以后可能遇到的代碼合理的相似?
  3. 命名的文字是否有意義,變量是否命名正確?
  4. 問題是否允許學生專注于代碼中最重要的部分?
  5. 代碼示例是否需要某些先驗知識,還是能讓所有人都能理解?

具體來說,就是不直接提概念,而是先提出一個難題供學生解決。

這個難題包含了當天的知識要點,然后要求學生根據這個難題創造一些新的代碼,在解決問題的過程中學習專業術語。

是时候改变自学编程方法了,这篇国外网友的教程被fast.ai创始人点赞

這不僅是一份給教師的指南,我們在學習編程時,最好也帶著問題去思考、學習代碼,而不是機械地去重復書中的示例,這樣才能真正掌握技能。

幾個例子

Jeff首先展示了編程最基本的Hello World程序,他的方法與傳統方法略有不同。我們先看這段代碼:

  1. name = "Tamara"  
  2. print("Hello" + name)  

運行以上程序會發生什么?

一般,我們憑借直覺能猜到運行結果中會出現Tamara,而實際的運行結果是HelloTamara,中間沒有空格。

接下來如何讓程序輸出帶空格的結果,必然要進行一輪調試。

在這個過程中,Jeff沒有說過字符串、變量等概念,但是在解決這個問題的過程中,我們已經掌握了print函數、字符串的拼接等一系列用法。

Jeff還舉了幾個例子,希望能糾正傳統教學課程里死板的內容。

1、條件判斷

傳統教學:

  1. if 1 > 2
  2.     print("1大于2"
  3. else
  4.     print("1不大于2"

在這個例子中,學生只能查看代碼,而不能通過使用代碼學會條件判斷。

Jeff建議把代碼改成:

  1. age = 15 
  2. if age >= 18
  3.     print("你可以購買R級電影票"
  4. else
  5.     print(f"再過{18 - age}年你才滿18歲"

終端中將輸出什么內容?你的回答應該是:再過3年你才滿18歲。

接著,Jeff丟出了幾個問題:

整段代碼里都沒有3,你怎么知道會出現“ 3年”?我們如何更改程序來顯示其他語句呢?縮進對我們的程序有什么作用。

通過這3問,學生知道了if-else語句的縮進格式,還知道如何用通過更改條件來實現其他的判斷。

2、數組

傳統教學:

  1. a = [327539
  2. print(a[2])  
  3. # returns 7 

在這個示例中,為何a[2]的結果是7,沒學過編程的人可能無法理解,甚至會產生錯誤的理解:哦,原來是輸出第2個數字后面的一個數字。

Jeff建議改成:

  1. favorite_foods = ["壽司""玉米粽子""披薩""烤雞肉"
  2. print(favorite_foods[2]) 

這段程序的輸出結果會是什么?我們如何打印出第一種食物、最后一種食物?如果把最后一句改成favorite_foods[10]會發生什么?

通過這個簡單的示例,學生可以了解數組、索引已經索引超出范圍的錯誤。

3、對象

傳統教學

  1. Class Dog: 
  2.     def __init__(self): 
  3.         pass 
  4.     def speak(self): 
  5.         print("woof!) 
  6.  
  7. Fido = Dog() 
  8. Fido.speak() 

這段代碼雖然用小狗做例子,看似生動有趣,其實存在著一些問題:

(1)狗并不存在于網絡空間中。
(2)使用9行代碼來創建和調用函數,實際可以更短。
(3)這種方法創建的所有狗都只有相同的功能,那為何還要創建一個類呢?

Jeff建議改成:

  1. user1 = User("Ty""Tdog@aol.com"16"Pa$$word"
  2. user2 = User("Sarai""SMendes@hotmail.com"15"Kangaroo!"
  3. user3 = User("Osu""Osu22@gmail.com"12"12345abcde"
  4. print(user2.age) 

提問環節:第一個用戶的電子郵件是什么?哪個用戶的密碼最弱?最后一行將輸出什么?

學生通過這種方式先學習了創建對象的方法,至于代碼中出現的User(),接下來就可以很自然地教他們如何創建類了。

最后附上Jeff博客的鏈接,希望他的方法對你學習編程有所幫助。 

 

責任編輯:張燕妮 來源: 量子位
相關推薦

2020-03-03 11:00:11

代碼開發工具

2020-03-16 10:34:30

開源技術 趨勢

2025-04-09 09:23:00

2012-04-10 17:40:49

Instagram創業

2013-08-05 10:57:21

編程學習

2023-12-01 14:50:57

AI破產

2020-02-03 15:46:26

編程語言PythonJava

2010-03-15 14:36:07

Python編程語言

2015-12-03 14:09:28

創始人成功創業

2019-08-26 10:53:38

Oracle 甲骨文Larry Ellis

2024-06-25 10:41:03

2010-05-04 16:22:45

Unix系統

2015-05-19 14:34:17

程序員編程語言

2013-03-06 14:33:57

2023-11-20 16:02:34

ChatGPT人工智能OpenAI

2013-04-08 10:38:00

2023-11-12 17:17:49

2023-10-04 09:46:35

2023-03-07 18:37:20

ChatGPTAI

2025-03-13 00:03:35

Rust函數Python
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品在线播放 | 国产精品123区 | 国产精品一区一区 | 91精品久久久久久久久久入口 | a级毛片基地 | 美日韩免费视频 | 国产三级 | 亚洲成人免费视频 | 四虎网站在线观看 | 国产免费又黄又爽又刺激蜜月al | 亚洲综合视频 | 欧美国产精品一区二区三区 | 不卡在线视频 | 免费 视频 1级 | 欧美精品一区二区在线观看 | 日韩在线免费播放 | 欧美激情视频一区二区三区在线播放 | 成人免费视频观看视频 | 国产精品第2页 | 欧美一区二区三区久久精品 | 日韩精品免费一区 | 日本三级电影在线免费观看 | 国产韩国精品一区二区三区 | 在线观看中文字幕 | 中文字幕亚洲一区二区va在线 | 香蕉久久久 | 人人人干| 日本亚洲欧美 | 岛国在线免费观看 | 99精品久久久久久久 | 中文成人在线 | 久久成人精品视频 | 久久99网| 久久久久国产精品一区 | 亚洲精品视频免费观看 | 天天精品综合 | 午夜久久av | 亚洲精品福利视频 | 四色永久| 亚洲一区二区在线 | 亚洲第一av |