佟喜峰 梁吉勝
摘 要 《算法設計實踐》是關于算法編程能力的重要實踐課。本文介紹了該課程的教學特點、教學重點、課程考核與達成度計算等內容。該課程提高了學生的算法設計與編程能力,對于學生參加算法競賽、算法編程認證考試等具有積極的意義。
關鍵詞 算法設計 實踐課 教學方法
中圖分類號:G642文獻標識碼:A
0引言
算法設計實踐是我校計算機科學與技術專業(yè)為提高學生的算法編程能力而開設的一門實踐課程,全部學時均為實驗課。該課程是《數(shù)據(jù)結構》、《算法分析與設計》的后續(xù)課程,通過該課程進一步提高學生的算法設計與編程能力,進一步加強對鏈表、串、數(shù)組、樹等數(shù)據(jù)結構的掌握,并提高了對遞歸、分治、動態(tài)規(guī)劃、回溯等的綜合運用能力,從而能夠在實際工作中根據(jù)具體問題設計和優(yōu)化算法。
通過本課程的學習,使學生比較熟練地掌握算法設計、分析的常用方法,加深對計算機領域中常用的非數(shù)值算法的理解和應用,提高學生的解決實際的問題的能力,為學生今后的算法設計和參加算法競賽打下堅實基礎。
1教學特點
算法設計實踐作為一門實踐課,該課程的全部32學時均為實驗學時,共開設11個實驗,包括地鐵線路問題、裝箱問題、數(shù)字三角形等題目,內容覆蓋貪心算法、回溯法、動態(tài)規(guī)劃、分治、排序等算法問題,具有較大的覆蓋面。針對學生的編程能力薄弱環(huán)節(jié),練習學生的算法設計與編程能力,每個實驗題目均設有基本實驗要求與思考題,鼓勵在完成基本實驗要求的情況下繼續(xù)完成思考題。
2教學重點
該課程教學時應注意發(fā)揮學生的積極主動性,并注重過程考核,避免出現(xiàn)平時不學習期末臨陣磨槍的情況。具體做法為:
(1)在檢查學生的程序時,除了讓學生講解算法思路,還會在學生回避的前提下隨機刪掉程序的兩三行語句,然后讓學生填寫刪掉的語句。以此方式檢查學生是否真正理解該算法,學生也會在練習時有意加強對算法的理解。
(2)將期末編程考試分解為4次機試,每兩周進行一次機試,以四次機試成績之和作為期末編程考試成績。這樣做更有利于學生平時努力學習。
(3)由于不同學生的編程能力相差很多,而編程能力在短時間內不會明顯提高,因此,在編程考試時,在題目難度的設計上采用類似于中國計算機學會CSP認證考試的方式,編程題目的難度逐漸加大:第一個編程題基本都會做,而最后一個編程題只有極少數(shù)人能做出來。這樣設計的考試題目具有較好的區(qū)分度。
3課程考核與達成度計算
考核方式包括平時作業(yè)、平時實驗和期末編程考試三部分,其中平時作業(yè)的成績評定由團隊合作和自學能力兩部分組成;平時實驗成績評定由實驗表現(xiàn)和實驗報告(含程序運行結果)兩部分組成,要求實驗表現(xiàn)認真,程序編寫正確;實驗報告撰寫工整,實驗結果分析合理。期末編程考試則考核學生綜合算法設計能力。該課程共有四個課程目標,分別對應于4_4、8_3、9_2、12_2四個畢業(yè)要求指標點。
課程目標評價內容及符號意義說明如下表,字母A、B和C分別表示平時作業(yè)、平時實驗和實驗考試的平均分,其中,A=A3+A4,A3為平時作業(yè)對應課程目標3得分;A4為平時作業(yè)對應課程目標4得分;B=B1+B2,B1為平時實驗對應課程目標1得分;B2為平時實驗對應課程目標2得分;C=C2為實驗考試對應課程目標2得分。
課程目標達成度評價值計算具體說明如下。
4結束語
算法設計實踐課程采用平時作業(yè)、平時實驗和期末編程考試相結合的方式,提高學生的算法設計與編程能力。對于學生參加算法競賽、算法編程認證考試等具有積極的意義。
*通訊作者:佟喜峰
基金項目:本項目得到了東北石油大學2018年重點課程建設項目的資助。
作者簡介:通訊作者:佟喜峰, 博士, 副教授。
參考文獻
[1] 王曉東.《計算方法》課程教學方法的探討[J].福建電腦,2018(05):183-183.
[2] 趙麗萍,舒期梁.《高級語言程序設計》課程教學改革探討[J].電腦知識與技術,2019(35):143+145.