C語言程式設計精髓

C語言程式設計精髓

C語言程式設計精髓是哈爾濱工業大學於2014年11月3日首次的慕課課程、國家精品線上開放課程。該課程授課教師為蘇小紅、趙玲玲、葉麟、張彥航、袁永峰、王甜甜、張羽、黃劍華、索瑩、陳建文、孫大烈等。截至2020年9月,據中國大學MOOC官網顯示,該課程已開課13次。

C語言程式設計精髓共15個教學單元,包括初識C語言從認識變數和常量開始、數字間的計算、鍵盤中的輸入和輸出、無處不在的抉擇、周而復始的循環之道、函式中分工與合作的藝術、探尋遞歸的奧秘、一堆數據的處理、C語言世界中的指針等。

基本介紹

  • 中文名:C語言程式設計精髓
  • 提供院校:哈爾濱工業大學
  • 類別:慕課、國家精品線上開放課程
  • 授課老師:蘇小紅、趙玲玲、葉麟、張彥航、袁永峰、王甜甜、張羽、黃劍華、索瑩、陳建文、孫大烈等
  • 開課時間:2014年11月3日(首次)
  • 授課平台:中國大學MOOC
課程性質,課程背景,課程定位,適應對象,開課信息,課程簡介,課程大綱,課前預備,所獲榮譽,教師簡介,

課程性質

課程背景

在20世紀80年代至21世紀初期的30年裡,90%的時間裡,C語言在計算機高級語言中占據較大地位,僅偶爾被Java超越。C語言作為一種計算機高級語言,其實並不高級,但正是這種“低級”現象給人們留下更多思考的機會。C語言程式設計精髓的開設讓學習者體驗“低級”和“高級”之間的關係。

課程定位

C語言程式設計是一門計算機語言入門的基礎核心課程。通過C語言程式設計精髓的學習,可以掌握一種語言的語法的同時,還能理解隱含在語法背後的思想,並初步具備靈活使用這些思想進行編寫程式解決實際問題的能力,為以後學習其他計算機高級語言奠定基礎。

適應對象

C語言程式設計精髓既面向零基礎的學生,也面向有一定編程基礎或學過程式設計基礎的學生。

開課信息

開課次數
開課時間
授課教師
學時安排
參與人數
第1次開課
2014年11月03日~2015年02月28日
蘇小紅、趙玲玲、葉麟、張彥航
1小時每周
20185
第2次開課
2015年03月01日~2015年07月18日
蘇小紅、趙玲玲、葉麟、張彥航、張春英、張有華、王甜甜、張羽、孫承傑、丹麗莉、鄭貴濱、侯俊英、李希然、劉秉權、張曉昆、姚立新、康鴻、郭萍、陳惠鵬、劉強、溫東新、傅忠傳
1.5小時每周
25335
第3次開課
2015年09月01日~2016年01月18日
蘇小紅、趙玲玲、葉麟、張彥航、張羽、郭萍
1~2小時每周
30203
第4次開課
2016年02月22日~2016年07月04日
蘇小紅、趙玲玲、葉麟、張彥航、王甜甜、張羽、孫大烈、郭萍、侯俊英、李希然、丹麗莉、劉秉權、傅忠傳、陳建文、黃劍華
25544
第5次開課
2016年08月29日~2017年01月14日
蘇小紅、趙玲玲、葉麟、張彥航
3小時每周
36998
第6次開課
2017年02月13日~2017年07月09日
2小時每周
33294
第7次開課
2017年08月28日~2018年01月03日
蘇小紅、趙玲玲、葉麟、張彥航、張學輝
28114
第8次開課
2018年02月05日~2018年06月30日
蘇小紅、趙玲玲、葉麟、張彥航
3小時每周
51279
第9次開課
2018年08月20日~2019年01月19日
58790
第10次開課
2019年02月11日~2019年06月30日
蘇小紅、趙玲玲、葉麟、張彥航、呂浩音、廖雪花
40042
第11次開課
2019年08月19日~2020年01月12日
蘇小紅、趙玲玲、葉麟、張彥航、楊梅、緱西梅、陳丹、任長虹、孟芸、楊全月
62923
第12次開課
2020年02月05日~2020年08月02日
蘇小紅、趙玲玲、葉麟、張彥航、袁永峰、張羽、朱聰慧、江俊君、丹麗莉、張朝霞、何鈺娟、何秀玲、陳麗芳、楊穎、傅忠傳、高文、南淑萍、孫玉星、鐘琦、王亞傑、呂浩音
123090
第13次開課
2020年08月10日~2020年12月28日
蘇小紅、趙玲玲、葉麟、張彥航、袁永峰、王甜甜、張羽、黃劍華、索瑩、陳建文、孫大烈
2小時每周
待定
表格內容參考資料

課程簡介

C語言程式設計精髓共15個教學單元。其中,第1單元介紹C語言的概念知識和變數和常量的基本內容;第2單元介紹數字(字元)間的計算和運算方式;第3至第8單元介紹鍵盤中的輸入和輸出、語句語法內容、選擇循環等邏輯進階、常見函式知識、遞歸和數組的內容;第9至第12單元介紹指針、字元串、指針的運算、結構體等內容;第13至第15單元介紹動態數組、數據存儲、檔案存取等內容。

課程大綱

第1周——初識C語言從認識變數和常量開始
練兵區——編程題——不計入總分
第10周編程題線上測試
1.1為什麼要學C語言(10分鐘)
第6周——函式:分工與合作的藝術
練兵區——編程題——不計入總分
1.2C語言集成開發環境簡介(16分鐘)
6.1函式定義、調用、參數傳遞和函式原型(35分半)
第11周——指針的孿生兄弟
1.3如何定義一個變數(10分鐘)
6.2函式封裝與程式的健壯性(23分鐘)
本周內容導讀
1.4變數的表數範圍和存儲形式(29分鐘)
6.3進階:斷言與防禦式編程(14分鐘)
11.1指針的運算(8分)
1.5宏常量與const常量(13分鐘)
6.4進階:代碼風格(22分鐘)
11.2指針和一維數組間的關係(14分)
本周課件、知識點小結和常見錯誤小結
本周課件、知識點小結和常見錯誤小結
11.3指針和二維數組間的關係(18分)
先修知識(有基礎者越過)——二進制和記憶體(11分半)
選學——結構化與模組化程式設計方法(41分)
11.4進階:指針數組及其套用(22分)
第1周測驗
第6周測驗
本周課件、知識點小結和常見錯誤小結
練兵區——單選題——不計入總分
練兵區——單選題——不計入總分
第11周測驗
練兵區——編程題——不計入總分
第6周編程題線上測試
練兵區——單選題——不計入總分
第2周——數字間的那些事兒,做點計算哈
練兵區——編程題——不計入總分
第11周編程題線上測試
2.1算術運算(20分鐘)
第7周——《盜夢空間》的邏輯:探尋遞歸的奧秘
練兵區——編程題——不計入總分
2.2賦值運算(15分鐘)
7.1從嵌套調用到遞歸調用(20分鐘)
第12周——海陸空齊上陣:又來了一堆數據
2.3增1和減1運算(17分鐘)
7.2遞歸是如何執行的(16分鐘)
本周內容導讀
2.4自動類型轉換(5分鐘)
7.3進階:尾遞歸是什麼鬼?(14分半)
12.1結構體類型(13分)
2.5強制類型轉換(7分半)
7.4變數的作用域(22分半)
12.2結構體與數組的嵌套(7分)
本周課件、知識點小結和常見錯誤小結
7.5進階:變數的生存期(33分半)
12.3結構體的相關計算和操作(19分)
第2周測驗
本周課件、知識點小結和常見錯誤小結
12.4向函式傳遞一堆不同類型的數據(28分半)
練兵區——單選題——不計入總分
選學——分治和疊代(33分半)
12.5枚舉類型和共用體類型有什麼用(25分)
練兵區——編程題——不計入總分
7.6進階:多檔案結構(7分半)
12.6進階:典型套用實例——洗髮牌模擬(20分)
第3周——從鍵盤中來,到鍵盤中去,開始輸入和輸出啦
第7周測驗
本周課件、知識點小結和常見錯誤小結
3.1數據的格式化螢幕輸出(15分鐘)
練兵區——單選題——不計入總分
第12周測驗
3.2數據的格式化鍵盤輸入(18分鐘)
第7周編程題線上測試
練兵區——單選題——不計入總分
3.3單個字元的輸入輸出(15分半)
練兵區——編程題——不計入總分
第12周編程題線上測試
3.4進階:用getchar()輸入數據存在的問題(含錯誤案例分析)(10分)
第8周——一堆數據來了,你準備好了嗎
練兵區——編程題——不計入總分
3.5進階:用%c輸入數據存在的問題(含錯誤案例分析)(10分)
本周內容導讀
第13周——原來記憶體也可以這么玩,我是指針我怕誰
本周課件、知識點小結和常見錯誤小結
8.1數組的定義和初始化(43分)
本周內容導讀
第3周測驗
8.2向函式傳遞一堆相同類型的數據(15分半)
13.1何為動態記憶體分配(26分)
練兵區——單選題——不計入總分
8.3查找算法——眾里尋他千百度(37分半)
13.2動態數組
第3周編程題線上測試
8.4排序算法——讓世界變得更有序(17分半)
13.3進階:常見的記憶體錯誤及其解決對策(52分半)
練兵區——編程題——不計入總分
本周課件、知識點小結和常見錯誤小結
本周課件、知識點小結和常見錯誤小結
第4周——無處不在的抉擇
第8周測驗
第13周測驗
4.1關係運算符和邏輯運算符(23分鐘)
練兵區——單選題——不計入總分
練兵區——單選題——不計入總分
4.2條件語句(14分鐘)
第8周編程題線上測試
練兵區——編程題——不計入總分
4.3開關語句——條條道路通羅馬(28分鐘)
練兵區——編程題——不計入總分
第14周——結構設計的藝術
4.4進階:數值溢出和精度損失問題(34分半)
第9周——指針:C語言世界中所向披靡的“金箍棒”
本周內容導讀
4.5進階:軟體測試與錯誤實例分析(20分半)
本周內容導讀
14.1數據的鏈式存儲——單向鍊表
本周課件、知識點小結和常見錯誤小結
9.1指針變數的定義、初始化及其解引用(19分)
14.2進階內容:其他數據結構簡介(21分)
選學——用raptor繪製選擇結構的流程圖(27分鐘)
9.2指針變數作函式參數(36分半)
本周課件
第4周測驗
9.3進階:函式指針及其套用(27分)
學習體會
練兵區——單選題——不計入總分
9.4進階:數組的趣味套用(50分)
第14周測驗
第4周編程題線上測試
本周課件、知識點小結和常見錯誤小結
練兵區——單選題——不計入總分
練兵區——編程題——不計入總分
第9周測驗
練兵區——編程題——不計入總分
第5周——周而復始的循環之道
練兵區——單選題——不計入總分
第15周——學會保存你的數據
5.1計數控制的循環(31分鐘)
第9周編程題線上測試
本周內容導讀
5.2遞推(33分鐘)
練兵區——編程題——不計入總分
15.1二進制檔案與文本檔案(14分)
5.3條件控制的循環(32分鐘)
第10周——字元串:C語言世界中的大力水手
15.2檔案的打開和關閉(8分)
5.4嵌套循環(17分鐘)
本周內容導讀
15.3格式化數據的檔案讀寫(5分)
5.5窮舉(39分鐘)
10.1字元串的存儲與表示(28分)
15.4字元和字元串的檔案讀寫(39分)
5.6進階:軟體調試與錯誤實例分析(27分鐘)
10.2字元串處理操作(15分)
15.5記憶體數據塊的檔案讀寫(7分)
本周課件、知識點小結和常見錯誤小結
10.3向函式傳遞和從函式返回字元串(26分)
15.6隨機讀寫與檔案緩衝(6分半)
選學——用raptor繪製循環結構的流程圖(25分鐘)
10.4進階:緩衝區溢出與緩衝區溢出攻擊(39分半)
本周課件、知識點小結和常見錯誤小結
第5周測驗
本周課件、知識點小結和常見錯誤小結
第15周測驗
練兵區——單選題——不計入總分
第10周測驗
練兵區——單選題——不計入總分
第5周編程題線上測試
練兵區——單選題——不計入總分
練兵區——編程題——不計入總分
(註:課程大綱排版從左到右列

課前預備

  • 學習資料
書名
作者
ISBN
出版時間
出版社
《C語言程式設計(第4版)》
蘇小紅等
978-7-04-051998-3
2019年8月
《C語言程式設計學習指導(第4版)》
蘇小紅等
978-7-04-052489-5
2019年10月
《C語言大學實用教程(第4版)》
蘇小紅等
978-7-121-30005-9
2017年1月
《C語言大學實用教程學習指導(第4版)》
蘇小紅等
978-7-121-30923-6
2017年3月
表格內容參考資料

所獲榮譽

2018年,該課程被中華人民共和國教育部認定為“國家精品線上開放課程”。
2019年,該課程被推薦至“學習強國”平台(該平台由中國共產黨中央委員會宣傳部主管)。

教師簡介

C語言程式設計精髓的授課教師團隊均來自哈爾濱工業大學。其中,教學職稱為教授的有蘇小紅、黃劍華;教學職稱為副教授的有張彥航、袁永峰、王甜甜、索瑩、孫大烈;教學職稱為講師的有趙玲玲、葉麟、張羽、陳建文。

相關詞條

熱門詞條

聯絡我們