編程語言學習概要與學習方法

啓程——本文逐漸完善中...


 

三個普適性主題:系統的問題解決方式,抽象能力,以及將計算思維作爲思考世界的一種方式。

 

應當學會以下技能

初級技能

  • 使用語言進行編程與計算

  • 學會系統性地組織編寫調試中等規模的程序;

  • 理解算法複雜度

  • 將模糊的問題轉化爲明確的計算方法,以此解決問題,並對這個過程有深刻的理解;

  • 掌握一些有用的算法以及問題簡化技術

中級技能

  • 對於那些很難得到封閉解的問題,知道如何使用隨機性和模擬技術進行清晰闡述;

  • 學會使用計算工具(包括簡單的統計,可視化以及機器學習工具)對於數據進行理解與建模。

編程本身就是一件非常困難的事情。正如那句名言所說:“在幾何中,沒有爲國王鋪設的大道”。對於編程而言,沒有捷徑可走。想學會的話,得練,得多練,得用心練!

計算機只能用來做兩件事,執行計算與保存結果,但是它把這兩件事做到了極致。常見的臺式機與筆記本電腦每秒鐘大概可以執行十億次計算。許多問題被證明可以通過計算機來解決(當然也有不能通過計算機來解決的)。

希望大家可以熟練地將計算思維應用到解決工作學習生活的問題中。

 

所有的知識可以被歸結爲兩類:陳述性知識,程序性知識。

陳述性知識由對事實的描述組成。

程序性知識說明如何做,描述了信息演繹的過程。

 

世界上目前存在幾百種編程語言,沒有哪一門語言是最好的(儘管你可以數出一些最差的)。每門語言都有自己的長處。

每種編程語言都有基本結構,語法,靜態語義,語義。

我們舉個栗子:就拿英語來說,它的基本結構是單詞,語法則是來描述那些單詞放在一起可以組成通順的句子,靜態語義則定義了哪些句子是有意義的,語義則定義了句子的實際含義。

下面是更加詳細的解說;

英語的基本結構,比如:

1 名詞 noun n. student 學生 6 數詞 numeral num. three 三
2 代詞 pronoun pron. you 你 7 冠詞 article art. a 一個
3 形容詞 adjective adj. happy 高興的 8 介詞 preposition prep. at 在...
4 副詞 adverb adv. quickly 迅速地 9 連詞 conjunction conj. and 和
5 動詞 verb v. cut 砍、割 10 感嘆詞 interjection interj. oh 哦

英語的語法定義了字符和符號組成句子的正確形式,比如:

<代詞><系動詞><形容詞>的形式在語法上是有效的,而<名詞><名詞><名詞>這樣的句子形式在語法上是不對的。

 

英語的靜態語義定義了哪些語法有效的句子是有意義的,比如:

英語中I are big.這個句子符合語法<代詞><系動詞><形容詞>的形式,但是它不是有效的句子,因爲are是複數形式,而代詞I是單數,這在靜態語義上是無效的。

 

語義爲每個語法正確又沒有靜態語義錯誤的句子關聯一個含義,比如:

在自然語言中許多句子是模棱兩可的。比如句子I cannot praise this student too highly可以是一種讚揚也可以是一種批評,而編程語言是被精心設計過的,所以每個語言都只有一種確切的含義。

 

[1]python編程導論第二版,John V.Guttag著,陳光欣譯

[2]Introduction to Programming in Python : An Interdisciplinary Approach

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章