摘 要:在新工科背景下,針對傳統計算機程序設計教學方法存在的問題,例如缺乏應用場景、缺乏實踐性、缺乏互動與實時反饋等,該文旨在探討在教學中應用問題驅動教學方法以解決這些問題,包括引入實際問題情境和培養問題解決能力等。通過問題驅動教學方法,學生能夠更好地理解所學的知識和技能,并能夠運用所學的編程知識解決復雜的實際問題,從而促進其綜合能力的發展,為未來的職業發展奠定堅實的基礎。
關鍵詞:新工科;計算機程序設計;問題驅動法;問題解決能力;創新性思維;團隊合作能力
中圖分類號:G642 文獻標志碼:A 文章編號:2096-000X(2024)29-0120-04
Abstract: In the context of the New Engineering paradigm, this paper aims to address the issues associated with traditional computer programming teaching methods, such as the lack of application scenarios, practicality, interactivity, and real-time feedback. The objective is to explore the application of problem-driven teaching methods in order to resolve these problems. This includes the incorporation of real-world problem contexts and the cultivation of problem-solving abilities within the teaching process. Through problem-driven teaching methods, students can gain a better understanding of the knowledge and skills they are learning, and can effectively apply their programming knowledge to solve complex real-world problems. This approach fosters the development of their overall abilities and establishes a solid foundation for their future career advancement.
Keywords: new engineering; computer program design; problem-driven teaching approach; problem-solving abilities; innovative thinking; teamwork skills
基金項目:廣東省2024年度教育科學規劃課題(高等教育專項)“基于粵港澳大灣區跨海橋梁驅車監測技術的《高等結構動力學》課程教學改革與實踐”(2024GXJK396 )
作者簡介:李波(1984-),男,漢族,陜西安康人,博士,助理教授。研究方向為土木工程智能計算,人工智能與大數據分析。
為適應當前社會的需求和挑戰,教育部推出新工科計劃,旨在培養具備創新能力、實踐經驗和綜合素質的復合型人才。在這一背景下,計算機程序設計作為非計算機專業學生的一門基礎課,在培養學生利用計算機解決實際工程問題的能力方面起著重要作用。
新工科計劃的目標是培養具有創新性、強實踐能力和社會責任感的人才[1-2]。針對非計算機類的程序設計課程教學,提出了一些新的要求。首先是問題解決能力[3],在新工科背景下,培養具備綜合技術能力和創新思維的工程技術人才是至關重要的,而問題解決能力是其中的核心能力之一。因此,在程序設計教學中強調解決問題的方法和思路,培養學生利用編程解決問題的能力。其次是團隊合作能力[4],在新工科背景下,團隊合作對于解決復雜問題、推動創新和實現綜合性項目至關重要。因此,在教學中鼓勵學生進行團隊合作,以促進交流和共同學習。第三個是創新性思維[2],在新工科背景下,強調培養具備創新能力的工程技術人才,使其能夠應對快速變化的社會和技術挑戰。因此,在教學過程中,要幫助學生跳出傳統思維框架,基于程序設計挖掘新的解決方案,為面對復雜問題提供創新的視角和方法。
一 存在的問題
傳統的程序設計教學以老師為中心,學生總是被動地接受老師傳授的知識點,且教學過于注重理論知識的灌輸,缺乏與實際問題的結合。因此導致學生覺得程序設計課程枯燥無味,學習積極性差,沒有學習動力[5]。
基于新工科視角,當前非計算機專業的程序設計教學存在如下明顯的問題。首先,缺乏實際應用場景。傳統的計算機程序設計教學通常將重點放在編程語言的語法和基本概念上,而忽略了實際應用場景的引入。這導致學生所學的知識與實際應用脫節,難以看到學習編程的意義和價值,因此,缺乏學習的積極性。其次,缺乏實踐性。傳統的計算機程序設計教學注重理論知識的傳授,但缺乏實踐性的內容。學生消極地接收課堂上的知識點,缺乏實際動手編寫和調試程序機會,使得學生難以真正理解編程的實際應用,教學中亦無法真正培養學生解決實際問題的能力。再次,缺乏互動與實時反饋。在傳統的計算機程序設計教學中,學生與教師之間的互動和實時反饋較少。學生感到孤立和被動,在遇到問題或困惑時難以及時得到解答和指導。缺乏互動和實時反饋機制使得學習變得單調乏味,學生的積極性和參與度下降。最后,課程考核手段單一。教師按照課程進度每周指定課后練習題進行驗證性實驗,以鞏固當周講授的內容。課程的最后評分按照平時作業和期末考試成績綜合評定。然而,這種單一的考核手段不能合理地反映學生的能力,對于那些熱愛學習和思考的學生沒有起到激勵作用。
為了解決這些問題,教學方法需要適應現代學習需求,特別是新工科人才培養目標。因此,本文將探討引入問題驅動教學模式。在教學過程中,通過引入實際問題情境和提供開放性問題,促進學生之間的互動和合作,改變傳統單一的考核手段,從而提高學生利用程序設計解決實際問題的能力,并激發學生的學習積極性。
二 問題驅動教學方法的理論基礎
問題驅動教學方法(Problem-Based Learning,PBL)[6]做為一種以學生為中心的教學策略,強調學生通過探索和解決現實世界問題來積極學習。在PBL中,學生通過合作解決復雜、開放且與其專業領域相關的問題,自主學習,以培養批判性思維、問題解決能力和有效團隊合作能力[7]。
問題驅動教學方法與傳統的教學方法有所不同。傳統教學方法側重于教師的講解和知識傳授,而問題驅動教學方法更加注重學生的主動參與和探索。它鼓勵學生提出問題,并通過自主學習和探索來解決問題。教師的角色是引導和支持學生,提供必要的指導和資源。
問題驅動教學方法有助于培養學生的批判性思維、問題解決能力和團隊合作能力。它可以幫助學生發展自主學習的技能,培養其主動尋求知識和信息的能力,并將所學知識應用于實際問題。通過問題驅動教學方法,學生可以更深入地理解所學知識,并將其應用于真實世界情境。這種方法不僅增強了學生的學習動機和興趣,激發了其好奇心和創造力,還提高了學習成果和能力。
新工科背景下,強調培養學生的創新思維和解決復雜問題的能力。問題驅動教學方法能夠促進學生在應對現實世界挑戰時的創新思維、問題解決能力、自主學習和適應能力的發展,與新工科教育目標相得益彰。
三 問題驅動教學方法在程序設計教學中的應用
在計算機程序設計教學中采用問題驅動的教學方法,本文從以下五個方面提出具體措施:引入實際問題情境、培養學生解決問題的能力、培養學生團隊合作能力、提供開放性問題的教學環境及改變課程考核方法。
(一) 引入實際問題情境
傳統的計算機程序設計教學通常注重抽象的概念、理論知識和語法規則,而忽略了這些知識與實際問題場景的聯系。然而,引入實際問題情境可以為學生提供學習編程的上下文和動機。當學生能夠看到編程在解決實際問題中的應用和意義,以及實際問題情境可以將抽象的概念和理論與具體的場景相連接時,他們往往更容易理解和投入學習。這樣的實際問題情境能夠激發學生的興趣,增加他們的學習動力。以下是一個具體的實例,用于講解選擇結構的概念和應用。
假設要編寫一個程序來控制一臺智能車輛,在不同的路況情況下選擇最佳的駕駛模式。這個程序需要考慮車速、車輛重量等因素,并從預設的六種駕駛模式中選擇最適合的模式。讓我們看一下具體的條件和對應的最佳模式選擇:①在道路干燥條件下,當車速大于100 km/h且車輛重量不超過2 000 t時,最佳模式為“運動模式”。當車速大于100 km/h且車輛重量超過2 000 t時,最佳模式為“越野模式”。否則,最佳模式為“正常模式”。②在道路濕滑條件下,如果車速大于80 km/h,最佳模式為“安全模式”。否則,最佳模式為“正常模式”。③在道路結冰條件下,如果車速大于60 km/h,最佳模式為“雪地模式”。否則,最佳模式為“正常模式”。④在道路有交通堵塞條件下,最佳模式為“城市模式”。
通過這個實例,我們引出了在程序設計課程中學習選擇結構的必要性和重要性。通過引入實際問題情境,將選擇結構的概念和理論與具體的場景相連接。學生可以更好地理解和應用概念、理論和語法規則,并意識到他們所學習的抽象的選擇結構概念和理論可以應用于實際問題情境中,用于解決實際問題。這樣的教學方法能夠激發學生的興趣,增加其學習動力。
(二) 培養解決問題的能力
在傳統的計算機程序設計教學中,由于缺乏與實際問題相關的情境,學生難以將所學知識應用到實際情景中。這導致學生失去面對復雜實際問題的機會,從而錯失培養綜合分析和解決問題能力的機會。相比之下,問題驅動教學方法通過提出真實且有挑戰性的問題,激發學生的學習興趣和動力。在解決問題的過程中,學生需要運用各個學科的知識和技能,進行跨學科的綜合思考和操作。他們積極主動地搜集和整理相關知識,深入思考和分析,并將它們與所學的編程知識和技能有機地結合起來,以解決問題。
一個具體的實例是在學生的上機實踐中,要求他們綜合運用程序設計課程所講解的理論和方法,完成一個簡單的橋梁荷載計算機程序。該程序旨在幫助土木工程師進行橋梁結構的荷載計算。學生需要考慮橋梁的幾何形狀、材料特性、荷載情況等因素,并設計算法來計算橋梁的受力和應力。此外,還需要實現用戶界面,以便用戶能夠輸入橋梁的參數、荷載信息,并查看計算結果。
通過這個上機題目,學生能夠培養利用計算機程序解決實際問題的能力。首先,鍛煉了學生對實際問題的分析和建模能力。學生需要理解橋梁荷載計算的基本原理和方法,并將其抽象為計算機程序的形式。他們還需要考慮橋梁的幾何形狀、材料特性、荷載情況等因素,并將其轉化為算法和數據結構的形式,以確保程序能夠進行準確的荷載計算。其次,訓練了學生的算法設計和實現能力。學生需要設計適當的算法來解決橋梁荷載計算中的力學和結構問題。他們需要實現這些算法,并考慮算法的效率和準確性,以確保計算機程序能夠提供可靠的計算結果。再次,還鍛煉了學生的用戶界面設計和交互能力。學生需要設計用戶友好的界面,使用戶能夠方便地輸入橋梁的參數、荷載信息,并查看計算結果。他們需要考慮用戶體驗和界面設計的原則,以提供良好的使用體驗和操作效率。最后,培養了學生的錯誤排查和調試能力。在開發過程中,學生可能會遇到各種問題和錯誤。他們需要具備良好的問題排查和調試能力,能夠分析和修復程序中的錯誤,以確保程序能夠正確運行并產生準確的結果。
(三) 促進團隊合作
傳統計算機程序設計教學方法通常側重于個人技能的培養,學生在個體工作環境下獨立完成編程任務。這種方法注重學生對編程語言和算法的掌握,但對于團隊合作意識的培養相對較少。學生傾向于將注意力集中在個人技能的發展上,而忽視了與他人協作和溝通的重要性。在這種環境下,學生可能會缺乏團隊合作技能,如分工合作、協商決策和解決沖突等,這些在實際工作中是非常重要的。
相比之下,問題驅動教學方法更加注重團隊合作意識的培養。通過將學生組織成小組,共同面對實際問題和項目挑戰,學生必須在團隊中進行有效的合作。這種方法強調學生之間的互相學習和知識共享,鼓勵他們共同解決問題,并將個人技能融入到團隊的整體目標中。問題驅動教學方法通過創造實際情境和項目情境,使學生在實踐中體驗到團隊合作的重要性,并培養學生在團隊合作中的溝通、協調和領導能力。
此外,問題驅動教學方法還注重學生對實際問題的分析和解決能力的培養。團隊合作要求學生能夠共同分析和理解問題的本質,并提出創新的解決方案。在這個過程中,學生必須相互協作、交流和討論,共同制定解決問題的策略。通過團隊合作,學生不僅能夠提高自己的解決問題能力,還能從團隊成員中獲取不同的觀點和思維方式,進一步擴展他們的思維廣度和深度。
因此,問題驅動教學方法在培養學生團隊合作意識方面具有明顯的優勢。通過團隊合作項目、知識共享、溝通協調和解決問題能力的培養,問題驅動教學方法能夠更好地培養學生在團隊合作中的技能和意識,使其更好地適應未來的工作環境和職業要求。
(四) 提供開放性問題
傳統的計算機程序設計教學方法通常采用確定性和結構化的問題設置。這些問題通常具有明確的目標和具體的步驟,學生需要按照規定的要求和流程完成任務。這種方法在初學階段具有必要性,可以幫助學生建立基本的編程技能和理解編程概念。然而,這種方法存在一個限制,即學生只需要按照預定的模式進行編程,缺乏面對真實世界問題的靈活性和創造力。
問題驅動教學方法強調開放性問題的提供。這些問題通常不是只有單一的答案或固定的解決方案,而是需要學生進行深入思考、創造性思維和探索性學習的問題。這樣的問題設置鼓勵學生從多個角度思考和解決問題,培養其創新能力和批判性思維。學生需要運用所學的知識和技能,結合自己的經驗和想象力,提出獨立的解決方案。問題驅動教學方法的開放性問題設置還可以激發學生的興趣和主動性。學生在面對具有挑戰性和實際意義的問題時,更有動力主動探索和學習。這種問題設置可以培養學生的自主學習能力和問題解決能力,讓其成為主動的知識構建者和學習者。
一個具體的實例是,在學生進行上機實踐時,要求他們綜合運用程序控制結構及相關理論,完成以下一個程序:在土木工程中,地基沉降是一個重要的問題。為了預測和模擬地基沉降,請編寫一個簡化的地基沉降模擬程序來模擬地基的沉降過程。該程序需要考慮地基的材料特性、負荷情況、時間和步長。基于該程序,用戶根據輸入的地基信息和負荷信息,模擬地基的沉降過程。
這個上機題目具有開放性,可以訓練學生的創新性思維。學生通過選擇結構和循環結構編程,可以實現一個簡化的地基沉降模擬程序。在編寫該程序時,學生可以選擇不同的地基材料、負荷情況和時間范圍,這為學生提供了多個可選項和自由度,鼓勵他們在設計程序時進行創新思考。他們可以根據具體情況選擇合適的材料參數和負荷情況,以及調整時間范圍,從而探索不同的沉降模擬結果。此外,學生還可以嘗試不同的參數設置,例如不同的時間步長、不同的算法等,以觀察對模擬結果的影響。通過調整參數并觀察結果的變化,學生能夠培養優化和調試程序的能力。同時,學生還可以進一步拓展程序的功能,例如考慮其他因素對地基沉降的影響,如水分變化、地基形狀等。通過提出和實現這些拓展功能,學生可以培養創新性思維和解決問題的能力。
(五) 改變課程考核方法
新工科人才培養目標強調學生的創新思維、實踐能力和團隊協作意識的培養,因此,課程考核方法應注重這些方面的考察。
首先,教學評價方法應注重學生的平時表現和學習過程。在傳統計算機程序設計教學方法中,學生期末考試成績通常占比在70%以上,如此則導致學生只側重于理論知識的掌握,忽略綜合能力和實踐能力的訓練,容易形成考前突擊的不良習慣。而計算機程序設計作為一門實踐性很強的課程,傳統的重理論輕實踐的培養方式無法達到新工科人才培養目標。而在問題驅動教學中,考核方法應該通過平時作業、課堂表現、小組討論等方式來觀察和記錄學生的學習過程和參與度。這樣可以更準確地評估學生的自主學習能力、問題解決能力及團隊合作能力等。教師可以通過定期的反饋和指導,激發學生的學習動力,幫助他們不斷改進和提升。
其次,教學評價方法應注重學生的創新能力的培養。傳統的計算機程序設計教學評價方法通常以正確性和效率為主要標準,忽略了學生的創新能力。在問題驅動教學中,評價方法應注重學生的創新思維和解決問題的獨立性。可以通過設計開放性的項目任務,鼓勵學生提出創新的解決方案,評估其創新能力和獨立思考能力。評價方法可以包括創新成果展示、創新報告、創新評審等形式,以評估學生在問題驅動學習中的創新能力。
最后,教學評價方法應注重學生的實踐能力的培養。傳統的計算機程序設計課程考核方法主要注重理論知識的掌握,忽略了學生實踐能力的考核。在問題驅動教學中,考核方法關注學生在實際問題情境中的應用能力。可以通過真實項目的實踐、實際案例的分析和解決、實驗結果的評估等方式,評估學生在實踐中的表現和能力發展。評價方法可以包括實踐報告、實驗結果分析、項目成果評估等形式,以評估學生在問題驅動學習中的實踐能力。
四 結束語
新工科背景下,傳統非計算機類的程序設計課程教學方法在培養學生綜合能力和創新能力方面存在不足。為了解決這一問題,本文探討引入問題驅動教學方法。問題驅動教學方法能夠激發學生的學習興趣和動力,提高其學習積極性。通過引入實際問題情境和培養解決問題的能力,學生能夠更好地理解和應用所學的知識和技能,并能夠在實際問題中運用所學的編程知識解決復雜的問題。因此,問題驅動教學方法在程序設計課程教學中具有重要的應用價值,可以促進學生的綜合能力發展,培養創新思維和團隊合作能力,為他們未來的職業發展打下堅實基礎。
參考文獻:
[1] 李培根.工科何以而新[J].高等工程教育研究,2017(4):1-4,15.
[2] 孫峻.“新工科”土木工程人才創新能力培養[J].高等建筑教育,2018,27(2):5-9.
[3] 徐曉飛,丁效華.面向可持續競爭力的新工科人才培養模式改革探索[J].中國大學教學,2017(6):6-10.
[4] 張璧,吳鳳霞.基于“綜合設計”課程的新工科教育探索[J].高等工程教育研究,2020(2):41-48,60.
[5] 郭衛斌,羅勇軍,楊建國.課內外融合的計算機程序設計實踐教學模式[J].計算機教育,2020(6):39-42.
[6] YEW E H, GOH K. Problem-based learning: An overview of its process and impact on learning[J]. Health professions education. 2016,2(2):75-79.
[7] CHIS A E, MOLDOVAN A, MURPHY L, et al. Investigating flipped classroom and problem-based learning in a programming module for computing conversion course[J].Journal of Educational Technology & Society,2018,21(4):232-247.