吳 勁,白忠建,王瑞錦,陳安龍
(電子科技大學 信息與軟件工程學院,四川 成都 610054)
《高等學校課程思政建設指導綱要》指出:工學類的專業課程,要注重強化學生的工程倫理教育,培養學生精益求精的大國工匠精神,激發學生科技報國的家國情懷和使命擔當[1]。計算機課程體系規范CC2020工作組也將勝任力作為核心需求[2-3],提出了“勝任力”計算教育模型[4]。基于《指導綱要》和《計算機課程體系規范2020》要求,本文提出基于勝任力的程序設計與算法基礎課程思政方案,潤物細無聲地融入社會主義核心價值觀教育、算法倫理與職業道德教育、中華傳統優秀哲學思想等思政元素,在專業課程的學習與實踐中幫助學生們塑造正確的世界觀、人生觀和價值觀。
勝任力對于計算機相關領域而言是一個較新的概念,幾十年來,計算機相關課程更專注于知識的傳授,而勝任力是一個以人為中心的概念,知識只是勝任力的一個組成部分。從基于知識的學習進化到基于勝任力的學習,可以使學生具備的能力與未來實際工作場景所需的專業能力更加一致[5]。
《哈佛大學勝任力詞典》定義和解釋描述了什么是有用的勝任力(Competency),即一個人能勝任特定工作、角色、職能或任務,包括與工作相關的行為(一個人說什么或做什么會導致良好或不良的表現)、動機(一個人對工作、組織或地理位置的感受)和技術知識或技能(知悉和掌握職業相關的技術、流程、工作方法、組織流程等)。勝任力是通過對工作和角色的研究來確定的[6]。
歐盟委員會的數字勝任力框架確定了數字勝任力在5個方面的組成部分,可以概括為:①信息和數據素養;②溝通和協作;③數字內容創建;④安全;⑤解決問題[7]。”軟件工程勝任力模型將勝任力定義為“在規定的水平上進行工作活動的能力證明”[8],描述了參與軟件密集型系統開發和變更的軟件工程師的能力。文獻[9]認為,勝任力代表認知、元認知技能、知識和理解知識后的應用、人際交往、智力水平、實踐技能以及道德價值觀多種模態的動態組合。
《計算機課程體系規范2020》提出了“勝任力”計算教育模型,把“勝任力”應用在計算機教學指導和評估中[4]。“勝任力”可以用以下公式表示:
勝任力(competency)=知識(knowledge)+技能(skills)+品行(dispositions)
知識是“知道是什么(know-what)”的維度;技能是指通過有意識的訓練以及與他人交互而逐漸形成的能力和策略,是“知道怎么做(know-how)”的維度;品行包括道德水平、團隊協作能力、社交技能、意志力等,是“知道為什么(know-why)”的維度。品行控制著個人如何使用技能,是最具挑戰性的。課程思政元素與品行維度緊密結合,并有機融入知識傳授與能力培養。
程序設計與算法基礎是電子科技大學信息與軟件工程學院軟件工程專業的第一門專業基礎課,分為兩個學期三大課程模塊進行組織實施。課程思政方案與課程方案緊密融合,在三大課程模塊中各有偏重、逐層細化、螺旋式上升地實現基于勝任力融入思政元素的程序設計與算法基礎課程方案。
具體課程框架如圖1所示。

Fig.1 Curriculum framework of "fundamentals of program design and algorithm" based on competency integrating ideological and political elements圖1 基于勝任力融入思政元素的程序設計與算法基礎課程框架
大一上學期的模塊1(程序設計與算法基礎Ⅰ,48學時):以C語言為載體,喚起學生的好奇心,引導新生探索軟硬件協同工作機理,精心設計基于自主研發的icoding線上實驗及編程能力測試平臺實驗項目,培養學生抽象問題、提取計算需求的能力,以及從問題出發設計并實現算法的能力,提升學生掌握核心軟件技術的信心。
承上啟下的模塊2(程序設計項目實踐,大一上,16學時):采用基于項目的學習方式,培養學生的表達能力、思辨能力、創新能力、團隊協作能力,為學院培養和輸送競賽學子。從模塊1和模塊2就開始啟發學生思索程序設計的本源問題,培養軟件工程思維模式。
大一下學期的模塊3(程序設計與算法基礎Ⅱ,48學時):要求學生在掌握數據邏輯、存儲結構及其操作和算法基礎上,逐步具有深度優化程序的能力,形成開發核心基礎軟件的潛力。引導學生思索算法倫理與職業道德要求,培育精益求精的大國工匠精神。
將核心軟件自主可控、社會責任感、精益求精的大國工匠精神、算法倫理與職業道德等核心素養融入課程,將價值塑造、知識傳授和能力培養融入基于勝任力的程序設計與算法基礎課程框架,通過課程不同階段的思政案例,培養學生的愛國、敬業、誠信、友善修養,自覺把小我融入大我,不斷追求國家的富強、民主、文明、和諧,將社會主義核心價值觀內化為精神追求,外化為努力學習、科技報國的自覺行動。
程序設計與算法基礎課程打破了程序設計語言、算法、數據結構、開發方法之間的界限,打破了課程壁壘,對原有課程進行了深度融合,不是簡單、機械地對課程內容進行堆積,而是對課程進行系統性整合與深度優化[10],并把基于勝任力的思政元素融入其中。既保證了課堂學習的挑戰性,又大大減少了學生課堂內需要學習的課程數量和學時數,從而為學生課后自主學習留下更多時間和空間。
課程引入同伴指導模式,通過互相指導、共同進步,培養互幫互助精神,進而提升團隊合作能力[11]。同伴指導是一個學習者定期觀察同伴,并向同伴提供支持、幫助和反饋的過程[12]。學習者和同伴一起學習和實踐,分享想法、互相支持、互相教導,反思當前的實踐,建立新的技能或解決問題的方案[11]。
直擊程序設計本源,培養學生的高階程序開發能力。建立“SPOC+icoding線上實驗及編程能力測試平臺+雨課堂”的智慧學習系統,在課堂學時有限的情況下,充分利用線上資源,構建以學生為中心的知識和能力內化途徑。引導學生完成SPOC中的基礎類知識模塊,并理論聯系實際,完成icoding的上機實驗,引導學生追求精益求精的大國工匠精神。教師根據學情反饋,利用線下課堂和雨課堂針對性地梳理重難點,對課程的深度和廣度進行擴展。
回歸程序設計本源,程序設計和算法理論與項目實踐一體化設計。利用互聯網和人工智能技術賦能教和學,實施以學生為中心的線上線下混合式教學模式。基于自主研發的“學、練、測、評、賽”五位一體的icoding 線上實驗及能力測試平臺,實現了面向程序設計能力測試的icoding機考,提高了學生能力和素質評價的科學性。
在知識傳授和能力培養的同時,潤物細無聲地融入課程思政元素和思政案例,培養學生的愛國主義精神、軟件工程思維、創新思維和時代精神。
在第一堂課“程序設計引論”中首先介紹課程的總體框架、配套的線上資源,包括配套的SPOC(https://uestc.yuketang.cn/)與在線實驗平臺(https://icoding.run/login)。告訴學生其進入了人生的一個嶄新階段,已經長大成人,需要適應大學課程的節奏,結合課程考核方式調整自己的學習方法,養成自主學習的習慣。
程序設計與算法基礎Ⅰ、Ⅱ的綜合考核方式含形成性評價(平時考核)和總結性評價(期末考核),其計算公式如下:
綜合評價成績=SPOC成績(10%)+icoding線上實驗平臺編程實驗成績(40%)+期末考核成績(50%)
其中,SPOC模塊和icoding線上實驗模塊不占用課堂學時,采用線上自主學習和練習模式,自動給出測評分數。需要提醒學生們注意線上平臺練習的截止提交日期,養成守時、守信的契約精神,學會合理安排學習時間。
然后進行學生基礎的摸底調查,針對不同基礎的學生給出針對性的學習和練習方式建議,并建議學生們加強溝通和交流,可以嘗試結對編程,形成學習小組,討論上機實踐中遇到的問題,共同學習、共同進步。
在簡單介紹馮·諾依曼計算模型的基礎上,用一系列問題引出課程思政案例:是否了解華為公司?聽過華為公司的智能基座項目嗎?華為為何會建立該項目?美國為何打壓民營企業華為?接著以圖2的華為鯤鵬開源計算產業鏈與軟硬件架構對照圖為藍圖,引導學生們思考為什么要掌握核心軟件技術、怎么掌握核心軟件技術,引導學生以具有低級語言特點的高級程序設計語言C語言為載體,去觸碰、探究計算產業鏈,引導其探索軟硬件協同工作機理,啟發其思索程序設計本源問題。向下能喚起學生探索匯編層、操作系統層、指令集架構層、微代碼層的興趣,向上能從本源上理解軟件體系架構。同時讓其了解,軟件工程專業的學生擔負著為國家軟件自主可控戰略需求添磚加瓦的任務和使命,從而激發學生科技強國的使命感。
可以通過拋出一個個問題的方法進行互動,激發學生的興趣,師生在情感交流中產生“共鳴”。與時俱進地與企業進行深度合作,更新教學案例的內容,深化產教融合、協同育人,使得案例更具有時代特點。以著名民營企業華為的鯤鵬計算產業及鯤鵬生態體系全景應用為例融入思政元素,說服力更強,更容易讓學生信服,也更容易在思想和情感層面產生認同感,喚起學生對計算生態系統的興趣和好奇心。
以立德樹人為根本,使大一新生就能體驗“產教協同育人”的專業特色,培養學生服務國家軟件自主可控戰略的意識,提升學生掌握核心軟件技術的信心。
程序設計項目實踐屬于學校立項的新生項目實踐課程,在程序設計與算法基礎Ⅰ、Ⅱ課程之間開課,起到承上啟下的作用,也是學院一體化實踐教育體系的第一門實踐課程。學院的實踐教育采用兩貫穿、一融合模式,校內工程實踐遞進式貫穿,校外企業育人全鏈條貫穿,校內外校企協同育人交錯迭代融合。
軟件工程專注于創建基于軟件的解決方案,但其遠不止是程序設計,需要采用適當的軟件工具開發新的軟件系統,學生應具備將工程的嚴謹性與數據結構和算法選擇技巧相結合的能力。在新生項目實踐課上,讓大一新生以項目小組的方式參與軟件工程項目的完整過程:從需求分析、概要設計到詳細設計,應用剛學會的C語言進行項目的代碼實現,并測試其功能。最后完成項目報告文檔,制作項目匯報幻燈片,并進行項目匯報和演示。
程序設計項目實踐總成績由4部分構成,計算公式如下:
綜合評價成績=項目文檔(40%)+演示文檔(20%)+表達能力(20%)+項目實施(20%)
項目文檔和演示文檔中要說明項目從需求分析、概要設計到詳細設計、實現、測試的過程,并說明團隊的分工和協作方式、團隊成員在其中的貢獻等信息。通過項目小組的組建、組長推舉,到項目選題的確定、項目的實施與結題,每一步都引導學生們體驗團隊協作的重要性,激發每個組員的責任感,培養其互幫互助、積極進取的精神。在選題上可以與社會熱點相結合,注重培養其社會責任感,還必須按軟件工程項目實踐的要求,讓每個學生體驗從需求分析到設計、實現與測試的完整過程。例如:20級的一個小組選擇了地區疫情風險模擬和評估項目,通過建立鏈表和坐標系實現對病人信息的管理,并對某地區進行疫情風險模擬分析,在鍛煉自身的能力的同時,也希望對疫情防控作出自己的貢獻。
大一下學期程序設計與算法基礎Ⅱ的第一堂課引入了周易的乾坤二卦,乾卦:天行健,君子以自強不息;坤卦:地勢坤,君子以厚德載物。既體現了中國古代先賢的哲學思想,傳承了中華傳統美德,又分析了其中蘊含的二進制思想、蘊含的計算思維方式,幫助學生們建立文化自信。
在學習二叉樹時,引入中國傳統文化中的“太極生兩儀,兩儀生四象,四象生八卦”,形成了一棵漂亮的完全二叉樹。《易經》和八卦系統是建立在陰陽基礎上的符號系統[14],是中國古代研究宇宙間事物發展規律的學問,是對宇宙世界的建模。《易經》是以中華文化為代表的東方思維的精華,其辯證思維具有整體性、模糊性和不確定性,強調形象思維、想象力或悟性,以事物性質分析和系統設計見長。而西方文化和思維的主要方式為邏輯思維或分析思維,主要特點是具有孤立性、準確性和確定性,其強調形式化和形而上學的方法,以數量分析、邏輯推理和系統分析描述見長。
東方太極思維以形象思維為主、邏輯思維為輔,采用歸納和推演等多種手段,是對事物進行描述和本質分析的辯證思維方法,也是對現代科學發展的有益補充。采用該教學方式可進一步激發學生們熱愛和傳承中華傳統優秀文化,建立文化自信,愛國愛家。
經過大一上學期2個課程模塊的磨練,學生的編程能力有了很大提高。該階段要求學生在掌握數據的邏輯、存儲結構及其操作和算法基礎上,逐步具備深度優化程序的能力。課程的深度和難度比大一上學期有了進一步提升,icoding實驗系統中的上機練習除要求正確性外,對時間復雜度和空間復雜度也有了進一步要求,增加了上機實踐的難度系數。教師要看得清、摸得準學生的學情,才能因材施教,設計有針對性的目標任務吸引學生,學生則緊跟教師步伐投入到線上和線下的學習中,形成良性互動,促進自身綜合素質的提升。
在講解圖的最短路徑算法環節,引入2021年7月1日公布的國際超算排名Graph500排行榜,由國防科技大學研制、部署在天津國家超級計算中心的天河三號E級計算機,斬獲SSSP Graph500(單源最短路徑)榜單和BIG Data Green Graph500(大數據圖計算能效)榜單兩項世界第一,展現了中國超級計算機的技術實力[15]。天河超級計算機原型機在核心芯片上做到了自主、獨立、創新,真正實現了“超算”的全國產。人工智能要依靠算力,誰能占領算力的制高點,誰就有了引領行業發展的基礎。該案例增強了學生的科技自信,堅定了其掌握核心軟件技術的信心。
在課程思政元素設計上可以結合具體算法引導學生思考:怎么擁有深度優化程序的能力?怎么形成開發核心基礎軟件的潛力?怎么追求精益求精的大國工匠精神?學生既是信息和軟件的使用者,也是未來信息軟件系統的構建者,引導學生深入地思考算法倫理與職業道德問題對于構建未來健康的信息社會至關重要。程序設計與算法基礎課程思政建設是個與時俱進,不斷深化、拓展、突破、再出發的過程,未來課程群將會根據學情進一步完善課程思政教育。