CSI講義11:ThinkC指南

《How to Think Like a Computer Scientist- C version》,Allen B. Downey,C-Version by Thomas Scheffler. (簡記為ThinkC)

ThinkC是大0計算機本科生的自學教材官研,篇幅不長婆殿,其目的是讓閱讀者對程序設計有初始的認識丛肢,了解C語言的基本特性围肥,為后續(xù)課程打下基礎。本文試圖指出初次閱讀者普遍存在的問題蜂怎,并給出相應對策穆刻。

如果你已經是大一新生了,其實杠步,嗯.....建議還是假裝自己是個大0青年氢伟,花點時間把ThinkC看完。不然篮愉,你怎么能夠安靜地度過漫長的新生教育周呢腐芍?

閱讀計劃

ThinkC全書130頁左右差导,共九章加兩個附錄(附錄B無需閱讀试躏,附錄A也可忽略)。執(zhí)行能力強的學生设褐,大概七天可以完全閱讀完颠蕴。按以下計算,如果要求在一個月之內完成助析,不算要求高犀被。也就是說,一周學兩章左右外冀,也就是25頁寡键。一周工作五天,每天兩小時雪隧,也就是每小時看2.5頁N餍!脑沿!這是驚人的慢速度藕畔,太可怕。這樣慢其實是學不到東西的庄拇。

所以注服,這樣計劃好了:分兩周閱讀韭邓,每周五天,每天兩小時:

  • 第一周溶弟,前四章女淑,1- 48頁
  • 第二周,后五章辜御,49-130頁

閱讀策略

簡單給以下建議:
1诗力、閱讀必須快,按計劃執(zhí)行我抠,保持強有力的執(zhí)行力苇本。
2、閱讀過程中必須動手菜拓,準備好相關的資源瓣窄,見下面內容。
3纳鼎、ThinkC是關于Know How的書俺夕,而不是Know Why的書,所以贱鄙,你只需要(或者大部分時間只需要)按規(guī)定動作去做劝贸,而不要問太多為什么。

ThinkC只是入門逗宁,只是一個簡單的概要映九,目的就是讓大家對編程有基本的認識,所以瞎颗,不要指望在這里能學到非常高深的東西件甥。這樣你們當然不能在這里停留太久。否則哼拔,只能說明你的能力不強引有,或者心不在焉。

最后一個建議:閱讀時不要查字典>胫稹F┱!

閱讀之前的準備

1檬姥、個人電腦一臺曾我,Linux系統(tǒng)尤其好,Windows也可以穿铆。
2您单、安裝基本的軟件,或者按照這里的建議荞雏。Linux系統(tǒng)可免以上安裝虐秦。

心態(tài)上的準備:不理解應該是常態(tài)平酿,看不懂很正常。閱讀這本書不是因為你容易懂才讓你讀悦陋,而且這本書根本不需要你理解蜈彼,而是讓你照做。

閱讀內容概要

C語言只有很簡單的語法俺驶,有比較復雜的數據幸逆。語法是強調什么樣的程序才是正確的程序。每一個程序都有特定的目標:輸入數據暮现,處理數據还绘,輸出結果,因此數據是程序中重要的元素栖袋。接下來我會提示大家拍顷,什么是語法,什么是數據塘幅。

1 The way of the program

告訴你什么是編程昔案,編程的基本過程,如何修改程序电媳,然后一些術語踏揣。運行你人生中第一個程序:Hello World!

如果你這個兩小時也看不完匾乓,請做這樣的事情:
1捞稿、劃出不理解的語句
2、找出不理解的單詞
3钝尸、無論如何運行一次“Hello World括享!”

然后,把自己打一頓珍促,接著看下一章。因為剩愧,這里沒有東西需要你理解了猪叙。這里沒有語法也沒有數據!

2 Variables and types

這一章介紹最簡單的數據仁卷。變量(Variable)存放不同類型(Types)的數據穴翩。比如,程序需要處理整數锦积,那么定義整數類型的變量芒帕,并給變量一個名稱:
int number;

3 Function

Function是結構化程序設計的核心元素。簡單而言丰介,結構化就是把程序分割成不同的模塊背蟆,Funtion(函數)就是相對獨立的模塊鉴分。

4 Conditionals and recursion

所有的程序只有三種類型的語句:順序執(zhí)行、條件分支與迭代運行带膀。

所謂Conditionals就是讓程序在特定的情況下執(zhí)行特定的語句志珍。至于遞歸,請看我的解釋垛叨。

5 Fruitful functions

對第三章函數的進一步擴展伦糯,強調函數的返回值。

6 Iteration

所謂迭代就是讓程序在特定的語句上重復執(zhí)行嗽元。

7 Arrays

以上內容基本都是關于“語法”敛纲,而最后三章重點關注數據結構,即不簡單稱為數據剂癌,而讓數據有特定的結構载慈。數組則是C語言中最基本的也是非常重要的一種數據結構。

要理解數組不難珍手。想象你要存儲一批同等類型的數據(或者想象一批大小相同的蘋果)办铡,那么就需要一批同等類型的盒子。如何訪問盒子里面的數據呢琳要?最簡單的方法就是記住盒子的編號寡具,這里記為數組下標。

8 Strings and things

略稚补!

9 Structures

略童叠!

為什么略?因為课幕,如果你都很快看到第8第9章厦坛,那么這里還有什么值得講的呢?如果你都看不到乍惊,那么我講來干什么呢杜秸?

如何兩個小時講完ThinkC

教學形式

老師講解;助教敲代碼润绎,投影撬碟;同學們立即在自己的電腦上運行程序;另一個助教巡視課堂莉撇,指出錯誤呢蛤,幫助把程序運行起來。

教學內容

1棍郎、Hello World其障,講解一個程序的完成編寫、執(zhí)行過程涂佃;
2励翼、變量:int蜈敢、char、double抚笔,輸入扶认、輸出;
3殊橙、條件判斷:給定一個整型變量辐宾,判斷是偶數還是奇數;
4膨蛮、循環(huán):整數累加器叠纹、階乘;
5敞葛、函數:把累加器誉察、階乘寫成函數形式;
6惹谐、遞歸:階乘持偏、Fibonacci數列;
7氨肌、數組:數組的初始化鸿秆,數組中數值的累加;
8怎囚、二維數組:數組初始化卿叽,矩陣的加法;

結構體恳守、指針考婴、鏈表與二叉樹可作為一次授課內容;時間2017年9月9日催烘。

授課手記

老師一人沥阱,助教2人,學生14人颗圣。
時間:9:30 - 12:00
地點:131實驗室
效果:學生們普遍反映可以接受教學內容喳钟;
待改進:許多學生沒有做好學習的準備,學生缺乏主動性在岂,電腦沒有安裝編譯器等。
感想:這種授課方式可以全面展開蛮寂,前提是學生們要主動蔽午。

小結

看ThinkC一定要快,要快酬蹋,要快及老!這是一本膚淺的教你如何編程的書抽莱,不是一本高深的教你編程理論的書。知道什么是程序嗎骄恶?

程序 == 算法 + 數據結構

你看完ThinkC食铐,學了什么算法,學了什么數據結構僧鲁?沒有...... 那你學編程了嗎虐呻?學了,可惜寞秃,你寫的不是程序(Programs)斟叼,只是代碼(Codes)。

路很長......

路這么長春寿,為什么你不能起早一點朗涩,趕得快一點......

20170904

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市绑改,隨后出現的幾起案子谢床,更是在濱河造成了極大的恐慌,老刑警劉巖厘线,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件识腿,死亡現場離奇詭異,居然都是意外死亡皆的,警方通過查閱死者的電腦和手機覆履,發(fā)現死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來费薄,“玉大人硝全,你說我怎么就攤上這事±懵眨” “怎么了伟众?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長召廷。 經常有香客問我凳厢,道長,這世上最難降的妖魔是什么竞慢? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任先紫,我火速辦了婚禮,結果婚禮上筹煮,老公的妹妹穿的比我還像新娘遮精。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布本冲。 她就那樣靜靜地躺著准脂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪檬洞。 梳的紋絲不亂的頭發(fā)上狸膏,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機與錄音添怔,去河邊找鬼湾戳。 笑死,一個胖子當著我的面吹牛澎灸,可吹牛的內容都是我干的院塞。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼性昭,長吁一口氣:“原來是場噩夢啊……” “哼拦止!你這毒婦竟也來了?” 一聲冷哼從身側響起糜颠,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤汹族,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后其兴,有當地人在樹林里發(fā)現了一具尸體顶瞒,經...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年元旬,在試婚紗的時候發(fā)現自己被綠了榴徐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡匀归,死狀恐怖坑资,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情穆端,我是刑警寧澤袱贮,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站体啰,受9級特大地震影響攒巍,放射性物質發(fā)生泄漏。R本人自食惡果不足惜荒勇,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一柒莉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧沽翔,春花似錦常柄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至哨颂,卻和暖如春喷市,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背威恼。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工品姓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人箫措。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓腹备,卻偏偏與公主長得像,于是被迫代替她去往敵國和親斤蔓。 傳聞我的和親對象是個殘疾皇子植酥,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內容

  • 第一部分 打好基礎 Laying the Foundation 第一章 歡迎進入軟件構建的世界 Welcome t...
    白樺葉閱讀 4,614評論 0 17
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現弦牡,斷路器友驮,智...
    卡卡羅2017閱讀 134,637評論 18 139
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,135評論 30 470
  • untold可破
    白癡哈閱讀 165評論 0 0
  • 今晨六點驚醒卸留,到窗臺前站了會。天未明椭豫,對面樓上數間實驗室已經亮了燈耻瑟。雨還在下,沒看到意料中的初雪赏酥。我扶著腦袋忍住洪...
    禿濎閱讀 426評論 0 0