-
c程序設計
(西北工業大學提供的慕課)
鎖定
- 中文名
- c程序設計
- 類 別
- 慕課、國家精品課
- 提供院校
- 西北工業大學
- 授課平台
- 中國大學MOOC
- 開課時間
- 2015年10月8日(首次)
- 授課教師
- 姜學鋒、劉君瑞、張秀偉、汪芳、周果清、魏英等
c程序設計課程性質
c程序設計課程定位
c程序設計課程是大學計算機教育的核心課程,它既是各類專業技術的應用基礎,又是各種實踐環節的軟件工具,更是課程設計、學科競賽、畢業設計、創新創業、創客科技等活動的重要平台。程序編程能力不僅是學習者進一步專業深造的潛力體現,也是創新人才的重要指標。
[1]
c程序設計適應對象
c程序設計開課信息
開課次數 | 開課時間 | 授課教師 | 學時安排 | 參與人數 |
---|---|---|---|---|
第1次開課 | 2015年10月08日~2015年12月31日 | 姜學鋒、劉君瑞、魏英、張秀偉 | 3-5小時每週 | 14067 |
第2次開課 | 2016年03月07日~2016年07月31日 | 4小時每週 | 10439 | |
第3次開課 | 2016年10月08日~2017年01月14日 | 姜學鋒 | 8665 | |
第4次開課 | 2017年02月20日~2017年05月31日 | 12176 | ||
第5次開課 | 2017年09月25日~2017年12月31日 | 姜學鋒、劉君瑞、劉君瑞、張秀偉、魏英、周果清 | 5小時每週 | 4863 |
第6次開課 | 2018年02月26日~2018年05月31日 | 姜學鋒、劉君瑞、張秀偉 | 4小時每週 | 8608 |
第7次開課 | 2018年09月01日~2019年01月08日 | 姜學鋒、劉君瑞、劉君瑞、張秀偉、魏英、周果清 | 10399 | |
第8次開課 | 2019年02月25日~2019年06月09日 | 6184 | ||
第9次開課 | 2019年09月01日~2019年12月31日 | 7286 | ||
第10次開課 | 2020年02月20日~2020年07月01日 | 姜學鋒、劉君瑞、張秀偉 | 4512 | |
第11次開課 | 2020年08月24日~2021年01月09日 | 姜學鋒、劉君瑞、張秀偉、汪芳、周果清、魏英 | 待定 |
c程序設計課程簡介
該課程共48講,分別講述了計算機的基本工作原理、體系結構;計算機中信息的表示和存儲方法;程序語言、算法、程序設計的概念和特點;C程序的基本語法、結構和開發步驟;C語言支持的數據類型和數據描述方法;數值型數據的運算;邏輯型數據的運算;賦值運算符的使用、混合運算以類型轉換的規則;輸入函數scanf函數的使用以及常見的輸入格式控制;函數的嵌套和遞歸調用;文件系統的基本概念,以及操作文件的常用函數等知識。
[1]
c程序設計課程大綱
第1講 瞭解計算機的工作原理 課時 1.計算機系統的組成、用途各異的計算機 2.指令與計算機程序、計算機中的數 課後測驗:瞭解計算機的工作原理 第2講 信息在計算機中的表示 課時 1.進制數的轉換 2.數值數據、字符數據、其他數據的表示與存儲 課後測驗:信息在計算機中的表示 第3講 編程的理論基礎 課時 1.程序語言、計算機問題求解的基本特點 2.計算機算法及其表示、程序設計技術 課後測驗:編程的理論基礎 第4講 編寫第一個C程序 課時 1.C語言的歷史、C語言基本詞法、編寫第1個C程序 2.編寫簡單的程序、C程序基本結構、開發步驟、編碼風格 課後測驗:編寫第一個C程序 第5講 將簡單數據引入C程序中 課時 1.數據類型、常量 2.變量、類型定義的修飾 資料片:國際大學生程序設計競賽――2014西安賽區:歡迎 資料片:國際大學生程序設計競賽――競賽規則 課後測驗:將簡單數據引入C程序中 第6講 數值數據的運算與處理 課時 1.運算符與表達式、算術運算 2.自增自減運算、位運算 課後測驗:數值數據的運算和處理 第7講 邏輯數據的運算與處理 課時 1.關係運算、邏輯運算 2.用布爾代數簡化邏輯式子、條件運算、其他運算、常量表達式 課後測驗:邏輯數據的運算和處理 第8講 賦值和類型轉換 課時 1.賦值運算符、隱式類型轉換 2.混合運算的風險控制、顯式類型轉換 資料片:AlphaGo 課後測驗:賦值與類型轉換 第9講 編寫程序語句 課時 1.編寫簡單語句、複合語句、註釋,語句的寫法 2.編程實現單個字符輸入輸出 資料片:那些年的編程快手們――用代碼將夢想照進現實 課後測驗:編寫程序語句 第10講 編程實現簡單數據的輸出 課時 1.printf函數和輸出格式控制(1) 2.printf函數和輸出格式控制(2) 課後測驗:編程實現簡單數據的輸出 第11講 編程實現簡單數據的輸入 課時 1.scanf函數和輸入格式控制(1) 2.scanf函數和輸入格式控制(2) 課後測驗:編程實現簡單數據的輸入 第12講 編程實現選擇分支 課時 1.程序順序結構和跳轉結構 2.程序選擇結構 課後測驗:編程實現選擇分支 第13講 編程實現嵌套的選擇分支 課時 1.選擇結構的嵌套 2.程序如何應用選擇結構 資料片:算法的舞蹈――冒泡排序Bubble Sort 課後測驗:編程實現嵌套的選擇分支 第14講 編程實現循環 課時 1.while循環、循環三要素 2.循環不變式、do和for循環 資料片:算法的舞蹈――選擇排序Select Sort 課後測驗:編程實現循環 第15講 循環的終止、加快和嵌套 課時 1.終止、加快、嵌套循環 2.編寫計數型、條件型循環,循環程序時間性能分析 資料片:算法的舞蹈――插入排序Insert Sort 課後測驗:循環的終止、加快和嵌套 第16講 編程實現枚舉算法 課時 1.枚舉算法策略 2.迭代算法、遞推算法 資料片:算法的舞蹈――快速排序Quick Sort 課後測驗:編程實現枚舉算法 第17講 調用函數-返回與參數傳遞 課時 1.函數定義語法和函數返回 2.如何設計函數參數 資料片:算法的舞蹈――歸併排序Merge Sort 課後測驗: 調用函數-返回與參數傳遞 第18講 調用函數-原型與聲明 課時 1.函數聲明、原型及庫函數調用方法 2.常用庫函數和第三方函數庫使用 資料片:算法的舞蹈――希爾排序Shell Sort 課後測驗:調用函數-原型與聲明 第19講 調用函數-調用形式 課時 1.函數調用優化,函數嵌套和遞歸調用 2.遞歸算法策略、分治算法策略 資料片:算法的天籟之音――6分鐘“聽”15種排序算法 課後測驗:調用函數-調用形式 第20講 設計函數-函數間的數據傳遞(1) 課時 1.對象作用域概念 2.多模塊下的作用域設計 資料片:排序算法比較 課後測驗:設計函數-函數間的數據傳遞(1) 第21講 設計函數-函數間的數據傳遞(2) 課時 1.程序映像及加載 2.對象生命期設計 課後測驗:設計函數-函數間的數據傳遞(2) 第22講 設計函數-接口與實現分離 課時 1.對象初始化 2.多模塊下的接口設計 課後測驗:設計函數-接口與實現分離 第23講 編寫規模化程序 課時 1.多文件程序結構與組織 | 2.規模化程序的工程設計 課後測驗:編寫規模化程序 第24講 編程任務的自動化工具 課時 1.用宏實現編程任務自動化 2.編譯器預定義宏 課後測驗:編程任務的自動化工具 第25講 編程任務的接口與版本控制 課時 1.文件包含 2.實現版本控制 課後測驗:編程任務的接口與版本控制 第26講 配置開發環境 課時 1.開發環境參數與配置 2.使用第三方開發庫 第27講 批量數據的表示與處理 課時 1.一維數組 2.多維數組 課後測驗:批量數據的表示與處理 第28講 批量數據的遍歷與訪問 課時 1.數組元素的遍歷 2.矩陣運算 課後測驗:批量數據的遍歷與訪問 第29講 函數之間實現批量數據傳遞 課時 1.幻方編程 2.傳遞數組參數 課後測驗:函數之間實現批量數據傳遞 第30講 構建大數和高精度類型 課時 1.構建大數類型 2.高精度運算和混合編程 課後測驗:構建大數和高精度類型 第31講 文字信息的表示與處理 課時 1.字符串的表示與處理 2.字符串應用 課後測驗:文字信息的表示與處理 第32講 實現排序算法 課時 1.實現冒泡、選擇、插入排序 2.實現快速、歸併、希爾等排序算法 課後測驗:實現排序算法 第33講 用空間換取時間編程方法 課時 1.實現查找算法 2.用空間換取時間編程 課後測驗:用空間換取時間編程方法 第34講 探究指針的本質與使用 課時 1.指針的本質是什麼? 2.使用指針 課後測驗: 探究指針的本質與使用 第35講 指針運用的風險控制 課時 1.指針的有效性和風險控制 2.指針的運算規則 課後測驗:指針運用的風險控制 第36講 數組元素的簡潔表示 課時 1.指向一維數組元素的指針 2.指向多維數組元素的指針 課後測驗:數組元素的簡潔表示 第37講 大批量數據的簡潔表示 課時 1.指向數組的指針和指針數組 2.多級指針和批量數據簡潔表示 課後測驗:大批量數據的簡潔表示 第38講 實現函數之間的數據交換 課時 1.批量文字簡潔表示 2.函數之間數據交換的高效方法 課後測驗:實現函數之間的數據交換 第39講 字符串查找與匹配 課時 1.函數之間傳遞字符串數據 2.字符串查找與匹配算法 課後測驗:字符串查找與匹配 第40講 回調函數 課時 1.學會用指針數據 2.學會用回調函數 課後測驗:回調函數 第41講 使用動態內存 課時 1.獲取動態內存 2.使用動態內存 課後測驗:使用動態內存 第42講 複雜數據在C程序中的表示 課時 1.結構體類型與對象 2.用指針簡潔表示複雜數據 課後測驗:複雜數據在C程序中的表示 第43講 編程使用複雜數據 課時 1.共用體類型和對象 2.枚舉與位域 課後測驗:編程使用複雜數據 第44講 構建數據類型體系 課時 1.構建數據類型體系 2.用鏈表表示動態“數組” 課後測驗:構建數據類型體系 第45講 鏈表的運算 課時 1.鏈表的運算 2.結點插入和刪除 課後測驗:用鏈表表示動態的複雜數據 第46講 常用算法及策略 課時 1.動態規劃與貪心算法 2.圖搜索與回溯算法 第47講 編程操作永久性數據 課時 1.文件系統概念 2.操作文件 課後測驗:編程操作永久性數據 第48講 編程讀寫文件 課時 1.用C程序讀寫文件 2.編程處理各種格式的文件 課後測驗:編程讀寫文件 |
c程序設計課前預備
c程序設計預備知識
c程序設計學習資料
書名 | 作者 | ISBN | 出版時間 | 出版社 |
---|---|---|---|---|
《C程序設計》 | 姜學鋒、曹光前 | 9787302280118 | 2012年 | |
《C程序設計實驗教程》 | 姜學鋒、魏英 | 9787302249436 | 2011年 | |
《C程序設計習題與解析》 | 姜學鋒、劉君瑞、汪芳 | 9787302249429 | 2011年 |
c程序設計授課目標
1、理解算法的時間複雜度和空間複雜度的概念,掌握基本的空間換時間的編程策略。
2、理解指針的本質和簡單使用方法。
3、掌握使用指針訪問數組元素的方法。
4、瞭解共用類型的定義和使用方法;掌握枚舉和位域的定義和使用方法。
5、掌握文件系統的基本概念,以及操作文件的常用函數。
c程序設計教師簡介
- 參考資料
-
- 1. C程序設計-11 .中國大學MOOC[引用日期2020-09-10]
- 2. C程序設計-1 .中國大學MOOC[引用日期2020-09-23]
- 3. C程序設計-10 .中國大學MOOC[引用日期2020-09-23]
- 4. C程序設計-9 .中國大學MOOC[引用日期2020-09-23]
- 5. C程序設計-8 .中國大學MOOC[引用日期2020-09-23]
- 6. C程序設計-7 .中國大學MOOC[引用日期2020-09-23]
- 7. C程序設計-6 .中國大學MOOC[引用日期2020-09-23]
- 8. C程序設計-5 .中國大學MOOC[引用日期2020-09-23]
- 9. C程序設計-4 .中國大學MOOC[引用日期2020-09-23]
- 10. C程序設計-3 .中國大學MOOC[引用日期2020-09-23]
- 11. C程序設計-2 .中國大學MOOC[引用日期2020-09-23]
- 12. 西北工業大學慕課教師團隊 .中國大學MOOC[引用日期2020-09-25]
- 收起