版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《高級(jí)語言程序設(shè)計(jì)》課程教學(xué)大綱一、課程基本信息課程代碼:22CS21001課程名稱:高級(jí)語言程序設(shè)計(jì)課程英文名稱:High-levelLanguageProgramming總學(xué)時(shí):48理論學(xué)時(shí):32實(shí)驗(yàn)學(xué)時(shí):16上機(jī)學(xué)時(shí):實(shí)踐學(xué)時(shí):課外輔導(dǎo)學(xué)時(shí):學(xué)分:3開課單位:計(jì)算學(xué)部授課對(duì)象:計(jì)算機(jī)和電信大類專業(yè)集群本科生(適用于2022級(jí))開課學(xué)期:1秋先修課程:無二、課程目標(biāo)《高級(jí)語言程序設(shè)計(jì)》是計(jì)算機(jī)和電信大類/軟件工程大類的一門重要的專業(yè)基礎(chǔ)課程。設(shè)置本課程的主要目的是使學(xué)生掌握用計(jì)算機(jī)分析和解決問題的思維方法以及程序設(shè)計(jì)的基本方法,建立從問題到算法再到程序的認(rèn)知,在從問題到算法再到程序的問題求解及程序構(gòu)造和實(shí)現(xiàn)的過程中理解高級(jí)語言的基本構(gòu)造要素以及算法和數(shù)據(jù)結(jié)構(gòu)在程序構(gòu)造中的作用,具備良好的編程素養(yǎng),以及綜合運(yùn)用所學(xué)程序設(shè)計(jì)語言和程序設(shè)計(jì)方法,設(shè)計(jì)、構(gòu)造和應(yīng)用計(jì)算系統(tǒng)求解科學(xué)或工程問題的程序設(shè)計(jì)和實(shí)現(xiàn)能力,為后繼課程的學(xué)習(xí)和將來從事軟件開發(fā)、解決復(fù)雜工程問題奠定編程能力基礎(chǔ)。課程具體目標(biāo)如下:課程目標(biāo)1:掌握程序設(shè)計(jì)的方法學(xué)基礎(chǔ),培養(yǎng)學(xué)生閱讀程序、編寫程序和調(diào)試程序的能力,使學(xué)生能夠選擇與熟練運(yùn)用現(xiàn)代化集成開發(fā)工具編寫、測(cè)試和調(diào)試程序,了解鯤鵬體系和鯤鵬計(jì)算平臺(tái)應(yīng)用開發(fā)的流程,鯤鵬計(jì)算平臺(tái)和X86平臺(tái)的差異,以及針對(duì)編譯型語言(C語言)掌握鯤鵬計(jì)算平臺(tái)和X86平臺(tái)代碼編寫及編譯的差異,具備良好的編程素養(yǎng)、職業(yè)道德以及自主學(xué)習(xí)和終身學(xué)習(xí)能力。課程目標(biāo)2:掌握程序設(shè)計(jì)所需的問題求解基礎(chǔ),培養(yǎng)學(xué)生從問題抽象為數(shù)學(xué)模型或算法再轉(zhuǎn)化為計(jì)算機(jī)可實(shí)現(xiàn)的程序的能力,使學(xué)生針對(duì)計(jì)算、統(tǒng)計(jì)、分類等相關(guān)的實(shí)際問題,能夠有效使用程序設(shè)計(jì)語言和結(jié)構(gòu)化程序設(shè)計(jì)方法,并恰當(dāng)使用枚舉、遞推、分治或遞歸等常用問題求解方法,完成經(jīng)典問題求解程序的設(shè)計(jì)與實(shí)現(xiàn)。課程目標(biāo)3:掌握程序設(shè)計(jì)所需的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ),培養(yǎng)學(xué)生利用算法和數(shù)據(jù)結(jié)構(gòu)構(gòu)造程序的能力,使學(xué)生針對(duì)科學(xué)計(jì)算/文本處理/人工智能相關(guān)的復(fù)雜工程問題,能夠使用恰當(dāng)?shù)乃惴ê蛿?shù)據(jù)結(jié)構(gòu)以及模塊化程序設(shè)計(jì)方法,完成涉及排序、檢索、匹配等算法的實(shí)際生活問題或與專業(yè)背景相關(guān)的工程實(shí)際問題的程序設(shè)計(jì)與實(shí)現(xiàn)。三、課程目標(biāo)與畢業(yè)要求對(duì)應(yīng)關(guān)系畢業(yè)要求畢業(yè)要求具體描述課程目標(biāo)1.現(xiàn)代工具運(yùn)用能力能夠針對(duì)計(jì)算相關(guān)的復(fù)雜工程問題,開發(fā)、選擇與使用恰當(dāng)?shù)墓ぞ哳愑?jì)算系統(tǒng),預(yù)測(cè)、模擬或求解問題,并能夠理解其局限性。課程目標(biāo)12.工程知識(shí)能夠?qū)?shù)學(xué)、自然科學(xué)、工程基礎(chǔ)和專業(yè)知識(shí)用于解決復(fù)雜工程問題。課程目標(biāo)23.設(shè)計(jì)/開發(fā)解決方案能夠設(shè)計(jì)針對(duì)復(fù)雜工程問題的解決方案,設(shè)計(jì)滿足特定需求的系統(tǒng)、單元(部件)或工藝流程,并能夠在設(shè)計(jì)環(huán)節(jié)中體現(xiàn)創(chuàng)新意識(shí),考慮社會(huì)、健康、安全、法律、文化以及環(huán)境等因素。課程目標(biāo)3注:畢業(yè)要求參照附件(工程教育認(rèn)證通用標(biāo)準(zhǔn)之畢業(yè)要求),從中選取課程目標(biāo)支撐的畢業(yè)要求條目。四、課程目標(biāo)與課程內(nèi)容對(duì)應(yīng)關(guān)系序號(hào)教學(xué)內(nèi)容教學(xué)要求學(xué)時(shí)教學(xué)方式對(duì)應(yīng)課程目標(biāo)11.程序設(shè)計(jì)的方法學(xué)基礎(chǔ)——基本運(yùn)算和基本I/O(1)計(jì)算機(jī)和程序設(shè)計(jì)的基礎(chǔ)知識(shí),計(jì)算機(jī)的基本工作原理;(2)鯤鵬計(jì)算產(chǎn)業(yè),華為鯤鵬計(jì)算平臺(tái)與x86平臺(tái)的差異,編譯型語言與解釋型語言及其運(yùn)行差異;(3)軟件開發(fā)的基本過程,現(xiàn)代集成開發(fā)環(huán)境,X86平臺(tái)上C語言程序的編譯、鏈接和運(yùn)行,鯤鵬計(jì)算平臺(tái)上的C語言編譯和運(yùn)行;(4)基本運(yùn)算;(5)基本I/O。1.了解計(jì)算機(jī)和程序設(shè)計(jì)的基礎(chǔ)知識(shí),以及鯤鵬計(jì)算平臺(tái)和X86平臺(tái)差異;了解在鯤鵬計(jì)算平臺(tái)和X86平臺(tái)上編寫及編譯C語言代碼的差異;2.了解編譯型語言與解釋型語言的運(yùn)行差異;掌握常用的集成開發(fā)環(huán)境,以及程序在不同平臺(tái)上的編譯、鏈接和運(yùn)行;3.掌握基本數(shù)據(jù)類型的基本運(yùn)算,以及鍵盤輸入和屏幕輸出等簡(jiǎn)單的I/O操作,能夠用基本數(shù)據(jù)類型、基本運(yùn)算構(gòu)造順序結(jié)構(gòu)的程序。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,221.程序設(shè)計(jì)的方法學(xué)基礎(chǔ)——基本控制結(jié)構(gòu)之選擇結(jié)構(gòu)(1)算法的基本概念,算法的流程圖描述;(2)單分支/雙分支/多分支選擇結(jié)構(gòu),條件語句,開關(guān)語句;(3)程序測(cè)試的目的,測(cè)試用例的基本概念和設(shè)計(jì)方法,程序測(cè)試的基本方法。1.掌握算法的基本概念和流程圖描述方法;2.掌握選擇結(jié)構(gòu)的基本控制方法,能夠用順序、選擇控制結(jié)構(gòu)編寫程序;3.掌握程序測(cè)試的基本方法,測(cè)試用例的設(shè)計(jì)方法。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,231.程序設(shè)計(jì)的方法學(xué)基礎(chǔ)——基本控制結(jié)構(gòu)之循環(huán)結(jié)構(gòu)(1)當(dāng)型/直到型循環(huán),計(jì)數(shù)控制/條件控制/標(biāo)記控制的循環(huán),循環(huán)語句;(2)嵌套循環(huán);(3)常用的程序排錯(cuò)方法和程序調(diào)試方法。1.掌握循環(huán)結(jié)構(gòu)的基本控制方法;2.面向累加求和、連乘求積、統(tǒng)計(jì)等應(yīng)用問題,能夠用順序、選擇和循環(huán)三種基本控制結(jié)構(gòu)構(gòu)造結(jié)構(gòu)化的程序;3.掌握程序調(diào)試的基本方法和技巧;掌握利用現(xiàn)代集成開發(fā)環(huán)境的調(diào)試工具調(diào)試程序的基本方法。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,241.程序設(shè)計(jì)的方法學(xué)基礎(chǔ)——基本程序設(shè)計(jì)方法(1)信息隱藏,過程抽象,模塊分解,結(jié)構(gòu)化程序設(shè)計(jì)方法,自頂向下、逐步求精的模塊化程序設(shè)計(jì)方法;(2)函數(shù)定義、函數(shù)調(diào)用,參數(shù)傳遞與函數(shù)的返回值,簡(jiǎn)單變量做函數(shù)參數(shù);(3)防御式編程,程序的健壯性、可讀性和可維護(hù)性;(4)多文件編程;(5)鯤鵬計(jì)算平臺(tái)和x86平臺(tái)上C函數(shù)調(diào)用差異及函數(shù)優(yōu)化,華為企業(yè)編程規(guī)范。1.理解結(jié)構(gòu)化程序設(shè)計(jì)的基本思想,以及好結(jié)構(gòu)對(duì)提高程序可讀性的重要性;2.掌握模塊分解的基本原則,以及自頂向下、逐步求精的模塊化程序設(shè)計(jì)方法;3.掌握用函數(shù)封裝和過程抽象重構(gòu)或復(fù)用代碼的基本方法;4.掌握防御式編程的基本方法,以及多文件編程方法;5.理解良好的代碼風(fēng)格對(duì)提高程序可讀性的重要性。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,252.程序設(shè)計(jì)的問題求解基礎(chǔ)——枚舉與遞推(1)枚舉,流程轉(zhuǎn)移控制語句(break,continue,goto),枚舉算法的優(yōu)化;(2)遞推,包括正向順推和反向逆推。1.掌握枚舉、遞推等常用問題求解方法及其程序?qū)崿F(xiàn)方法,2.針對(duì)給定的問題,能夠選擇恰當(dāng)?shù)牟呗詠砬蠼鈫栴}并對(duì)程序進(jìn)行優(yōu)化。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,262.程序設(shè)計(jì)的問題求解基礎(chǔ)——分治與遞歸(1)遞歸的基本思想,遞歸函數(shù)的定義、調(diào)用和執(zhí)行過程,條件遞歸的基本要素;(2)分治與遞歸之間的關(guān)系,遞歸與迭代的優(yōu)缺點(diǎn)分析。1.理解遞歸的基本思想,掌握遞歸問題的求解方法及其程序?qū)崿F(xiàn)方法;2.理解分治與遞歸、遞歸與迭代之間的關(guān)系。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,273.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——數(shù)組與一般線性表(1)一般線性表,數(shù)組的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),數(shù)組的定義,數(shù)組元素的遍歷;(2)按值調(diào)用與模擬按引用調(diào)用;(3)數(shù)組的應(yīng)用,計(jì)算最大最小值。1.掌握一般線性表的遍歷、求最值算法,針對(duì)給定的問題,能夠選擇恰當(dāng)?shù)乃惴?gòu)造程序;2.掌握按值調(diào)用與模擬按引用調(diào)用的區(qū)別,理解數(shù)組下標(biāo)越界產(chǎn)生的危害和后果。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)383.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——排序和查找算法(1)順序查找、二分查找的基本思想,及其函數(shù)程序?qū)崿F(xiàn);(2)選擇排序、冒泡排序、插入排序的基本思想,及其函數(shù)程序?qū)崿F(xiàn);(3)算法的時(shí)間復(fù)雜度。1.掌握一般線性表的排序和查找算法,針對(duì)給定的問題,能夠選擇恰當(dāng)?shù)乃惴?gòu)造程序;2.初步了解算法時(shí)間復(fù)雜度的概念。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)393.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——變量的指針與函數(shù)指針(1)直接尋址與間接尋址,指針的基本概念,指向變量的指針,指針變量作函數(shù)參數(shù)與模擬按引用調(diào)用;(2)指向函數(shù)的指針,函數(shù)指針及其應(yīng)用。1.掌握指針與間接尋址的概念,理解用指針變量作函數(shù)參數(shù)的特殊性;2.掌握指針做函數(shù)參數(shù)的參數(shù)傳遞方式,掌握指針做函數(shù)參數(shù)的程序設(shè)計(jì)和實(shí)現(xiàn)方法;3.掌握函數(shù)指針的概念及其應(yīng)用。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3103.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——字符串與文本處理(1)字符指針和字符數(shù)組,字符串的表示和存儲(chǔ)、輸入和輸出;(2)字符指針或字符數(shù)組做函數(shù)參數(shù)和從函數(shù)返回字符串,字符串復(fù)制、連接、比較等常用的字符串處理函數(shù);(3)緩沖區(qū)溢出,緩沖區(qū)溢出攻擊。1.掌握字符串的表示與存儲(chǔ)方式,以及輸入輸出方法;2.掌握向函數(shù)傳遞字符串和從函數(shù)返回字符串的函數(shù)設(shè)計(jì)方法;3.了解緩沖區(qū)溢出,以及緩沖區(qū)溢出攻擊的危害。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3113.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——字符串與文本處理(1)字符串的檢索、匹配等基本文本處理方法;(2)文件打開、關(guān)閉,以及字符串讀寫等文件處理操作;(3)X86和鯤鵬計(jì)算平臺(tái)char類型的差異。1.掌握字符串檢索、匹配、排序等基本文本處理的函數(shù)實(shí)現(xiàn)方法;2.掌握使用字符串讀寫函數(shù)進(jìn)行文件處理操作的方法;3.了解X86和鯤鵬計(jì)算平臺(tái)char類型的差異。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3123.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——指針與數(shù)組之間的關(guān)系(1)指針和一維數(shù)組間的關(guān)系;(2)指針和二維數(shù)組間的關(guān)系;(3)指針數(shù)組,字符串的物理排序與索引排序。1.掌握指針和數(shù)組間的關(guān)系;2.掌握指針數(shù)組的概念及其在字符串表示和處理中的應(yīng)用。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3133.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——用結(jié)構(gòu)封裝數(shù)據(jù)(1)從定長(zhǎng)數(shù)組到動(dòng)態(tài)數(shù)組,內(nèi)存映像,動(dòng)態(tài)內(nèi)存分配函數(shù),內(nèi)存管理,動(dòng)態(tài)數(shù)組的程序?qū)崿F(xiàn);(2)結(jié)構(gòu)體類型,共用體類型,枚舉類型;(3)用結(jié)構(gòu)體封裝函數(shù)參數(shù),向函數(shù)傳遞批量數(shù)據(jù),結(jié)構(gòu)體和共用體的應(yīng)用實(shí)例。1.掌握動(dòng)態(tài)內(nèi)存分配函數(shù)以及動(dòng)態(tài)數(shù)組的程序?qū)崿F(xiàn);2.了解結(jié)構(gòu)體和共用體類型的不同特點(diǎn)和應(yīng)用場(chǎng)景;3.掌握用結(jié)構(gòu)體封裝函數(shù)參數(shù)向函數(shù)傳遞結(jié)構(gòu)體數(shù)據(jù)的程序?qū)崿F(xiàn);2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3143.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——用結(jié)構(gòu)封裝數(shù)據(jù)(1)結(jié)構(gòu)體用于對(duì)復(fù)雜靜態(tài)數(shù)據(jù)結(jié)構(gòu)按關(guān)鍵字查找和排序的函數(shù)程序?qū)崿F(xiàn);(2)格式化文件讀寫;(3)抽象數(shù)據(jù)類型,從結(jié)構(gòu)體到類,從面向過程到面向?qū)ο蟆?.針對(duì)復(fù)數(shù)、有理數(shù)運(yùn)算、表格數(shù)據(jù)處理等應(yīng)用問題,能夠恰當(dāng)?shù)赜媒Y(jié)構(gòu)體構(gòu)造復(fù)雜數(shù)據(jù)類型并進(jìn)行程序?qū)崿F(xiàn);2.掌握用結(jié)構(gòu)體對(duì)復(fù)雜靜態(tài)數(shù)據(jù)結(jié)構(gòu)按關(guān)鍵字進(jìn)行查找和排序的程序?qū)崿F(xiàn);3.掌握文件I/O的基本操作。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3153.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——?jiǎng)討B(tài)數(shù)據(jù)結(jié)構(gòu)(1)數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),從靜態(tài)數(shù)據(jù)結(jié)構(gòu)到動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),從線性表的順序存儲(chǔ)到鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu);(2)單向鏈表的創(chuàng)建、節(jié)點(diǎn)的遍歷、插入、刪除等基本操作及其函數(shù)程序?qū)崿F(xiàn),單向鏈表的冒泡排序算法及其函數(shù)程序?qū)崿F(xiàn);(3)雙向鏈表、循環(huán)鏈表與單向鏈表的不同特點(diǎn),單循環(huán)鏈表應(yīng)用實(shí)例。1.掌握靜態(tài)數(shù)據(jù)結(jié)構(gòu)和動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),以及線性表的順序存儲(chǔ)到鏈?zhǔn)酱鎯?chǔ)的優(yōu)缺點(diǎn),針對(duì)給定的問題,能夠選擇恰當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)構(gòu)造程序;2.掌握單向鏈表的基本操作及其程序設(shè)計(jì)和實(shí)現(xiàn)方法;3.了解雙向鏈表、循環(huán)鏈表的基本特點(diǎn)。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3163.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——?jiǎng)討B(tài)數(shù)據(jù)結(jié)構(gòu)(1)限定性線性表,棧和隊(duì)列的數(shù)據(jù)訪問方式,棧和隊(duì)列的順序存儲(chǔ)與鏈?zhǔn)酱鎯?chǔ),棧和隊(duì)列的應(yīng)用實(shí)例;(2)樹和圖等其他數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)介,二叉樹的順序存儲(chǔ)與鏈?zhǔn)酱鎯?chǔ),二叉樹的遍歷;(3)內(nèi)存泄漏、野指針等常見的內(nèi)存錯(cuò)誤及解決對(duì)策;(4)選學(xué):鯤鵬多核體系、多線程編程以及弱內(nèi)存模型。1.掌握棧和隊(duì)列的數(shù)據(jù)訪問方式、存儲(chǔ)方式及其應(yīng)用;2.初步了解樹和圖等其他數(shù)據(jù)結(jié)構(gòu);3.了解內(nèi)存泄漏、非法內(nèi)存訪問等常見內(nèi)存錯(cuò)誤及其解決對(duì)策。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3實(shí)驗(yàn)1實(shí)現(xiàn)程序:大小寫字母轉(zhuǎn)換、平方根求和。分別在X86平臺(tái)下編譯和運(yùn)行C語言程序;以及在鯤鵬openEule系統(tǒng)下編譯和運(yùn)行C語言程序。了解鯤鵬和X86平臺(tái)C程序差異。X86平臺(tái)下編譯和運(yùn)行C語言程序。在鯤鵬計(jì)算平臺(tái)下搭建C語言開發(fā)運(yùn)行環(huán)境,編譯和運(yùn)行C語言程序。3過程評(píng)價(jià)/以考促練/生講生評(píng)課程目標(biāo)1~3實(shí)驗(yàn)2實(shí)驗(yàn)上機(jī)隨堂測(cè)試+實(shí)驗(yàn)課堂小翻轉(zhuǎn)。測(cè)試內(nèi)容:累加累乘/窮舉/遞推/遞歸掌握結(jié)構(gòu)化程序的設(shè)計(jì)方法,能夠選擇恰當(dāng)?shù)目刂平Y(jié)構(gòu)和問題求解策略求解實(shí)際問題3過程評(píng)價(jià)/以考促練/生講生評(píng)課程目標(biāo)1~3實(shí)驗(yàn)3實(shí)驗(yàn)上機(jī)隨堂測(cè)試+實(shí)驗(yàn)課堂小翻轉(zhuǎn)。測(cè)試內(nèi)容:二維數(shù)組/排序算法/查找算法/字符指針掌握一般線性表的遍歷、排序和查找等算法,能夠選擇和應(yīng)用恰當(dāng)?shù)乃惴ㄇ蠼鈱?shí)際問題3過程評(píng)價(jià)/以考促練/生講生評(píng)課程目標(biāo)1~3實(shí)驗(yàn)4實(shí)驗(yàn)上機(jī)隨堂測(cè)試+實(shí)驗(yàn)課堂小翻轉(zhuǎn)。測(cè)試內(nèi)容:字符串與文本處理/結(jié)構(gòu)體/鏈表掌握字符串的復(fù)制、連接、比較、檢索、匹配等基本操作,能夠選擇和應(yīng)用恰當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)求解實(shí)際問題3過程評(píng)價(jià)/以考促練/生講生評(píng)課程目標(biāo)1~3實(shí)驗(yàn)5實(shí)驗(yàn)主題研討。采用“生講生評(píng)、互動(dòng)研學(xué)的方式”分小班對(duì)算法/數(shù)據(jù)結(jié)構(gòu)等相關(guān)的不同實(shí)驗(yàn)主題進(jìn)行研討,包括鯤鵬平臺(tái)軟件開發(fā)經(jīng)驗(yàn)分享。培養(yǎng)查閱資料的能力、自學(xué)能力、團(tuán)隊(duì)合作能力與語言表達(dá)能力4實(shí)踐研學(xué)/互動(dòng)展學(xué)/生講生評(píng)課程目標(biāo)1~3五、課程教學(xué)方法1.強(qiáng)調(diào)編程方法,淡化語言語法:作為一門高級(jí)語言程序設(shè)計(jì)的入門課程,以講解編程方法和問題求解方法為主,避免學(xué)生在學(xué)習(xí)完程序設(shè)計(jì)后“只見樹木、不見森林”,只會(huì)語法,不會(huì)編程。2.面向應(yīng)用,問題驅(qū)動(dòng),以點(diǎn)帶面,突出重點(diǎn)和難點(diǎn),計(jì)算思維和編程能力培養(yǎng)為主,算法和數(shù)據(jù)結(jié)構(gòu)為輔:考慮到課時(shí)有限,本課程不能對(duì)所有知識(shí)點(diǎn)面面俱到的講解,要能夠以點(diǎn)帶面,針對(duì)具體的應(yīng)用,以從問題抽象為數(shù)學(xué)模型或算法再轉(zhuǎn)化為計(jì)算機(jī)可實(shí)現(xiàn)的程序?yàn)橹攸c(diǎn),培養(yǎng)學(xué)生選擇恰當(dāng)?shù)膯栴}求解策略或算法以及適合問題求解的數(shù)據(jù)結(jié)構(gòu),進(jìn)行程序設(shè)計(jì)和實(shí)現(xiàn)的能力。3.講練結(jié)合,精講多練,邊講邊練,以練為主:本課程的特點(diǎn)是實(shí)踐性強(qiáng),因此教學(xué)方法要以練為主,教師要帶領(lǐng)學(xué)生一起讀程序、寫程序和調(diào)試程序,讓學(xué)生邊學(xué)邊用,學(xué)以致用,讓學(xué)生在做中學(xué)和練中悟,目標(biāo)是“能讀懂優(yōu)秀的范例代碼,能編寫規(guī)范的程序,能調(diào)試有錯(cuò)誤的程序”。4.采用混合式教學(xué)方法,課前預(yù)習(xí),課上內(nèi)化,課后強(qiáng)化:引導(dǎo)學(xué)生課前先在MOOC課程中自學(xué),針對(duì)學(xué)生不易理解的難點(diǎn)和重點(diǎn)內(nèi)容,在課堂上通過精講多練和邊講邊練達(dá)到讓學(xué)生將知識(shí)內(nèi)化的目的,課后通過大量的代碼閱讀和編程訓(xùn)練強(qiáng)化其編程能力。5.以考督學(xué),以考促練,引導(dǎo)學(xué)生自主編程訓(xùn)練,輔助教師因材施教和有的放矢地改進(jìn)教學(xué):本課程有完備的教學(xué)輔助平臺(tái),包括面向?qū)W生自主學(xué)習(xí)的高級(jí)語言程序設(shè)計(jì)能力訓(xùn)練平臺(tái)、編程題考試自動(dòng)評(píng)分系統(tǒng)、試卷和題庫管理系統(tǒng),因此可以借助這些平臺(tái)和階段考核引導(dǎo)和促進(jìn)學(xué)生自主編程訓(xùn)練,使教師及時(shí)掌握學(xué)生的學(xué)習(xí)進(jìn)展,及時(shí)與學(xué)生溝通,對(duì)學(xué)習(xí)困難的學(xué)生給與個(gè)性化幫助和輔導(dǎo)。6.適當(dāng)課堂翻轉(zhuǎn),注重項(xiàng)目實(shí)踐:1)課堂隨機(jī)互動(dòng)小翻轉(zhuǎn),通過快問快答、紙上練兵、你寫我評(píng)、奇思妙想、程序打擂臺(tái)等方式,實(shí)現(xiàn)教師導(dǎo)學(xué)。2)實(shí)驗(yàn)上機(jī)隨堂測(cè)試后,通過“生講生評(píng)”方式分享不同的編程方法或剖析程序錯(cuò)誤的根源。3)小班主題研討采用“生講生評(píng)、互動(dòng)研學(xué)、同伴助學(xué)”的方式,分小班針對(duì)不同的實(shí)踐研學(xué)主題進(jìn)行實(shí)踐研學(xué)、同伴助學(xué)、互動(dòng)展學(xué)。為了激發(fā)和鼓勵(lì)學(xué)生的求知欲、創(chuàng)新意識(shí)和創(chuàng)新思維,從“要我學(xué)”轉(zhuǎn)變?yōu)椤拔乙獙W(xué)”,提高學(xué)生的自主學(xué)習(xí)、語言表達(dá)、系統(tǒng)編程能力、小組合作以及創(chuàng)新實(shí)踐能力,允許學(xué)生自愿組隊(duì)、自選主題,通過查閱資料和自學(xué)相關(guān)內(nèi)容,以團(tuán)隊(duì)合作方式完成一個(gè)主題的研討,現(xiàn)場(chǎng)講解算法,學(xué)生現(xiàn)場(chǎng)提問,完全讓學(xué)生唱主角、由學(xué)生主導(dǎo)課堂。六、課程考核方法考核環(huán)節(jié)所占分值考核與評(píng)價(jià)細(xì)則對(duì)應(yīng)課程目標(biāo)(1)自主自助式作業(yè)20%自主自助式作業(yè),占總成績(jī)的10%。課程目標(biāo)1~2(2)實(shí)驗(yàn)上機(jī)隨堂測(cè)試50%實(shí)驗(yàn)上機(jī)隨堂測(cè)試,占總成績(jī)的60%。課程目標(biāo)1~3(3)開放式實(shí)驗(yàn)大作業(yè)20%開放式實(shí)驗(yàn)大作業(yè),占總成績(jī)的20%。不提交實(shí)驗(yàn)大作業(yè)者,課程總成績(jī)按0分計(jì)。課程目標(biāo)1~3(4)小班主題研討10%課程目標(biāo)2~3(5)附加分(1)完成實(shí)驗(yàn)上機(jī)隨堂測(cè)試的附加題,獲得附加分。(2)同時(shí)在x86平臺(tái)和鯤鵬計(jì)算平臺(tái)上開發(fā)程序,獲得附加分。課程目標(biāo)1~3課程免修(1)參加ACM/ICPC、NOI/NOIP競(jìng)賽并獲得省級(jí)或省級(jí)以上獎(jiǎng)項(xiàng)者,在中國大學(xué)MOOC平臺(tái)上選修《C語言程序設(shè)計(jì)精髓》MOOC課程并獲得合格認(rèn)證證書者,或選修《程序設(shè)計(jì)基礎(chǔ)》MOOC課程(含大學(xué)先修課)并獲得優(yōu)秀認(rèn)證證書者,均有資格參加免修考試。(2)免修考試成績(jī)?cè)?0分及以上者,可以免修本課程。(3)具有參加免修考試資格但未參加免修考試或免修考試未達(dá)到90分者,可以免自主式作業(yè),均按滿分計(jì)。(4)參加ACM/ICPC、NOI/NOIP競(jìng)賽并獲得省級(jí)或省級(jí)以上獎(jiǎng)項(xiàng)者,可以免自主自助式作業(yè)和實(shí)驗(yàn)上機(jī)隨堂測(cè)試。課程最終成績(jī)=(1)+(2)+(3)+(4)+(5)七、主要教材與參考書1. 蘇小紅,王宇穎,孫志崗等.《C語言程序設(shè)計(jì)(第4版)》,高等教育出版社,2019年7月2. 蘇小紅,王甜甜,車萬翔等.《C語言程序設(shè)計(jì)學(xué)習(xí)指導(dǎo)(第4版)》,高等教育出版社,2019年9月3. 《C語言程序設(shè)計(jì)精髓》MOOC課程,愛課程中國大學(xué)MOOC平臺(tái)4. 《程序設(shè)計(jì)基礎(chǔ)》MOOC課程,愛課程中國大學(xué)MOOC平臺(tái)主要參考書:1.P.J.Deitel,H.M.Deitel等,《CHowtoProgram,EighthEdition》,電子工業(yè)出版社,2017年撰寫人:張彥航審核人:史先俊日期:《高級(jí)語言程序設(shè)計(jì)》課程教學(xué)大綱一、課程基本信息課程代碼:22CS21001課程名稱:高級(jí)語言程序設(shè)計(jì)課程英文名稱:High-levelLanguageProgramming總學(xué)時(shí):48理論學(xué)時(shí):32實(shí)驗(yàn)學(xué)時(shí):16上機(jī)學(xué)時(shí):實(shí)踐學(xué)時(shí):課外輔導(dǎo)學(xué)時(shí):學(xué)分:3開課單位:計(jì)算學(xué)部授課對(duì)象:計(jì)算機(jī)和電信大類專業(yè)集群本科生(適用于2023級(jí))開課學(xué)期:1秋先修課程:無二、課程目標(biāo)《高級(jí)語言程序設(shè)計(jì)》是計(jì)算機(jī)和電信大類/軟件工程大類的一門重要的專業(yè)基礎(chǔ)課程。設(shè)置本課程的主要目的是使學(xué)生掌握用計(jì)算機(jī)分析和解決問題的思維方法以及程序設(shè)計(jì)的基本方法,建立從問題到算法再到程序的認(rèn)知,在從問題到算法再到程序的問題求解及程序構(gòu)造和實(shí)現(xiàn)的過程中理解高級(jí)語言的基本構(gòu)造要素以及算法和數(shù)據(jù)結(jié)構(gòu)在程序構(gòu)造中的作用,具備良好的編程素養(yǎng),以及綜合運(yùn)用所學(xué)程序設(shè)計(jì)語言和程序設(shè)計(jì)方法,設(shè)計(jì)、構(gòu)造和應(yīng)用計(jì)算系統(tǒng)求解科學(xué)或工程問題的程序設(shè)計(jì)和實(shí)現(xiàn)能力,為后繼課程的學(xué)習(xí)和將來從事軟件開發(fā)、解決復(fù)雜工程問題奠定編程能力基礎(chǔ)。課程具體目標(biāo)如下:課程目標(biāo)1:掌握程序設(shè)計(jì)的方法學(xué)基礎(chǔ),培養(yǎng)學(xué)生閱讀程序、編寫程序和調(diào)試程序的能力,使學(xué)生能夠選擇與熟練運(yùn)用現(xiàn)代化集成開發(fā)工具編寫、測(cè)試和調(diào)試程序,了解鯤鵬體系和鯤鵬計(jì)算平臺(tái)應(yīng)用開發(fā)的流程,鯤鵬計(jì)算平臺(tái)和X86平臺(tái)的差異,以及針對(duì)編譯型語言(C語言)掌握鯤鵬計(jì)算平臺(tái)和X86平臺(tái)代碼編寫及編譯的差異,具備良好的編程素養(yǎng)、職業(yè)道德以及自主學(xué)習(xí)和終身學(xué)習(xí)能力。課程目標(biāo)2:掌握程序設(shè)計(jì)所需的問題求解基礎(chǔ),培養(yǎng)學(xué)生從問題抽象為數(shù)學(xué)模型或算法再轉(zhuǎn)化為計(jì)算機(jī)可實(shí)現(xiàn)的程序的能力,使學(xué)生針對(duì)計(jì)算、統(tǒng)計(jì)、分類等相關(guān)的實(shí)際問題,能夠有效使用程序設(shè)計(jì)語言和結(jié)構(gòu)化程序設(shè)計(jì)方法,并恰當(dāng)使用枚舉、遞推、分治或遞歸等常用問題求解方法,完成經(jīng)典問題求解程序的設(shè)計(jì)與實(shí)現(xiàn)。課程目標(biāo)3:掌握程序設(shè)計(jì)所需的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ),培養(yǎng)學(xué)生利用算法和數(shù)據(jù)結(jié)構(gòu)構(gòu)造程序的能力,使學(xué)生針對(duì)科學(xué)計(jì)算/文本處理/人工智能相關(guān)的復(fù)雜工程問題,能夠使用恰當(dāng)?shù)乃惴ê蛿?shù)據(jù)結(jié)構(gòu)以及模塊化程序設(shè)計(jì)方法,完成涉及排序、檢索、匹配等算法的實(shí)際生活問題或與專業(yè)背景相關(guān)的工程實(shí)際問題的程序設(shè)計(jì)與實(shí)現(xiàn)。三、課程目標(biāo)與畢業(yè)要求對(duì)應(yīng)關(guān)系畢業(yè)要求畢業(yè)要求具體描述課程目標(biāo)1.現(xiàn)代工具運(yùn)用能力能夠針對(duì)計(jì)算相關(guān)的復(fù)雜工程問題,開發(fā)、選擇與使用恰當(dāng)?shù)墓ぞ哳愑?jì)算系統(tǒng),預(yù)測(cè)、模擬或求解問題,并能夠理解其局限性。課程目標(biāo)12.工程知識(shí)能夠?qū)?shù)學(xué)、自然科學(xué)、工程基礎(chǔ)和專業(yè)知識(shí)用于解決復(fù)雜工程問題。課程目標(biāo)23.設(shè)計(jì)/開發(fā)解決方案能夠設(shè)計(jì)針對(duì)復(fù)雜工程問題的解決方案,設(shè)計(jì)滿足特定需求的系統(tǒng)、單元(部件)或工藝流程,并能夠在設(shè)計(jì)環(huán)節(jié)中體現(xiàn)創(chuàng)新意識(shí),考慮社會(huì)、健康、安全、法律、文化以及環(huán)境等因素。課程目標(biāo)3注:畢業(yè)要求參照附件(工程教育認(rèn)證通用標(biāo)準(zhǔn)之畢業(yè)要求),從中選取課程目標(biāo)支撐的畢業(yè)要求條目。四、課程目標(biāo)與課程內(nèi)容對(duì)應(yīng)關(guān)系序號(hào)教學(xué)內(nèi)容教學(xué)要求學(xué)時(shí)教學(xué)方式對(duì)應(yīng)課程目標(biāo)11.程序設(shè)計(jì)的方法學(xué)基礎(chǔ)——基本運(yùn)算和基本I/O(1)計(jì)算機(jī)和程序設(shè)計(jì)的基礎(chǔ)知識(shí),計(jì)算機(jī)的基本工作原理;(2)鯤鵬計(jì)算產(chǎn)業(yè),華為鯤鵬計(jì)算平臺(tái)與x86平臺(tái)的差異,編譯型語言與解釋型語言及其運(yùn)行差異;(3)軟件開發(fā)的基本過程,現(xiàn)代集成開發(fā)環(huán)境,X86平臺(tái)上C語言程序的編譯、鏈接和運(yùn)行,鯤鵬計(jì)算平臺(tái)上的C語言編譯和運(yùn)行;(4)基本運(yùn)算;(5)基本I/O。1.了解計(jì)算機(jī)和程序設(shè)計(jì)的基礎(chǔ)知識(shí),以及鯤鵬計(jì)算平臺(tái)和X86平臺(tái)差異;了解在鯤鵬計(jì)算平臺(tái)和X86平臺(tái)上編寫及編譯C語言代碼的差異;2.了解編譯型語言與解釋型語言的運(yùn)行差異;掌握常用的集成開發(fā)環(huán)境,以及程序在不同平臺(tái)上的編譯、鏈接和運(yùn)行;3.掌握基本數(shù)據(jù)類型的基本運(yùn)算,以及鍵盤輸入和屏幕輸出等簡(jiǎn)單的I/O操作,能夠用基本數(shù)據(jù)類型、基本運(yùn)算構(gòu)造順序結(jié)構(gòu)的程序。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,221.程序設(shè)計(jì)的方法學(xué)基礎(chǔ)——基本控制結(jié)構(gòu)之選擇結(jié)構(gòu)(1)算法的基本概念,算法的流程圖描述;(2)單分支/雙分支/多分支選擇結(jié)構(gòu),條件語句,開關(guān)語句;(3)程序測(cè)試的目的,測(cè)試用例的基本概念和設(shè)計(jì)方法,程序測(cè)試的基本方法。1.掌握算法的基本概念和流程圖描述方法;2.掌握選擇結(jié)構(gòu)的基本控制方法,能夠用順序、選擇控制結(jié)構(gòu)編寫程序;3.掌握程序測(cè)試的基本方法,測(cè)試用例的設(shè)計(jì)方法。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,231.程序設(shè)計(jì)的方法學(xué)基礎(chǔ)——基本控制結(jié)構(gòu)之循環(huán)結(jié)構(gòu)(1)當(dāng)型/直到型循環(huán),計(jì)數(shù)控制/條件控制/標(biāo)記控制的循環(huán),循環(huán)語句;(2)嵌套循環(huán);(3)常用的程序排錯(cuò)方法和程序調(diào)試方法。1.掌握循環(huán)結(jié)構(gòu)的基本控制方法;2.面向累加求和、連乘求積、統(tǒng)計(jì)等應(yīng)用問題,能夠用順序、選擇和循環(huán)三種基本控制結(jié)構(gòu)構(gòu)造結(jié)構(gòu)化的程序;3.掌握程序調(diào)試的基本方法和技巧;掌握利用現(xiàn)代集成開發(fā)環(huán)境的調(diào)試工具調(diào)試程序的基本方法。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,241.程序設(shè)計(jì)的方法學(xué)基礎(chǔ)——基本程序設(shè)計(jì)方法(1)信息隱藏,過程抽象,模塊分解,結(jié)構(gòu)化程序設(shè)計(jì)方法,自頂向下、逐步求精的模塊化程序設(shè)計(jì)方法;(2)函數(shù)定義、函數(shù)調(diào)用,參數(shù)傳遞與函數(shù)的返回值,簡(jiǎn)單變量做函數(shù)參數(shù);(3)防御式編程,程序的健壯性、可讀性和可維護(hù)性;(4)多文件編程;(5)鯤鵬計(jì)算平臺(tái)和x86平臺(tái)上C函數(shù)調(diào)用差異及函數(shù)優(yōu)化,華為企業(yè)編程規(guī)范。1.理解結(jié)構(gòu)化程序設(shè)計(jì)的基本思想,以及好結(jié)構(gòu)對(duì)提高程序可讀性的重要性;2.掌握模塊分解的基本原則,以及自頂向下、逐步求精的模塊化程序設(shè)計(jì)方法;3.掌握用函數(shù)封裝和過程抽象重構(gòu)或復(fù)用代碼的基本方法;4.掌握防御式編程的基本方法,以及多文件編程方法;5.理解良好的代碼風(fēng)格對(duì)提高程序可讀性的重要性。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,252.程序設(shè)計(jì)的問題求解基礎(chǔ)——枚舉與遞推(1)枚舉,流程轉(zhuǎn)移控制語句(break,continue,goto),枚舉算法的優(yōu)化;(2)遞推,包括正向順推和反向逆推。1.掌握枚舉、遞推等常用問題求解方法及其程序?qū)崿F(xiàn)方法,2.針對(duì)給定的問題,能夠選擇恰當(dāng)?shù)牟呗詠砬蠼鈫栴}并對(duì)程序進(jìn)行優(yōu)化。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,262.程序設(shè)計(jì)的問題求解基礎(chǔ)——分治與遞歸(1)遞歸的基本思想,遞歸函數(shù)的定義、調(diào)用和執(zhí)行過程,條件遞歸的基本要素;(2)分治與遞歸之間的關(guān)系,遞歸與迭代的優(yōu)缺點(diǎn)分析。1.理解遞歸的基本思想,掌握遞歸問題的求解方法及其程序?qū)崿F(xiàn)方法;2.理解分治與遞歸、遞歸與迭代之間的關(guān)系。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,273.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——數(shù)組與一般線性表(1)一般線性表,數(shù)組的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),數(shù)組的定義,數(shù)組元素的遍歷;(2)按值調(diào)用與模擬按引用調(diào)用;(3)數(shù)組的應(yīng)用,計(jì)算最大最小值。1.掌握一般線性表的遍歷、求最值算法,針對(duì)給定的問題,能夠選擇恰當(dāng)?shù)乃惴?gòu)造程序;2.掌握按值調(diào)用與模擬按引用調(diào)用的區(qū)別,理解數(shù)組下標(biāo)越界產(chǎn)生的危害和后果。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)383.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——排序和查找算法(1)順序查找、二分查找的基本思想,及其函數(shù)程序?qū)崿F(xiàn);(2)選擇排序、冒泡排序、插入排序的基本思想,及其函數(shù)程序?qū)崿F(xiàn);(3)算法的時(shí)間復(fù)雜度。1.掌握一般線性表的排序和查找算法,針對(duì)給定的問題,能夠選擇恰當(dāng)?shù)乃惴?gòu)造程序;2.初步了解算法時(shí)間復(fù)雜度的概念。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)393.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——變量的指針與函數(shù)指針(1)直接尋址與間接尋址,指針的基本概念,指向變量的指針,指針變量作函數(shù)參數(shù)與模擬按引用調(diào)用;(2)指向函數(shù)的指針,函數(shù)指針及其應(yīng)用。1.掌握指針與間接尋址的概念,理解用指針變量作函數(shù)參數(shù)的特殊性;2.掌握指針做函數(shù)參數(shù)的參數(shù)傳遞方式,掌握指針做函數(shù)參數(shù)的程序設(shè)計(jì)和實(shí)現(xiàn)方法;3.掌握函數(shù)指針的概念及其應(yīng)用。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3103.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——字符串與文本處理(1)字符指針和字符數(shù)組,字符串的表示和存儲(chǔ)、輸入和輸出;(2)字符指針或字符數(shù)組做函數(shù)參數(shù)和從函數(shù)返回字符串,字符串復(fù)制、連接、比較等常用的字符串處理函數(shù);(3)緩沖區(qū)溢出,緩沖區(qū)溢出攻擊。1.掌握字符串的表示與存儲(chǔ)方式,以及輸入輸出方法;2.掌握向函數(shù)傳遞字符串和從函數(shù)返回字符串的函數(shù)設(shè)計(jì)方法;3.了解緩沖區(qū)溢出,以及緩沖區(qū)溢出攻擊的危害。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3113.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——字符串與文本處理(1)字符串的檢索、匹配等基本文本處理方法;(2)文件打開、關(guān)閉,以及字符串讀寫等文件處理操作;(3)X86和鯤鵬計(jì)算平臺(tái)char類型的差異。1.掌握字符串檢索、匹配、排序等基本文本處理的函數(shù)實(shí)現(xiàn)方法;2.掌握使用字符串讀寫函數(shù)進(jìn)行文件處理操作的方法;3.了解X86和鯤鵬計(jì)算平臺(tái)char類型的差異。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3123.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——指針與數(shù)組之間的關(guān)系(1)指針和一維數(shù)組間的關(guān)系;(2)指針和二維數(shù)組間的關(guān)系;(3)指針數(shù)組,字符串的物理排序與索引排序。1.掌握指針和數(shù)組間的關(guān)系;2.掌握指針數(shù)組的概念及其在字符串表示和處理中的應(yīng)用。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3133.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——用結(jié)構(gòu)封裝數(shù)據(jù)(1)從定長(zhǎng)數(shù)組到動(dòng)態(tài)數(shù)組,內(nèi)存映像,動(dòng)態(tài)內(nèi)存分配函數(shù),內(nèi)存管理,動(dòng)態(tài)數(shù)組的程序?qū)崿F(xiàn);(2)結(jié)構(gòu)體類型,共用體類型,枚舉類型;(3)用結(jié)構(gòu)體封裝函數(shù)參數(shù),向函數(shù)傳遞批量數(shù)據(jù),結(jié)構(gòu)體和共用體的應(yīng)用實(shí)例。1.掌握動(dòng)態(tài)內(nèi)存分配函數(shù)以及動(dòng)態(tài)數(shù)組的程序?qū)崿F(xiàn);2.了解結(jié)構(gòu)體和共用體類型的不同特點(diǎn)和應(yīng)用場(chǎng)景;3.掌握用結(jié)構(gòu)體封裝函數(shù)參數(shù)向函數(shù)傳遞結(jié)構(gòu)體數(shù)據(jù)的程序?qū)崿F(xiàn);2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3143.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——用結(jié)構(gòu)封裝數(shù)據(jù)(1)結(jié)構(gòu)體用于對(duì)復(fù)雜靜態(tài)數(shù)據(jù)結(jié)構(gòu)按關(guān)鍵字查找和排序的函數(shù)程序?qū)崿F(xiàn);(2)格式化文件讀寫;(3)抽象數(shù)據(jù)類型,從結(jié)構(gòu)體到類,從面向過程到面向?qū)ο蟆?.針對(duì)復(fù)數(shù)、有理數(shù)運(yùn)算、表格數(shù)據(jù)處理等應(yīng)用問題,能夠恰當(dāng)?shù)赜媒Y(jié)構(gòu)體構(gòu)造復(fù)雜數(shù)據(jù)類型并進(jìn)行程序?qū)崿F(xiàn);2.掌握用結(jié)構(gòu)體對(duì)復(fù)雜靜態(tài)數(shù)據(jù)結(jié)構(gòu)按關(guān)鍵字進(jìn)行查找和排序的程序?qū)崿F(xiàn);3.掌握文件I/O的基本操作。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3153.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——?jiǎng)討B(tài)數(shù)據(jù)結(jié)構(gòu)(1)數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),從靜態(tài)數(shù)據(jù)結(jié)構(gòu)到動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),從線性表的順序存儲(chǔ)到鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu);(2)單向鏈表的創(chuàng)建、節(jié)點(diǎn)的遍歷、插入、刪除等基本操作及其函數(shù)程序?qū)崿F(xiàn),單向鏈表的冒泡排序算法及其函數(shù)程序?qū)崿F(xiàn);(3)雙向鏈表、循環(huán)鏈表與單向鏈表的不同特點(diǎn),單循環(huán)鏈表應(yīng)用實(shí)例。1.掌握靜態(tài)數(shù)據(jù)結(jié)構(gòu)和動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),以及線性表的順序存儲(chǔ)到鏈?zhǔn)酱鎯?chǔ)的優(yōu)缺點(diǎn),針對(duì)給定的問題,能夠選擇恰當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)構(gòu)造程序;2.掌握單向鏈表的基本操作及其程序設(shè)計(jì)和實(shí)現(xiàn)方法;3.了解雙向鏈表、循環(huán)鏈表的基本特點(diǎn)。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3163.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——?jiǎng)討B(tài)數(shù)據(jù)結(jié)構(gòu)(1)限定性線性表,棧和隊(duì)列的數(shù)據(jù)訪問方式,棧和隊(duì)列的順序存儲(chǔ)與鏈?zhǔn)酱鎯?chǔ),棧和隊(duì)列的應(yīng)用實(shí)例;(2)樹和圖等其他數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)介,二叉樹的順序存儲(chǔ)與鏈?zhǔn)酱鎯?chǔ),二叉樹的遍歷;(3)內(nèi)存泄漏、野指針等常見的內(nèi)存錯(cuò)誤及解決對(duì)策;(4)選學(xué):鯤鵬多核體系、多線程編程以及弱內(nèi)存模型。1.掌握棧和隊(duì)列的數(shù)據(jù)訪問方式、存儲(chǔ)方式及其應(yīng)用;2.初步了解樹和圖等其他數(shù)據(jù)結(jié)構(gòu);3.了解內(nèi)存泄漏、非法內(nèi)存訪問等常見內(nèi)存錯(cuò)誤及其解決對(duì)策。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3實(shí)驗(yàn)1實(shí)現(xiàn)程序:大小寫字母轉(zhuǎn)換、平方根求和。分別在X86平臺(tái)下編譯和運(yùn)行C語言程序;以及在鯤鵬openEule系統(tǒng)下編譯和運(yùn)行C語言程序。了解鯤鵬和X86平臺(tái)C程序差異。X86平臺(tái)下編譯和運(yùn)行C語言程序。在鯤鵬計(jì)算平臺(tái)下搭建C語言開發(fā)運(yùn)行環(huán)境,編譯和運(yùn)行C語言程序。3過程評(píng)價(jià)/以考促練/生講生評(píng)課程目標(biāo)1~3實(shí)驗(yàn)2實(shí)驗(yàn)上機(jī)隨堂測(cè)試+實(shí)驗(yàn)課堂小翻轉(zhuǎn)。測(cè)試內(nèi)容:累加累乘/窮舉/遞推/遞歸掌握結(jié)構(gòu)化程序的設(shè)計(jì)方法,能夠選擇恰當(dāng)?shù)目刂平Y(jié)構(gòu)和問題求解策略求解實(shí)際問題3過程評(píng)價(jià)/以考促練/生講生評(píng)課程目標(biāo)1~3實(shí)驗(yàn)3實(shí)驗(yàn)上機(jī)隨堂測(cè)試+實(shí)驗(yàn)課堂小翻轉(zhuǎn)。測(cè)試內(nèi)容:二維數(shù)組/排序算法/查找算法/字符指針掌握一般線性表的遍歷、排序和查找等算法,能夠選擇和應(yīng)用恰當(dāng)?shù)乃惴ㄇ蠼鈱?shí)際問題3過程評(píng)價(jià)/以考促練/生講生評(píng)課程目標(biāo)1~3實(shí)驗(yàn)4實(shí)驗(yàn)上機(jī)隨堂測(cè)試+實(shí)驗(yàn)課堂小翻轉(zhuǎn)。測(cè)試內(nèi)容:字符串與文本處理/結(jié)構(gòu)體/鏈表掌握字符串的復(fù)制、連接、比較、檢索、匹配等基本操作,能夠選擇和應(yīng)用恰當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)求解實(shí)際問題3過程評(píng)價(jià)/以考促練/生講生評(píng)課程目標(biāo)1~3實(shí)驗(yàn)5實(shí)驗(yàn)主題研討。采用“生講生評(píng)、互動(dòng)研學(xué)的方式”分小班對(duì)算法/數(shù)據(jù)結(jié)構(gòu)等相關(guān)的不同實(shí)驗(yàn)主題進(jìn)行研討,包括鯤鵬平臺(tái)軟件開發(fā)經(jīng)驗(yàn)分享。培養(yǎng)查閱資料的能力、自學(xué)能力、團(tuán)隊(duì)合作能力與語言表達(dá)能力4實(shí)踐研學(xué)/互動(dòng)展學(xué)/生講生評(píng)課程目標(biāo)1~3五、課程教學(xué)方法1.強(qiáng)調(diào)編程方法,淡化語言語法:作為一門高級(jí)語言程序設(shè)計(jì)的入門課程,以講解編程方法和問題求解方法為主,避免學(xué)生在學(xué)習(xí)完程序設(shè)計(jì)后“只見樹木、不見森林”,只會(huì)語法,不會(huì)編程。2.面向應(yīng)用,問題驅(qū)動(dòng),以點(diǎn)帶面,突出重點(diǎn)和難點(diǎn),計(jì)算思維和編程能力培養(yǎng)為主,算法和數(shù)據(jù)結(jié)構(gòu)為輔:考慮到課時(shí)有限,本課程不能對(duì)所有知識(shí)點(diǎn)面面俱到的講解,要能夠以點(diǎn)帶面,針對(duì)具體的應(yīng)用,以從問題抽象為數(shù)學(xué)模型或算法再轉(zhuǎn)化為計(jì)算機(jī)可實(shí)現(xiàn)的程序?yàn)橹攸c(diǎn),培養(yǎng)學(xué)生選擇恰當(dāng)?shù)膯栴}求解策略或算法以及適合問題求解的數(shù)據(jù)結(jié)構(gòu),進(jìn)行程序設(shè)計(jì)和實(shí)現(xiàn)的能力。3.講練結(jié)合,精講多練,邊講邊練,以練為主:本課程的特點(diǎn)是實(shí)踐性強(qiáng),因此教學(xué)方法要以練為主,教師要帶領(lǐng)學(xué)生一起讀程序、寫程序和調(diào)試程序,讓學(xué)生邊學(xué)邊用,學(xué)以致用,讓學(xué)生在做中學(xué)和練中悟,目標(biāo)是“能讀懂優(yōu)秀的范例代碼,能編寫規(guī)范的程序,能調(diào)試有錯(cuò)誤的程序”。4.采用混合式教學(xué)方法,課前預(yù)習(xí),課上內(nèi)化,課后強(qiáng)化:引導(dǎo)學(xué)生課前先在MOOC課程中自學(xué),針對(duì)學(xué)生不易理解的難點(diǎn)和重點(diǎn)內(nèi)容,在課堂上通過精講多練和邊講邊練達(dá)到讓學(xué)生將知識(shí)內(nèi)化的目的,課后通過大量的代碼閱讀和編程訓(xùn)練強(qiáng)化其編程能力。5.以考督學(xué),以考促練,引導(dǎo)學(xué)生自主編程訓(xùn)練,輔助教師因材施教和有的放矢地改進(jìn)教學(xué):本課程有完備的教學(xué)輔助平臺(tái),包括面向?qū)W生自主學(xué)習(xí)的高級(jí)語言程序設(shè)計(jì)能力訓(xùn)練平臺(tái)、編程題考試自動(dòng)評(píng)分系統(tǒng)、試卷和題庫管理系統(tǒng),因此可以借助這些平臺(tái)和階段考核引導(dǎo)和促進(jìn)學(xué)生自主編程訓(xùn)練,使教師及時(shí)掌握學(xué)生的學(xué)習(xí)進(jìn)展,及時(shí)與學(xué)生溝通,對(duì)學(xué)習(xí)困難的學(xué)生給與個(gè)性化幫助和輔導(dǎo)。6.適當(dāng)課堂翻轉(zhuǎn),注重項(xiàng)目實(shí)踐:1)課堂隨機(jī)互動(dòng)小翻轉(zhuǎn),通過快問快答、紙上練兵、你寫我評(píng)、奇思妙想、程序打擂臺(tái)等方式,實(shí)現(xiàn)教師導(dǎo)學(xué)。2)實(shí)驗(yàn)上機(jī)隨堂測(cè)試后,通過“生講生評(píng)”方式分享不同的編程方法或剖析程序錯(cuò)誤的根源。3)小班主題研討采用“生講生評(píng)、互動(dòng)研學(xué)、同伴助學(xué)”的方式,分小班針對(duì)不同的實(shí)踐研學(xué)主題進(jìn)行實(shí)踐研學(xué)、同伴助學(xué)、互動(dòng)展學(xué)。為了激發(fā)和鼓勵(lì)學(xué)生的求知欲、創(chuàng)新意識(shí)和創(chuàng)新思維,從“要我學(xué)”轉(zhuǎn)變?yōu)椤拔乙獙W(xué)”,提高學(xué)生的自主學(xué)習(xí)、語言表達(dá)、系統(tǒng)編程能力、小組合作以及創(chuàng)新實(shí)踐能力,允許學(xué)生自愿組隊(duì)、自選主題,通過查閱資料和自學(xué)相關(guān)內(nèi)容,以團(tuán)隊(duì)合作方式完成一個(gè)主題的研討,現(xiàn)場(chǎng)講解算法,學(xué)生現(xiàn)場(chǎng)提問,完全讓學(xué)生唱主角、由學(xué)生主導(dǎo)課堂。六、課程考核方法考核環(huán)節(jié)所占分值考核與評(píng)價(jià)細(xì)則對(duì)應(yīng)課程目標(biāo)(1)自主自助式作業(yè)10%自主自助式作業(yè),占總成績(jī)的10%。課程目標(biāo)1~2(2)實(shí)驗(yàn)上機(jī)隨堂測(cè)試60%實(shí)驗(yàn)上機(jī)隨堂測(cè)試,占總成績(jī)的60%。課程目標(biāo)1~3(3)開放式實(shí)驗(yàn)大作業(yè)20%開放式實(shí)驗(yàn)大作業(yè),占總成績(jī)的20%。不提交實(shí)驗(yàn)大作業(yè)者,課程總成績(jī)按0分計(jì)。課程目標(biāo)1~3(4)小班主題研討10%課程目標(biāo)2~3(5)附加分(1)完成實(shí)驗(yàn)上機(jī)隨堂測(cè)試的附加題,獲得附加分。(2)同時(shí)在x86平臺(tái)和鯤鵬計(jì)算平臺(tái)上開發(fā)程序,獲得附加分。課程目標(biāo)1~3課程免修(1)參加ACM/ICPC、NOI/NOIP競(jìng)賽并獲得省級(jí)或省級(jí)以上獎(jiǎng)項(xiàng)者,在中國大學(xué)MOOC平臺(tái)上選修《C語言程序設(shè)計(jì)精髓》MOOC課程并獲得合格認(rèn)證證書者,或選修《程序設(shè)計(jì)基礎(chǔ)》MOOC課程(含大學(xué)先修課)并獲得優(yōu)秀認(rèn)證證書者,均有資格參加免修考試。(2)免修考試成績(jī)?cè)?0分及以上者,可以免修本課程。(3)具有參加免修考試資格但未參加免修考試或免修考試未達(dá)到90分者,可以免自主式作業(yè),均按滿分計(jì)。(4)參加ACM/ICPC、NOI/NOIP競(jìng)賽并獲得省級(jí)或省級(jí)以上獎(jiǎng)項(xiàng)者,可以免自主自助式作業(yè)和實(shí)驗(yàn)上機(jī)隨堂測(cè)試。課程最終成績(jī)=(1)+(2)+(3)+(4)+(5)七、主要教材與參考書蘇小紅,葉麟,張羽,張彥航.《程序設(shè)計(jì)基礎(chǔ)(C語言)慕課版》,人民郵電出版社,2022年12月《C語言程序設(shè)計(jì)精髓》MOOC課程,愛課程中國大學(xué)MOOC平臺(tái),學(xué)堂在線平臺(tái)《程序設(shè)計(jì)基礎(chǔ)》MOOC課程,愛課程中國大學(xué)MOOC平臺(tái),學(xué)堂在線平臺(tái)主要參考書:1.蘇小紅,王宇穎,孫志崗等.《C語言程序設(shè)計(jì)(第4版)》,高等教育出版社,2019年7月2.蘇小紅,王甜甜,車萬翔等.《C語言程序設(shè)計(jì)學(xué)習(xí)指導(dǎo)(第4版)》,高等教育出版社,2019年9月撰寫人:張彥航審核人:史先俊日期:
《高級(jí)語言程序設(shè)計(jì)》課程教學(xué)大綱一、課程基本信息課程代碼:22CS21001課程名稱:高級(jí)語言程序設(shè)計(jì)課程英文名稱:High-levelLanguageProgramming總學(xué)時(shí):48理論學(xué)時(shí):32實(shí)驗(yàn)學(xué)時(shí):16上機(jī)學(xué)時(shí):實(shí)踐學(xué)時(shí):課外輔導(dǎo)學(xué)時(shí):學(xué)分:3開課單位:計(jì)算學(xué)部授課對(duì)象:計(jì)算機(jī)和電信大類專業(yè)集群本科生(適用于2024級(jí))開課學(xué)期:1秋先修課程:無二、課程目標(biāo)《高級(jí)語言程序設(shè)計(jì)》是計(jì)算機(jī)和電信大類/軟件工程大類的一門重要的專業(yè)基礎(chǔ)課程。設(shè)置本課程的主要目的是使學(xué)生掌握用計(jì)算機(jī)分析和解決問題的思維方法以及程序設(shè)計(jì)的基本方法,建立從問題到算法再到程序的認(rèn)知,在從問題到算法再到程序的問題求解及程序構(gòu)造和實(shí)現(xiàn)的過程中理解高級(jí)語言的基本構(gòu)造要素以及算法和數(shù)據(jù)結(jié)構(gòu)在程序構(gòu)造中的作用,具備良好的編程素養(yǎng),以及綜合運(yùn)用所學(xué)程序設(shè)計(jì)語言和程序設(shè)計(jì)方法,設(shè)計(jì)、構(gòu)造和應(yīng)用計(jì)算系統(tǒng)求解科學(xué)或工程問題的程序設(shè)計(jì)和實(shí)現(xiàn)能力,為后繼課程的學(xué)習(xí)和將來從事軟件開發(fā)、解決復(fù)雜工程問題奠定編程能力基礎(chǔ)。課程具體目標(biāo)如下:課程目標(biāo)1:掌握程序設(shè)計(jì)的方法學(xué)基礎(chǔ),培養(yǎng)學(xué)生閱讀程序、編寫程序和調(diào)試程序的能力,使學(xué)生能夠選擇與熟練運(yùn)用現(xiàn)代化集成開發(fā)工具編寫、測(cè)試和調(diào)試程序,了解鯤鵬計(jì)算產(chǎn)業(yè)和鯤鵬計(jì)算平臺(tái)程序開發(fā)的流程、鯤鵬計(jì)算平臺(tái)和X86平臺(tái)的差異,以及在鯤鵬計(jì)算平臺(tái)和X86平臺(tái)上編寫及編譯C語言程序的差異,具備良好的編程素養(yǎng)、職業(yè)道德以及自主學(xué)習(xí)和終身學(xué)習(xí)能力。課程目標(biāo)2:掌握程序設(shè)計(jì)所需的問題求解基礎(chǔ),培養(yǎng)學(xué)生從問題抽象為數(shù)學(xué)模型或算法再轉(zhuǎn)化為計(jì)算機(jī)可實(shí)現(xiàn)的程序的能力,使學(xué)生針對(duì)計(jì)算、統(tǒng)計(jì)、分類等相關(guān)的實(shí)際問題,能夠有效使用程序設(shè)計(jì)語言和結(jié)構(gòu)化程序設(shè)計(jì)方法,并恰當(dāng)使用枚舉、遞推、分治或遞歸等常用問題求解方法,完成經(jīng)典問題求解程序的設(shè)計(jì)與實(shí)現(xiàn)。課程目標(biāo)3:掌握程序設(shè)計(jì)所需的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ),培養(yǎng)學(xué)生利用算法和數(shù)據(jù)結(jié)構(gòu)構(gòu)造程序的能力,使學(xué)生針對(duì)科學(xué)計(jì)算/文本處理/人工智能相關(guān)的復(fù)雜工程問題,能夠使用恰當(dāng)?shù)乃惴ê蛿?shù)據(jù)結(jié)構(gòu)以及模塊化程序設(shè)計(jì)方法,完成涉及排序、檢索、匹配等算法的實(shí)際生活問題或與專業(yè)背景相關(guān)的工程實(shí)際問題的程序設(shè)計(jì)與實(shí)現(xiàn)。三、課程目標(biāo)與畢業(yè)要求對(duì)應(yīng)關(guān)系畢業(yè)要求畢業(yè)要求具體描述課程目標(biāo)1.現(xiàn)代工具運(yùn)用能力能夠針對(duì)計(jì)算相關(guān)的復(fù)雜工程問題,開發(fā)、選擇與使用恰當(dāng)?shù)墓ぞ哳愑?jì)算系統(tǒng),預(yù)測(cè)、模擬或求解問題,并能夠理解其局限性。課程目標(biāo)12.工程知識(shí)能夠?qū)?shù)學(xué)、自然科學(xué)、工程基礎(chǔ)和專業(yè)知識(shí)用于解決復(fù)雜工程問題。課程目標(biāo)23.設(shè)計(jì)/開發(fā)解決方案能夠設(shè)計(jì)針對(duì)復(fù)雜工程問題的解決方案,設(shè)計(jì)滿足特定需求的系統(tǒng)、單元(部件)或工藝流程,并能夠在設(shè)計(jì)環(huán)節(jié)中體現(xiàn)創(chuàng)新意識(shí),考慮社會(huì)、健康、安全、法律、文化以及環(huán)境等因素。課程目標(biāo)3注:畢業(yè)要求參照附件(工程教育認(rèn)證通用標(biāo)準(zhǔn)之畢業(yè)要求),從中選取課程目標(biāo)支撐的畢業(yè)要求條目。四、課程目標(biāo)與課程內(nèi)容對(duì)應(yīng)關(guān)系序號(hào)教學(xué)內(nèi)容教學(xué)要求學(xué)時(shí)教學(xué)方式對(duì)應(yīng)課程目標(biāo)11.程序設(shè)計(jì)的方法學(xué)基礎(chǔ)——基本運(yùn)算和基本I/O(1)計(jì)算機(jī)和程序設(shè)計(jì)的基礎(chǔ)知識(shí),計(jì)算機(jī)的基本工作原理;(2)鯤鵬計(jì)算產(chǎn)業(yè),華為鯤鵬計(jì)算平臺(tái)與x86平臺(tái)的差異,編譯型語言與解釋型語言及其運(yùn)行差異;(3)軟件開發(fā)的基本過程,現(xiàn)代集成開發(fā)環(huán)境,X86平臺(tái)上C語言程序的編譯、鏈接和運(yùn)行,鯤鵬計(jì)算平臺(tái)上的C語言編譯和運(yùn)行;(4)基本運(yùn)算;(5)基本I/O。1.了解計(jì)算機(jī)和程序設(shè)計(jì)的基礎(chǔ)知識(shí),以及鯤鵬計(jì)算平臺(tái)和X86平臺(tái)差異;了解在鯤鵬計(jì)算平臺(tái)和X86平臺(tái)上編寫及編譯C語言代碼的差異;2.了解編譯型語言與解釋型語言的運(yùn)行差異;掌握常用的集成開發(fā)環(huán)境,以及程序在不同平臺(tái)上的編譯、鏈接和運(yùn)行;3.掌握基本數(shù)據(jù)類型的基本運(yùn)算,以及鍵盤輸入和屏幕輸出等簡(jiǎn)單的I/O操作,能夠用基本數(shù)據(jù)類型、基本運(yùn)算構(gòu)造順序結(jié)構(gòu)的程序。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,221.程序設(shè)計(jì)的方法學(xué)基礎(chǔ)——基本控制結(jié)構(gòu)之選擇結(jié)構(gòu)(1)算法的基本概念,算法的流程圖描述;(2)單分支/雙分支/多分支選擇結(jié)構(gòu),條件語句,開關(guān)語句;(3)程序測(cè)試的目的,測(cè)試用例的基本概念和設(shè)計(jì)方法,程序測(cè)試的基本方法。1.掌握算法的基本概念和流程圖描述方法;2.掌握選擇結(jié)構(gòu)的基本控制方法,能夠用順序、選擇控制結(jié)構(gòu)編寫程序;3.掌握程序測(cè)試的基本方法,測(cè)試用例的設(shè)計(jì)方法。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,231.程序設(shè)計(jì)的方法學(xué)基礎(chǔ)——基本控制結(jié)構(gòu)之循環(huán)結(jié)構(gòu)(1)當(dāng)型/直到型循環(huán),計(jì)數(shù)控制/條件控制/標(biāo)記控制的循環(huán),循環(huán)語句;(2)嵌套循環(huán);(3)常用的程序排錯(cuò)方法和程序調(diào)試方法。1.掌握循環(huán)結(jié)構(gòu)的基本控制方法;2.面向累加求和、連乘求積、統(tǒng)計(jì)等應(yīng)用問題,能夠用順序、選擇和循環(huán)三種基本控制結(jié)構(gòu)構(gòu)造結(jié)構(gòu)化的程序;3.掌握程序調(diào)試的基本方法和技巧;掌握利用現(xiàn)代集成開發(fā)環(huán)境的調(diào)試工具調(diào)試程序的基本方法。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,241.程序設(shè)計(jì)的方法學(xué)基礎(chǔ)——基本程序設(shè)計(jì)方法(1)信息隱藏,過程抽象,模塊分解,結(jié)構(gòu)化程序設(shè)計(jì)方法,自頂向下、逐步求精的模塊化程序設(shè)計(jì)方法;(2)函數(shù)定義、函數(shù)調(diào)用,參數(shù)傳遞與函數(shù)的返回值,簡(jiǎn)單變量做函數(shù)參數(shù);(3)防御式編程,程序的健壯性、可讀性和可維護(hù)性;(4)多文件編程;(5)鯤鵬計(jì)算平臺(tái)和x86平臺(tái)上C函數(shù)調(diào)用差異及函數(shù)優(yōu)化,華為企業(yè)編程規(guī)范。1.理解結(jié)構(gòu)化程序設(shè)計(jì)的基本思想,以及好結(jié)構(gòu)對(duì)提高程序可讀性的重要性;2.掌握模塊分解的基本原則,以及自頂向下、逐步求精的模塊化程序設(shè)計(jì)方法;3.掌握用函數(shù)封裝和過程抽象重構(gòu)或復(fù)用代碼的基本方法;4.掌握防御式編程的基本方法,以及多文件編程方法;5.理解良好的代碼風(fēng)格對(duì)提高程序可讀性的重要性。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,252.程序設(shè)計(jì)的問題求解基礎(chǔ)——枚舉與遞推(1)枚舉,流程轉(zhuǎn)移控制語句(break,continue,goto),枚舉算法的優(yōu)化;(2)遞推,包括正向順推和反向逆推。1.掌握枚舉、遞推等常用問題求解方法及其程序?qū)崿F(xiàn)方法,2.針對(duì)給定的問題,能夠選擇恰當(dāng)?shù)牟呗詠砬蠼鈫栴}并對(duì)程序進(jìn)行優(yōu)化。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,262.程序設(shè)計(jì)的問題求解基礎(chǔ)——分治與遞歸(1)遞歸的基本思想,遞歸函數(shù)的定義、調(diào)用和執(zhí)行過程,條件遞歸的基本要素;(2)分治與遞歸之間的關(guān)系,遞歸與迭代的優(yōu)缺點(diǎn)分析。1.理解遞歸的基本思想,掌握遞歸問題的求解方法及其程序?qū)崿F(xiàn)方法;2.理解分治與遞歸、遞歸與迭代之間的關(guān)系。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)1,273.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——數(shù)組與一般線性表(1)一般線性表,數(shù)組的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),數(shù)組的定義,數(shù)組元素的遍歷;(2)按值調(diào)用與模擬按引用調(diào)用;(3)數(shù)組的應(yīng)用,計(jì)算最大最小值。1.掌握一般線性表的遍歷、求最值算法,針對(duì)給定的問題,能夠選擇恰當(dāng)?shù)乃惴?gòu)造程序;2.掌握按值調(diào)用與模擬按引用調(diào)用的區(qū)別,理解數(shù)組下標(biāo)越界產(chǎn)生的危害和后果。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)383.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——排序和查找算法(1)順序查找、二分查找的基本思想,及其函數(shù)程序?qū)崿F(xiàn);(2)選擇排序、冒泡排序、插入排序的基本思想,及其函數(shù)程序?qū)崿F(xiàn);(3)算法的時(shí)間復(fù)雜度。1.掌握一般線性表的排序和查找算法,針對(duì)給定的問題,能夠選擇恰當(dāng)?shù)乃惴?gòu)造程序;2.初步了解算法時(shí)間復(fù)雜度的概念。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)393.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——變量的指針與函數(shù)指針(1)直接尋址與間接尋址,指針的基本概念,指向變量的指針,指針變量作函數(shù)參數(shù)與模擬按引用調(diào)用;(2)指向函數(shù)的指針,函數(shù)指針及其應(yīng)用。1.掌握指針與間接尋址的概念,理解用指針變量作函數(shù)參數(shù)的特殊性;2.掌握指針做函數(shù)參數(shù)的參數(shù)傳遞方式,掌握指針做函數(shù)參數(shù)的程序設(shè)計(jì)和實(shí)現(xiàn)方法;3.掌握函數(shù)指針的概念及其應(yīng)用。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3103.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——字符串與文本處理(1)字符指針和字符數(shù)組,字符串的表示和存儲(chǔ)、輸入和輸出;(2)字符指針或字符數(shù)組做函數(shù)參數(shù)和從函數(shù)返回字符串,字符串復(fù)制、連接、比較等常用的字符串處理函數(shù);(3)緩沖區(qū)溢出,緩沖區(qū)溢出攻擊。1.掌握字符串的表示與存儲(chǔ)方式,以及輸入輸出方法;2.掌握向函數(shù)傳遞字符串和從函數(shù)返回字符串的函數(shù)設(shè)計(jì)方法;3.了解緩沖區(qū)溢出,以及緩沖區(qū)溢出攻擊的危害。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3113.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——字符串與文本處理(1)字符串的檢索、匹配等基本文本處理方法;(2)文件打開、關(guān)閉,以及字符串讀寫等文件處理操作;(3)X86和鯤鵬計(jì)算平臺(tái)char類型的差異。1.掌握字符串檢索、匹配、排序等基本文本處理的函數(shù)實(shí)現(xiàn)方法;2.掌握使用字符串讀寫函數(shù)進(jìn)行文件處理操作的方法;3.了解X86和鯤鵬計(jì)算平臺(tái)char類型的差異。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3123.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——指針與數(shù)組之間的關(guān)系(1)指針和一維數(shù)組間的關(guān)系;(2)指針和二維數(shù)組間的關(guān)系;(3)指針數(shù)組,字符串的物理排序與索引排序。1.掌握指針和數(shù)組間的關(guān)系;2.掌握指針數(shù)組的概念及其在字符串表示和處理中的應(yīng)用。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3133.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——用結(jié)構(gòu)封裝數(shù)據(jù)(1)從定長(zhǎng)數(shù)組到動(dòng)態(tài)數(shù)組,內(nèi)存映像,動(dòng)態(tài)內(nèi)存分配函數(shù),內(nèi)存管理,動(dòng)態(tài)數(shù)組的程序?qū)崿F(xiàn);(2)結(jié)構(gòu)體類型,共用體類型,枚舉類型;(3)用結(jié)構(gòu)體封裝函數(shù)參數(shù),向函數(shù)傳遞批量數(shù)據(jù),結(jié)構(gòu)體和共用體的應(yīng)用實(shí)例。1.掌握動(dòng)態(tài)內(nèi)存分配函數(shù)以及動(dòng)態(tài)數(shù)組的程序?qū)崿F(xiàn);2.了解結(jié)構(gòu)體和共用體類型的不同特點(diǎn)和應(yīng)用場(chǎng)景;3.掌握用結(jié)構(gòu)體封裝函數(shù)參數(shù)向函數(shù)傳遞結(jié)構(gòu)體數(shù)據(jù)的程序?qū)崿F(xiàn);2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3143.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——用結(jié)構(gòu)封裝數(shù)據(jù)(1)結(jié)構(gòu)體用于對(duì)復(fù)雜靜態(tài)數(shù)據(jù)結(jié)構(gòu)按關(guān)鍵字查找和排序的函數(shù)程序?qū)崿F(xiàn);(2)格式化文件讀寫;(3)抽象數(shù)據(jù)類型,從結(jié)構(gòu)體到類,從面向過程到面向?qū)ο蟆?.針對(duì)復(fù)數(shù)、有理數(shù)運(yùn)算、表格數(shù)據(jù)處理等應(yīng)用問題,能夠恰當(dāng)?shù)赜媒Y(jié)構(gòu)體構(gòu)造復(fù)雜數(shù)據(jù)類型并進(jìn)行程序?qū)崿F(xiàn);2.掌握用結(jié)構(gòu)體對(duì)復(fù)雜靜態(tài)數(shù)據(jù)結(jié)構(gòu)按關(guān)鍵字進(jìn)行查找和排序的程序?qū)崿F(xiàn);3.掌握文件I/O的基本操作。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3153.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——?jiǎng)討B(tài)數(shù)據(jù)結(jié)構(gòu)(1)數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),從靜態(tài)數(shù)據(jù)結(jié)構(gòu)到動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),從線性表的順序存儲(chǔ)到鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu);(2)單向鏈表的創(chuàng)建、節(jié)點(diǎn)的遍歷、插入、刪除等基本操作及其函數(shù)程序?qū)崿F(xiàn),單向鏈表的冒泡排序算法及其函數(shù)程序?qū)崿F(xiàn);(3)雙向鏈表、循環(huán)鏈表與單向鏈表的不同特點(diǎn),單循環(huán)鏈表應(yīng)用實(shí)例。1.掌握靜態(tài)數(shù)據(jù)結(jié)構(gòu)和動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),以及線性表的順序存儲(chǔ)到鏈?zhǔn)酱鎯?chǔ)的優(yōu)缺點(diǎn),針對(duì)給定的問題,能夠選擇恰當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)構(gòu)造程序;2.掌握單向鏈表的基本操作及其程序設(shè)計(jì)和實(shí)現(xiàn)方法;3.了解雙向鏈表、循環(huán)鏈表的基本特點(diǎn)。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3163.程序設(shè)計(jì)的算法和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)——?jiǎng)討B(tài)數(shù)據(jù)結(jié)構(gòu)(1)限定性線性表,棧和隊(duì)列的數(shù)據(jù)訪問方式,棧和隊(duì)列的順序存儲(chǔ)與鏈?zhǔn)酱鎯?chǔ),棧和隊(duì)列的應(yīng)用實(shí)例;(2)樹和圖等其他數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)介,二叉樹的順序存儲(chǔ)與鏈?zhǔn)酱鎯?chǔ),二叉樹的遍歷;(3)內(nèi)存泄漏、野指針等常見的內(nèi)存錯(cuò)誤及解決對(duì)策;(4)選學(xué):鯤鵬多核體系、多線程編程以及弱內(nèi)存模型。1.掌握棧和隊(duì)列的數(shù)據(jù)訪問方式、存儲(chǔ)方式及其應(yīng)用;2.初步了解樹和圖等其他數(shù)據(jù)結(jié)構(gòu);3.了解內(nèi)存泄漏、非法內(nèi)存訪問等常見內(nèi)存錯(cuò)誤及其解決對(duì)策。2慕課自學(xué)/課堂講授/講練結(jié)合/邊講邊練課程目標(biāo)3實(shí)驗(yàn)1模擬自動(dòng)駕駛車輛的執(zhí)行器Executor組件功能,設(shè)計(jì)前進(jìn)、左轉(zhuǎn)、右轉(zhuǎn)等基本控制功能。熟悉高質(zhì)量編程基礎(chǔ),包括開發(fā)者測(cè)試和編碼規(guī)范。1.學(xué)習(xí)使用gtest編寫測(cè)試用例;2.學(xué)習(xí)使用版本控制軟件git管理代碼,培養(yǎng)團(tuán)隊(duì)協(xié)作能力;3.建立良好的測(cè)試防護(hù)意識(shí),測(cè)試先行,通過測(cè)試用例表述業(yè)務(wù),實(shí)現(xiàn)代碼文檔化;4.學(xué)習(xí)編程規(guī)范、養(yǎng)成良好的編碼習(xí)慣,提高代碼可讀性、可維護(hù)性。3過程評(píng)價(jià)/生講生評(píng)課程目標(biāo)1~3實(shí)驗(yàn)2模擬自動(dòng)駕駛車輛的執(zhí)行器Executor組件功能,支持倒車和加速功能。熟悉模塊化編程,包括任務(wù)分解,模塊化設(shè)計(jì)和模塊化編程。1.學(xué)習(xí)模塊化設(shè)計(jì)原則;2.學(xué)習(xí)子模塊的劃分方法;3.學(xué)習(xí)定義頭文件,保證模塊功能單一;4.學(xué)習(xí)使用gcc編譯鏈接單個(gè)文件和多個(gè)文件。3過程評(píng)價(jià)/生講生評(píng)課程目標(biāo)1~3實(shí)驗(yàn)3模擬自動(dòng)駕駛車輛的執(zhí)行器Executor組件功能,支持掉頭功能。熟悉函數(shù)指針和表驅(qū)動(dòng)。1.理解函數(shù)指針的概念,并能夠正確使用函數(shù)指針對(duì)代碼進(jìn)行簡(jiǎn)化和解耦;2.掌握如何使用表驅(qū)動(dòng)技術(shù)來組織和管理代碼,降低代碼的復(fù)雜性。3過程評(píng)價(jià)/生講生評(píng)課程目標(biāo)1~3實(shí)驗(yàn)4模擬自動(dòng)駕駛車輛的執(zhí)行器Executor組件功能,驗(yàn)證程序的安全性。熟悉安全編碼。1.學(xué)習(xí)基本的堆棧原理知識(shí);2.理解常見安全編碼問題及其引發(fā)的后果;3.根據(jù)安全規(guī)范編寫健壯的C語言程序;4.通過鏈表實(shí)現(xiàn)一個(gè)簡(jiǎn)單的日志模塊記錄車輛位置。3過程評(píng)價(jià)/生講生評(píng)課程目標(biāo)1~3實(shí)驗(yàn)5實(shí)驗(yàn)主題研討。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 外國文學(xué)試題及答案
- 納米晶體科普
- 特殊用餐包房管理制度(3篇)
- 礦石運(yùn)輸質(zhì)量管理制度(3篇)
- 2026年及未來5年市場(chǎng)數(shù)據(jù)中國海水淡化設(shè)備市場(chǎng)發(fā)展前景預(yù)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 《GA 574-2005警服材料 中空組合式大檐帽架》專題研究報(bào)告深度
- 《GAT 1384-2017刑事案件偵查業(yè)務(wù)實(shí)體數(shù)據(jù)項(xiàng)》專題研究報(bào)告
- 2025-2026學(xué)年四年級(jí)上冊(cè)道德與法治【知識(shí)點(diǎn)+單元+期中+期末測(cè)試卷題】
- 養(yǎng)老院九防制度
- 企業(yè)員工獎(jiǎng)懲與晉升管理制度
- 2026屆重慶市德普外國語學(xué)校數(shù)學(xué)七年級(jí)第一學(xué)期期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 財(cái)務(wù)固定資產(chǎn)培訓(xùn)課程
- 正常分娩期婦女的護(hù)理
- 如何做部門管理和運(yùn)營匯報(bào)
- 2025年發(fā)酵飲料行業(yè)研究報(bào)告及未來行業(yè)發(fā)展趨勢(shì)預(yù)測(cè)
- 合同變更協(xié)議(收款賬戶變更)
- 2025年血站護(hù)士招聘考試題庫
- 2024版電網(wǎng)典型設(shè)計(jì)10kV配電站房分冊(cè)
- 嗜鉻細(xì)胞瘤副神經(jīng)節(jié)瘤診療指南(2025年版)
- 中國環(huán)烷基潤滑油行業(yè)市場(chǎng)調(diào)查報(bào)告
- 《SPSS與AMOS在中介效應(yīng)與調(diào)節(jié)效應(yīng)分析中的應(yīng)用》
評(píng)論
0/150
提交評(píng)論