自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何用 Hedy 教人編程

開(kāi)發(fā) 后端
Hedy 是一種專門(mén)為編碼教學(xué)而設(shè)計(jì)的新語(yǔ)言,它通過(guò)在語(yǔ)言中將復(fù)雜性分成多個(gè)關(guān)卡來(lái)解決語(yǔ)法復(fù)雜性的問(wèn)題。Hedy 沒(méi)有馬上提供語(yǔ)言的全部功能,而是采取循序漸進(jìn)的方式,隨著學(xué)生在 Hedy 的學(xué)習(xí)的通關(guān),慢慢變得更加復(fù)雜。

[[392615]]

Hedy 是一種專門(mén)為教人編程而設(shè)計(jì)的新型編程語(yǔ)言。

學(xué)習(xí)編程既要學(xué)習(xí)編程邏輯,又要學(xué)習(xí)特定編程語(yǔ)言的語(yǔ)法。我在大學(xué)上第一堂編程課的時(shí)候,教的語(yǔ)言是 C++。第一個(gè)代碼例子是基本的 “Hello World” 程序,就像下面的例子。

  1. #include <iostream>
  2.  
  3. int main() {
  4. std::cout << "Hello World!";
  5. return 0;
  6. }

老師直到幾節(jié)課后才會(huì)解釋大部分的代碼。我們的期望是,我們只需輸入代碼,并最終了解為什么需要這些東西以及它們?nèi)绾喂ぷ鳌?/p>

C++(以及其他類似的語(yǔ)言)的復(fù)雜語(yǔ)法是為什么 Python 經(jīng)常被建議作為一種更容易的編程教學(xué)語(yǔ)言。下面是 Python 中的同一個(gè)例子:

  1. print("Hello World!")

雖然 Python 中的 “Hello World” 基礎(chǔ)例子要簡(jiǎn)單得多,但它仍然有復(fù)雜而精確的語(yǔ)法規(guī)則。print 函數(shù)需要在字符串周圍加括號(hào)和引號(hào)。這對(duì)于沒(méi)有編程經(jīng)驗(yàn)的人來(lái)說(shuō),還是會(huì)感到困惑。Python 比 C++ 少了 “我以后再解釋” 的語(yǔ)法問(wèn)題,但還是有一些。

Hedy 是一種專門(mén)為編碼教學(xué)而設(shè)計(jì)的新語(yǔ)言,它通過(guò)在語(yǔ)言中將復(fù)雜性分成多個(gè)關(guān)卡來(lái)解決語(yǔ)法復(fù)雜性的問(wèn)題。Hedy 沒(méi)有馬上提供語(yǔ)言的全部功能,而是采取循序漸進(jìn)的方式,隨著學(xué)生在 Hedy 的學(xué)習(xí)的通關(guān),慢慢變得更加復(fù)雜。隨著關(guān)卡的進(jìn)展,該語(yǔ)言獲得了新的功能,最終變得更像 Python。目前有七個(gè)關(guān)卡,但更多的關(guān)卡正在計(jì)劃中。

在第 1 關(guān),Hedy 程序除了打?。?code>print)一條語(yǔ)句(不需要引號(hào)或括號(hào)),提出(ask)一個(gè)問(wèn)題,并回傳(echo)一個(gè)答案外,不能做任何事情。第 1 關(guān)沒(méi)有變量,沒(méi)有循環(huán),結(jié)構(gòu)極精簡(jiǎn)?;貍鞯墓ぷ髟韼缀鹾妥兞恳粯樱会槍?duì)用戶的最后一個(gè)輸入。這可以讓學(xué)生對(duì)基本概念感到舒適,而不必一下子學(xué)習(xí)所有的東西。

這是一個(gè)第 1 關(guān)的 Hedy “Hello World” 程序:

  1. print Hello World

第 2 關(guān)引入了變量,但由于 print 函數(shù)沒(méi)有使用引號(hào),可能會(huì)出現(xiàn)一些有趣的結(jié)果。如果用來(lái)存儲(chǔ)一個(gè)人的名字的變量是 name,那么就不可能打印輸出 Your name is [name],因?yàn)?nbsp;name 的第一次使用(本意是字符串)和第二次使用(是變量)都被解釋為變量。如果將 name 設(shè)置為(is) John Doe,那么 print Your name is name. 的輸出就會(huì)是 Your John Doe is John Doe。雖然這聽(tīng)起來(lái)很奇怪,但這是一個(gè)引入變量概念的好方法,這恰好是第 3 關(guān)中增加的一個(gè)功能。

第 3 關(guān)要求在字符串周圍加引號(hào),這使得變量的功能就像在 Python 中一樣?,F(xiàn)在可以輸出與變量相結(jié)合的字符串,做出復(fù)雜的語(yǔ)句,而不用擔(dān)心變量名和字符串中的單詞之間的沖突。這個(gè)級(jí)別取消了 “回傳”(echo)函數(shù),這看起來(lái)確實(shí)是一個(gè)可能會(huì)讓一些學(xué)習(xí)者感到沮喪的東西。他們應(yīng)該使用變量,這是更好的代碼,但如果一個(gè) ask/echo 代碼塊變成無(wú)效語(yǔ)法,可能會(huì)讓人感到困惑。

第 4 關(guān)增加了基本的 if/else 功能。學(xué)生可以從簡(jiǎn)單的問(wèn)/答代碼轉(zhuǎn)向復(fù)雜的交互。例如,一個(gè)問(wèn)“你最喜歡的顏色是什么?”的提示可以根據(jù)用戶輸入的內(nèi)容接受不同的回復(fù)。如果他們輸入綠色,回答可以是“綠色!這也是我最喜歡的顏色。”如果他們輸入其他的東西,回復(fù)可以是不同的。if/else 塊是一個(gè)基本的編程概念,Hedy 引入了這個(gè)概念,而不必?fù)?dān)心復(fù)雜的語(yǔ)法或過(guò)于精確的格式。

第 5 關(guān)有一個(gè) repeat 函數(shù),在現(xiàn)有的功能上增加了一個(gè)基本的循環(huán)。這個(gè)循環(huán)只能多次重復(fù)同一個(gè)命令,所以它沒(méi)有 Python 中的循環(huán)那么強(qiáng)大,但它讓學(xué)生習(xí)慣了重復(fù)命令的一般概念。這是多介紹了一個(gè)編程概念,而不會(huì)用無(wú)謂的復(fù)雜來(lái)拖累。學(xué)生們可以先掌握概念的基礎(chǔ)知識(shí),然后再繼續(xù)學(xué)習(xí)同一事物的更強(qiáng)大、更復(fù)雜的版本。

在第 6 關(guān),Hedy 現(xiàn)在可以進(jìn)行基本的數(shù)學(xué)計(jì)算。加法、減法、乘法和除法都支持,但更高級(jí)的數(shù)學(xué)功能不支持。不能使用指數(shù)、模數(shù)或其他任何 Python 和其他語(yǔ)言能處理的東西。目前,Hedy 還沒(méi)有更高關(guān)卡的產(chǎn)品增加更復(fù)雜的數(shù)學(xué)功能。

第 7 關(guān)引入了 Python 風(fēng)格的縮進(jìn),這意味著 repeat 可以處理多行代碼。學(xué)生在這之前都是逐行處理代碼,但現(xiàn)在他們可以處理代碼塊。這個(gè) Hedy 關(guān)卡與非教學(xué)型編程語(yǔ)言能做的事情相比還是有很大的差距,但它可以教會(huì)學(xué)生很多東西。

開(kāi)始學(xué)習(xí) Hedy 最簡(jiǎn)單的方法是訪問(wèn) Hedy 網(wǎng)站上的 課程,目前有荷蘭語(yǔ)、英語(yǔ)、法語(yǔ)、德語(yǔ)、葡萄牙語(yǔ)和西班牙語(yǔ)。這樣一來(lái),任何有網(wǎng)頁(yè)瀏覽器的人都可以進(jìn)入學(xué)習(xí)過(guò)程。也可以從 GitHub 下載 Hedy,并從命令行運(yùn)行解釋器,或者運(yùn)行 Hedy 網(wǎng)站的本地副本及其交互式課程?;诰W(wǎng)頁(yè)的版本更容易使用,但網(wǎng)頁(yè)版本和命令行版本都支持運(yùn)行針對(duì)不同復(fù)雜程度的 Hedy 程序。

Hedy 永遠(yuǎn)不會(huì)與 Python、C++ 或其他語(yǔ)言競(jìng)爭(zhēng),成為現(xiàn)實(shí)世界項(xiàng)目編碼的首選語(yǔ)言,但它是編碼教學(xué)的絕佳方式。作為學(xué)習(xí)過(guò)程的一部分,學(xué)生編寫(xiě)的程序是真實(shí)的,甚至可能是復(fù)雜的。Hedy 可以促進(jìn)學(xué)生的學(xué)習(xí)和創(chuàng)造力,而不會(huì)讓學(xué)生在學(xué)習(xí)過(guò)程中過(guò)早地被過(guò)多的信息所迷惑。就像數(shù)學(xué)課一樣,在進(jìn)入微積分之前很久要從學(xué)習(xí)計(jì)數(shù)、相加等開(kāi)始(這個(gè)過(guò)程需要數(shù)年時(shí)間),編程也不必一開(kāi)始就對(duì)編程語(yǔ)言的語(yǔ)法問(wèn)題“我稍后再解釋”、精確地遵循這些語(yǔ)法問(wèn)題,才能產(chǎn)生哪怕是最基本的語(yǔ)言程序。 

 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2023-08-09 09:00:00

樹(shù)莓派物聯(lián)網(wǎng)

2023-08-10 06:51:39

人工智能學(xué)習(xí)模型安全

2011-08-08 15:25:42

iPhone SQLite BLOB

2013-09-04 10:54:39

jQueryAngularJS編程思想

2013-12-27 09:00:27

編程語(yǔ)言

2021-11-01 22:36:04

JavaScript

2014-03-11 15:32:25

2017-04-11 17:22:57

編程程序員語(yǔ)言

2021-04-02 06:35:49

Bash讀寫(xiě)文件Linux

2018-03-27 18:12:12

PythonHTML

2011-06-03 10:06:57

MongoDB

2011-03-15 09:10:47

iptablesNAT

2020-07-10 09:49:53

數(shù)據(jù)清理數(shù)據(jù)分析查找異常

2011-03-15 14:26:23

iptablesNAT

2023-02-08 07:09:40

PythonChatGPT語(yǔ)言模型

2017-05-31 14:55:19

2011-07-13 14:02:42

OracleExcel

2009-05-07 08:13:06

2018-05-17 10:05:24

運(yùn)行iPadPython

2019-11-28 09:23:17

Python機(jī)器學(xué)習(xí)數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)