




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《高級語言程序設計》課程教學大綱一、課程基本信息課程編號:CS31103課程名稱:高級語言程序設計英文名稱:High-levelLanguageProgramming課程學時:48講課學時:32實驗學時:16上機學時:習題學時:課程學分:3開課單位:計算機科學與技術學院,電信學院授課對象:計算機大類專業(包括計算機科學與技術、物聯網工程、生物信息學、信息安全),軟件工程大類專業,電信學院相關專業開課學期:1秋先修課程:計算機專業導論二、課程目標《高級語言程序設計》是計算機大類/軟件工程大類的一門重要的專業基礎課程。設置本課程的主要目的是使學生掌握用計算機分析和解決問題的思維方法以及程序設計的基本方法,建立從問題到算法再到程序的認知,在從問題到算法再到程序的問題求解及程序構造和實現的過程中理解高級語言的基本構造要素以及算法和數據結構在程序構造中的作用,具備良好的編程素養,以及綜合運用所學程序設計語言和程序設計方法,設計、構造和應用計算系統求解科學或工程問題的程序設計和實現能力,為后繼課程的學習和將來從事軟件開發、解決復雜工程問題奠定編程能力基礎。課程具體目標如下:課程目標1:掌握程序設計的方法學基礎,培養學生閱讀程序、編寫程序和調試程序的能力,使學生能夠選擇與熟練運用現代化集成開發工具編寫、測試和調試程序,了解鯤鵬體系和鯤鵬平臺應用開發的流程,鯤鵬平臺和X86平臺的差異,以及針對編譯型語言(C語言),掌握鯤鵬平臺和X86平臺代碼編寫及編譯的差異。課程目標2:掌握程序設計所需的問題求解基礎,培養學生從問題抽象為數學模型或算法再轉化為計算機可實現的程序的能力,使學生針對計算、統計、分類等相關的實際問題,能夠有效使用程序設計語言和結構化程序設計方法,并恰當使用枚舉、遞推、分治或遞歸等常用問題求解方法,完成經典問題求解程序的設計與實現。課程目標3:掌握程序設計所需的算法和數據結構基礎,培養學生利用算法和數據結構構造程序的能力,使學生針對科學計算/文本處理/人工智能相關的復雜工程問題,能夠使用恰當的算法和數據結構以及模塊化程序設計方法,完成涉及排序、檢索、匹配等算法的實際生活問題或與專業背景相關的工程實際問題的程序設計與實現。三、課程目標與畢業要求對應關系畢業要求畢業要求具體描述課程目標2-4-1現代工具運用能力能夠針對計算相關的復雜工程問題,開發、選擇與使用恰當的工具類計算系統,預測、模擬或求解問題,并能夠理解其局限性。課程目標12-3-1程序設計與實現能力有效使用程序設計語言,完成相關算法或解決方案的程序設計并實現。課程目標2,3四、課程目標與課程內容對應關系序號教學內容教學要求學時教學方式對應課程目標11.程序設計的方法學基礎——基本運算和基本I/O計算產業的最新發展;計算機和程序設計的基礎知識;計算機的基本工作原理;Intelx86系列處理器與CISC復雜指令集ARM系列處理器與RISC精簡指令集華為鯤鵬平臺與x86平臺的差異軟件開發的基本過程,現代集成開發環境,X86平臺下程序的編輯、編譯、鏈接和運行;編譯型語言與解釋型語言及其運行差異;C語言在鯤鵬平臺的開發運行;基本運算;基本I/O。1.計算機和程序設計的基礎知識,了解鯤鵬平臺和X86平臺差異;2.掌握常用的集成開發環境,以及程序在計算機中編輯、編譯、鏈接和運行的過程;3.針對編譯型語言(C語言),掌握鯤鵬平臺和X86平臺代碼編寫及編譯的差異;4.掌握編譯型語言與解釋型語言的運行差異;5.掌握鯤鵬平臺上的開發過程;6.掌握基本數據類型的基本運算,以及鍵盤輸入和屏幕輸出等簡單的I/O操作,能夠用基本數據類型、基本運算構造順序結構的程序。2慕課自學/課堂講授/講練結合/邊講邊練課程目標1,221.程序設計的方法學基礎——基本控制結構與基本程序設計方法(1)算法的基本概念,算法的流程圖描述;(2)單分支/雙分支/多分支選擇結構,條件語句,開關語句;(3)當型/直到型循環,計數控制/條件控制/標記控制的循環,循環語句。(4)三種基本控制結構的嵌套,嵌套循環的執行過程,三種基本控制結構應用于求解累加求和、連乘求積、統計、分類等實際問題;(5)結構化程序設計的基本思想和方法;(6)測試用例的基本概念,程序測試的目的,程序測試的基本方法;(7)常用的程序排錯方法,利用現代集成開發環境的可視化調試工具調試程序的基本方法。(8)信息隱藏,過程抽象,函數封裝,函數復用,模塊分解,自頂向下、逐步求精的模塊化程序設計方法;(9)函數定義、調用,參數傳遞,簡單變量做函數參數重構代碼;(10)鯤鵬平臺C函數調用差異、內聯函數及函數優化;(11)防御式編程,程序的健壯性、可讀性和可維護性;(12)代碼風格,華為企業編程規范。1.掌握算法的基本概念和流程圖描述方法;2.掌握選擇結構和循環結構的基本控制方法,面向累加求和、連乘求積、統計等應用問題,能夠用順序、選擇和循環三種基本控制結構構造結構化的程序。3.理解結構化程序設計的基本思想,以及好結構對提高程序可讀性的重要性;4.掌握程序測試和程序調試的基本方法和技巧。5.掌握模塊分解的基本原則,以及自頂向下、逐步求精的模塊化程序設計方法;6.掌握用函數封裝和過程抽象重構或復用代碼的基本方法7.掌握鯤鵬平臺C函數調用的特點;8.掌握防御式編程的基本方法9.理解良好的代碼風格對提高程序可讀性的重要性8慕課自學/課堂講授/講練結合/邊講邊練課程目標1,232.程序設計的問題求解基礎——枚舉與遞推,分治與遞歸(1)枚舉、遞推/迭代等常用問題求解策略,算法效率,程序優化;(2)遞歸函數的定義、調用和執行過程,條件遞歸的基本要素;(3)分治與遞歸之間的關系,遞歸與迭代的優缺點分析。1.掌握枚舉、遞推/迭代、遞歸等常用問題求解方法的基本原理思想及其程序實現方法,針對給定的問題,能夠選擇恰當的策略來求解問題并對程序進行優化2.理解分治、遞歸等問題求解方法的基本思想,理解分治與遞歸、遞歸與迭代之間的關系2慕課自學/課堂講授/講練結合/邊講邊練課程目標1,243.程序設計的算法和數據結構基礎——一般線性表與排序查找算法(1)一般線性表的順序存儲結構,數組下標越界的錯誤案例分析;(2)一般線性表的遍歷和求最值等基本算法及其函數程序實現,傳值調用與模擬傳引用調用;(3)順序查找、二分查找的基本思想,一般線性表上的查找算法的函數程序實現;(4)選擇排序、冒泡排序、插入排序的基本思想,一般線性表上的排序算法的函數程序實現;(5)算法的時間復雜度1.掌握一般線性表的遍歷、求最值和排序和查找算法,針對給定的問題,能夠選擇恰當的算法構造程序3.掌握傳值調用與模擬傳引用調用的區別,理解數組下標越界產生的危害和后果4.初步了解算法時間復雜度的概念4慕課自學/課堂講授/講練結合/邊講邊練課程目標353.程序設計的算法和數據結構基礎——指針與數據的間接尋址(1)直接尋址與間接尋址,指針的基本概念,指針變量作函數參數;(2)字符指針和字符數組,字符串的表示和存儲、輸入和輸出;(3)字符指針或字符數組做函數參數,實現字符串的復制、連接、比較、檢索、匹配等基本文本處理操作,緩沖區溢出,緩沖區溢出攻擊;X86和鯤鵬平臺char類型的差異;(5)函數指針及其應用;(6)指針和數組間的關系;(7)指針數組與索引存儲結構,字符串的物理排序與索引排序。1.掌握指針與間接尋址的概念,理解用指針變量作函數參數的特殊性,掌握指針做函數參數的參數傳遞方式,掌握指針做函數參數的程序設計和實現方法2.掌握字符串的表示與存儲方式,以及輸入輸出方法,掌握向函數傳遞字符串實現字符串復制、連接、比較、檢索、匹配等基本操作,了解緩沖區溢出與緩沖區溢出攻擊3.了解函數指針及其在編寫通用函數中的應用4.理解數組與指針之間的關系5.掌握指針數組的概念及其在字符串表示和處理中的應用,了解索引結構與索引排序6慕課自學/課堂講授/講練結合/邊講邊練課程目標373.程序設計的算法和數據結構基礎——結構體與構造數據類型的應用(1)從定長數組到動態數組,內存映像,動態內存分配函數,動態數組的程序實現;(2)結構體類型,共用體類型,枚舉類型;(3)用結構體封裝函數參數,向函數傳遞批量數據,結構體和共用體的應用實例;(4)結構體用于對復雜靜態數據結構按關鍵字查找和排序的函數程序實現;(5)抽象數據類型,從結構體到類,從面向過程到面向對象。1.理解定長數組和動態數組的區別,掌握動態內存分配函數以及動態數組的程序實現2.掌握用結構體封裝函數參數向函數傳遞結構體數據的程序實現3.理解抽象數據類型,了解結構體和共用體類型的不同特點和應用場景(如稀疏矩陣的壓縮存儲與轉置計算等)4.針對復數、有理數運算等應用問題,能夠恰當地定義結構體類型并進行程序實現,掌握用結構體對復雜靜態數據結構按關鍵字進行查找和排序的程序實現4慕課自學/課堂講授/講練結合/邊講邊練課程目標383.程序設計的算法和數據結構基礎——動態數據結構(1)數據的邏輯結構和存儲結構,從靜態數據結構到動態數據結構,從線性表的順序存儲到鏈式存儲結構;(2)單向鏈表的創建、節點的遍歷、插入、刪除等基本操作及其函數程序實現,單向鏈表的冒泡排序算法及其函數程序實現;(3)雙向鏈表、循環鏈表與單向鏈表的不同特點,單循環鏈表應用實例;(4)限定性線性表,棧和隊列的數據訪問方式,棧和隊列的順序存儲與鏈式存儲,棧和隊列的應用實例;(5)樹和圖等其他數據結構簡介,二叉樹的順序存儲與鏈式存儲,二叉樹的遍歷、查找等基本操作;(6)內存管理與文件I/O;(7)選學:鯤鵬多核體系、多線程編程以及弱內存模型。1.掌握靜態數據結構和動態數據結構,以及線性表的順序存儲到鏈式存儲的優缺點,針對給定的問題,能夠選擇恰當的數據結構構造程序2.掌握單向鏈表的基本操作及其程序設計和實現方法3.了解雙向鏈表、循環鏈表的基本特點4.掌握棧和隊列的數據訪問方式、存儲方式及其應用5.初步了解樹和圖等其他數據結構6.掌握二叉樹的順序存儲與鏈式存儲,二叉樹的遍歷算法及其程序實現7.了解內存泄漏、非法內存訪問等常見內存錯誤及其解決對策8.了解文件I/O的基本操作6慕課自學/課堂講授/講練結合/邊講邊練課程目標3實驗1實現程序:大小寫字母轉換、平方根求和分別在X86平臺下編譯和運行C語言程序;以及在鯤鵬openEule系統下編譯和運行C語言程序。了解鯤鵬和X86平臺C程序差異。X86平臺下編譯和運行C語言程序。在鯤鵬平臺下搭建C語言開發運行環境,編譯和運行C語言程序。3實驗2實驗上機隨堂測試+實驗課堂小翻轉。測試內容:窮舉/遞推/迭代/遞歸掌握結構化程序的設計方法,能夠選擇恰當的控制結構和問題求解策略求解實際問題3過程評價/以考促練/生講生評課程目標1~2實驗3實驗上機隨堂測試+實驗課堂小翻轉。測試內容:一般線性表的排序查找算法掌握一般線性表的遍歷、排序和查找等算法,能夠選擇和應用恰當的算法求解實際問題3過程評價/以考促練/生講生評課程目標1~2實驗4實驗上機隨堂測試+實驗課堂小翻轉。測試內容:字符串/指針/結構體/鏈表掌握字符串的復制、連接、比較、檢索、匹配等基本操作,能夠選擇和應用恰當的數據結構求解實際問題3過程評價/以考促練/生講生評課程目標1~2實驗5開放式綜合設計型實驗大作業:學生成績管理系統(鯤鵬實驗例程)的升級版、小型信息管理系統、游戲程序設計分別在X86平臺和鯤鵬openEule系統下實現掌握模塊化程序設計方法,并進行綜合應用型程序設計3實踐研學課程目標1~3實驗6實驗主題研討。采用“生講生評、互動研學的方式”分小班對算法/數據結構等相關的不同實驗主題進行研討,包括鯤鵬平臺軟件開發經驗分享。培養查閱資料的能力、自學能力、團隊合作能力與語言表達能力2實踐研學/互動展學/生講生評課程目標1~3實驗7實驗主題研討。采用“生講生評、互動研學的方式”分小班對算法/數據結構等相關的不同實驗主題進行研討,包括鯤鵬平臺軟件開發經驗分享。培養查閱資料的能力、自學能力、團隊合作能力與語言表達能力2實踐研學/互動展學/生講生評課程目標1~3注:針對不同專業,教師可以選擇不同的實例進行講解五、開放式綜合設計型實驗大作業實驗目的:掌握程序設計的基本算法和簡單數據結構基礎,能夠綜合運用基本控制語句、算法和數據結構,以及自頂向下、逐步求精的模塊化設計方法,能夠設計具有一定規模的系統級C語言程序,提高系統編程能力;針對計算相關的復雜工程問題,能夠使用恰當的算法和數據結構,完成計算、統計、排序、檢索、匹配等相關的軟件系統的構造、測試與實現;掌握常用的程序調試和測試方法;掌握C語言程序基于鯤鵬平臺下openEule編譯和運行的等操作;掌握對指針的使用方法以及對動態內存的管理方法。實驗要求:采用自頂向下、逐步求精的模塊化設計思想設計一個學生成績管理系統(鯤鵬實驗例程)的升級版、小型信息管理系統、游戲程序設計;要求解釋說明采用了什么數據結構和算法,為什么選擇這種數據結構或算法,系統實現過程中遇到了哪些問題,這些問題是如何解決的,還有什么問題尚未解決,今后打算從哪幾個方面進行改進,本設計的亮點和難點在哪里,實驗結果如何,有哪些收獲和學習體會;要求解釋鯤鵬平臺C語言開發的特點和注意事項編寫程序完成以下實驗大作業內容并完成實驗大作業反思報告。實驗設計:學生成績管理系統的升級版:按照算法、數據結構和簡單應用的各個知識模塊進行組合應用,進一步增強學生成績管理系統的功能數據結構增強:結構體數組、結構體數組+指針、鏈表等動態數據結構;功能要素增強:枚舉/遞推/迭代/分類統計、排序/查找、模糊匹配、文件操作、加入音效、遞歸、與樹或圖等數據結構相關的算法、或其他人工智能算法;跨平臺增強:X86平臺和鯤鵬平臺兼容;小型信息管理系統:仿照華為鯤鵬實驗例程即學生成績管理系統,循序漸進設計增量式設計手機通訊錄等其他小型信息管理系統;游戲程序設計:設計具備一定算法實現的游戲,例如迷宮游戲、掃雷游戲、數獨游戲等;鼓勵使用x86和鯤鵬平臺上進行實現,尤其在鯤鵬平臺的實現會得到額外加分。六、課程教學方法1.強調編程方法,淡化語言語法:作為一門高級語言程序設計的入門課程,與以往不同的是以講解編程方法為主,不要糾結語言語法的細節,避免學生在學習完程序設計后“只見樹木、不見森林”,只會語法,不會編程。2.面向應用,問題驅動,以點帶面,突出重點和難點,編程能力培養為主,算法和數據結構為輔:考慮到課時有限,本課程不能對所有知識點面面俱到的講解,要能夠以點帶面,針對具體的應用,以從問題抽象為數學模型或算法再轉化為計算機可實現的程序為重點,培養學生選擇恰當的問題求解策略或算法以及適合問題求解的數據結構,進行程序設計和實現的能力。3.講練結合,精講多練,邊講邊練,以練為主:本課程的特點是實踐性強,因此教學方法要以練為主,教師要帶領學生一起讀程序、寫程序和調試程序,讓學生邊學邊用,學以致用,讓學生在做中學和練中悟,目標是“能讀懂優秀的范例代碼,能編寫規范的程序,能調試有錯誤的程序”。4.先學后講,先學后練,課前預習,課上內化,課后強化:本課程有配套的MOOC課程,因此將學生易于理解和需要記憶的內容放到MOOC課程里,通過課前布置學習任務單,引導學生課前先在MOOC課程中自學,然后在課堂上通過精講多練和邊講邊練達到讓學生將知識內化的目的,課后通過大量的代碼閱讀和編寫訓練達到強化其編程能力的目的。5.以考督學,以考促練,引導學生自主學習和編程訓練:本課程有完備的教學輔助平臺,包括面向學生自主學習的高級語言程序設計能力訓練平臺、編程題考試自動評分系統、試卷和題庫管理系統,因此可以借助這些平臺和階段考核引導和促進學生自主學習和編程訓練。6.目標導向,分級教學:針對學生編程基礎參差不齊的問題,通過分級教學,針對零基礎班、標準班和高級班的學生分別采取不同的教學方法。對于零基礎班的學生,采用“多講多練,加學時,教師手把手領著學生練,強化基礎+項目實踐”的教學方法,使其盡快入門,進入最佳學習狀態。對于標準班的學生,采用“精講多練,系統學習+項目實踐”的教學方法,主要側重程序設計基礎,訓練學生的基本編程能力”。對于高級班的學生,采用“專講專練,自主學習+技巧訓練”的教學方法,以強化算法和編程技巧訓練,培養學生高級編程能力。7.適當課堂翻轉,注重項目實踐:1)課堂隨機互動小翻轉,通過快問快答、紙上練兵、你寫我評、奇思妙想、程序打擂臺等方式,實現教師導學。2)實驗上機隨堂測試后,通過“生講生評”方式分享不同的編程方法或剖析程序錯誤的根源。3)小班主題研討采用“生講生評、互動研學、同伴助學”的方式,分小班針對不同的實驗主題進行實踐研學、同伴助學、互動展學。8.輔導答疑,授人以漁:包括線上答疑和線下答疑,及時與學生溝通,解決學生的疑難問題,但要求學生在問問題之前要先自己思考,先嘗試自己找到問題的答案,例如先自己嘗試通過調試工具發現程序中存在的錯誤,教師不要直接告訴學生錯在哪里,要引導學生自己學會調試錯誤程序的方法。六、課程考核方法考核環節所占分值考核與評價細則對應課程目標(1)自主自助式作業20%自主自助式作業,占總成績的2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 園藝工技師考試試題及答案
- 拼多多和java面試題及答案
- 鐵路工程測量培訓課件
- 2025年 德陽市人民醫院招聘考試試卷附答案
- 感冒用藥相關知識培訓
- 員工異地培訓差旅費會計處理指南
- 護理教師試講15分鐘范例
- 愛的教育導讀課
- 2025時間管理培訓:效率倍增的認識和行動實踐指南
- 通風性關節炎的護理講課
- 2025年互聯網醫療平安好醫生阿里健康京東健康對比分析報告
- 攀枝花市仁和區社會招考社區工作者考試真題2024
- 2025年上海楊浦區七下英語期末達標檢測試題含答案
- 老年外科患者圍手術期營養支持中國專家共識(2024)解讀
- 臨床肘關節損傷影像診斷
- 2025年預應力混凝土用鋼棒產品質量監督抽查實施細則
- 不同產地西紅花的質量評價研究
- 2025石獅市國企招聘考試題目及答案
- GB/T 16262.2-2025信息技術抽象語法記法一(ASN.1)第2部分:信息客體規范
- 《熱力公司各崗位工作流程及工作職責》
- 中藥飲片處方書寫規范
評論
0/150
提交評論