魯 可,張曉東,孫麗君
(河南工業大學 電氣工程學院,河南 鄭州 450001)
“軟件技術基礎”是針對非計算機專業的計算機軟件技術及應用課程,對于非計算機專業的理工科學生來說,他們今后的發展方向并不是從事計算機理論的研究,而是在各自的專業領域內利用計算機來處理問題,他們中的大多數將是計算機應用人才,而不是計算機專門人才[1-2]。這兩者所需要的知識結構和能力結構是不同的,其培養目標也就不同。
“軟件技術基礎”課程是面向理工科非計算機專業學生開設的一門結合算法與數據結構、軟件工程、操作系統、多媒體技術、數據庫等基本理論和技術的基礎課程,旨在讓學生掌握軟件開發涉及的各領域的基本原理和技術[3]。通過實踐,培養學生具有軟件開發能力、創新意識和團隊精神,重點培養學生的上機動手能力、實際解決問題的能力以及知識綜合運用能力。實踐環節的開展對于學生掌握軟件開發活動具有非常重要的意義[4]。
“軟件技術基礎”課程是一門強調理論聯系實踐的課程,學生只有從實踐中才能真正掌握軟件技術的相關知識,才能真正了解軟件開發活動的主要過程[5]。為達到“有效教學”的“有效”目的,針對課程的特點采用事理的教學方法是一個重要的方面[6]。“軟件技術基礎”是一門綜合性的計算機基礎課程,主要目的是讓學生更好地利用計算機解決專業領域中的問題及日常事務問題。這門課程主要是以培養學生實踐能力為主要目的,為培養復合型、創新型人才打好基礎[7]。通過這幾年的教學經驗來看,傳統的實踐教學環節存在以下幾個問題。
我院的“軟件技術基礎”課程采用的教材是麥中凡主編的《計算機軟件技術基礎》(第3版),采用VC++作為程序設計語言,而學生僅僅在大學一年級學過C語言,并且大多數學生的C語言基礎較差,對于VC++程序設計語言更是一無所知,再加上計算機軟件技術基礎課程知識點多,內容繁雜,難以抓住重點,在學習了計算機軟件技術基礎的有關知識后,不知如何用VC++語言程序來實現。
“軟件技術基礎”課程的傳統實踐環節主要是通過上機實驗來完成[8]。對于實踐性特別強的“計算機軟件技術基礎”這門課程,實驗環節至關重要[9]。我院該課程的總學時為46學時,其中課堂教學學時為38學時,實驗學時為8學時。短短的8學時僅僅可以完成幾個關于數據結構算法的編程,對于學生理解和實踐軟件開發的過程是遠遠不夠的。教師在組織課堂教學的時候主要講述基本概念和原理,而對于程序設計和調試技巧等實踐性較強的部分,則只能是點到為止。
這樣的弊端就在于學生不能通過實踐來認識和學習軟件技術的開發過程,不能全面地鍛煉軟件開發過程中所需要的各項基本技能,導致學生在課程結束之后,對于本門課程沒有深刻的印象,對于以后深入學習軟件技術,缺乏扎實的功底。因此,典型案例是不可缺少的教學環節 ,能夠起到事半功倍的作用[10]。
學習軟件技術基礎內容,是為了在實際的工程項目中綜合運用[11],為此,要求學生在熟悉VC++程序設計語言的基礎上,完成一個小型的軟件項目的開發設計。把解決實際問題的思想作為教學切入點,以問題驅動的方式,按照軟件工程的開發方法,針對實際問題進行分析,構建數學模型,設計算法,最后編程實現軟件開發。具體要求包括:
(1)這個軟件項目設計,是每位學生必須完成的課外作業,占期末考試總成績的20%。
(2)項目的選題范圍分為四大類:編程類,動畫類,數據庫類和自定義題目。編程類的可選題目主要有開發和設計小游戲,屏幕保護程序等。動畫類的題目主要是關于課程內容的動畫,如數據結構中線性表的插入和刪除、二叉樹的遍歷、查找和排序等。數據庫類的題目可以選用任何一種數據庫平臺,進行學生學籍管理系統的設計、圖書館借還書管理系統的設計等。自定義題目是為了給學生更多的選擇,學生可以根據自己的興趣來進行軟件項目的開發。
(3)項目的內容包括需求分析、設計方案、上機實現、測試報告與個人總結。根據軟件開發活動和軟件工程的相關要求,按照軟件生存周期的各個階段來進行軟件項目的開發,并生成各個階段的相應文檔。
(4)項目開發小組學生可以自愿組合,最多3人一組共同完成一個實驗項目。小組內的各個成員按照自身能力來進行任務分配,共同完成項目內容。個別能力強的學生可以獨立成組,一個人完成所有任務。
(5)項目的驗收包括項目報告(打印版)和可執行程序(電子版)2個部分。課程結束一周內提交項目報告和電子版,由教師評閱之后計入期末考試總成績中。
我院設有創新實驗室、嵌入式實驗室等多個開放實驗室可供學生使用。其中,創新實驗室是我院全面貫徹和落實電子類學科面向21世紀課程體系和課程內容的改革而創建的新型實驗室,為吸引、鼓勵廣大學生積極參加課外科技活動創造了條件,是我院大學生電子類科技活動的重要場所。嵌入式實驗室現擁有ARM920T內核的北京博創UP-NETARM2410S嵌入式教學科研實驗箱和UP-ICE200仿真器多套,是嵌入式技術高級人才的培養基地和嵌入式技術相關課程的教學基地。嵌入式實驗室主要承擔本科生軟件項目實踐和畢業設計等教學實驗任務。
這些實驗室為學生進行軟件項目設計提供了軟件平臺和實驗場所,為“軟件技術基礎”課程的實踐改革提供了較好的硬件設施,保證了軟件項目的順利開展。
我校建立的網絡教學平臺,可以制作“軟件技術基礎”的網絡教學系統。作為課堂教學的補充,該系統為學生進行課外的思維拓展、學習交流提供了有效的途徑。學生在進行團隊的項目開發的同時,可以通過網絡教學平臺將課堂知識和課外知識結合起來,運用到項目開發中去,真正實現了“理論聯系實際”。另外,學生可以在網上和教師交流項目開發過程中遇到的困難,教師可以將學生遇到的共性問題總結出來,掛在網上,供更多的學生學習交流。通過網絡教學平臺,使得教師和學生之間的關系更加密切,在相互交流中共同進行項目實踐,并將這些經驗反饋到課堂中去,促進理論教學更好地實施。
從2006年至今,經過6年的教學實踐經歷,可以明顯感受到這種基于項目開發的實踐環節對于學生來說受益匪淺。項目課程模式小而精,學生的學習真正做到了理論融于實踐,動腦融于動手,興趣融于行動,學生成為學習的真正主人[12]。大部分的學生能夠通過這樣一個過程,深入地學習和理解軟件開發的方法和過程,培養了自學能力、創新能力和解決實際問題的能力。通過這種基于項目的實踐模式,使學生在實踐中學習到軟件技術的精髓,為學生學好這門專業基礎課程起到了非常重要的作用。
(
)
[1]王玲.非計算機專業《軟件技術基礎》教學實踐[J].實驗科學與技術,2012,10(2):97-99.
[2]張水利,董軍堂,樊延虎,等.“軟件技術基礎”教學模式的研究與實踐[J].延安大學學報:自然科學版,2010,29(2):56-59.
[3]趙晨光,白玉,徐娜.軟件技術基礎實驗教學模式改革[J].中國電力教育,2011(34):136-140.
[4]何潔月,王茜,王偉,等.《計算機軟件技術基礎》雙語教學課程建設與實踐[J].北京大學學報:哲學社會科學版,2007(增刊2):112-114.
[5]張選芳.軟件技術基礎[M].北京:人民郵電出版社,2010.
[6]賀玲,蔡益朝.目標驅動法在計算機軟件技術基礎教學中的實踐[J].空軍雷達學院學報,2010,24(6):461-463.
[7]祁俊.創新實驗對《軟件技術基礎》課程的影響分析[J].價值工程,2012(22):255-256.
[8]劉海明,吳忻生,張梅,等.“軟件技術基礎”課程的雙語教學探索與實踐[J].高教探索,2007(增刊1):100-101.
[9]張小瑞,孫偉,張自嘉,等.《計算機軟件技術基礎》教學改革探索與研究[J].中國科技信息,2012(4):129,135.
[10]郭秀清.基于案例組織的軟件技術基礎教學方法研究[J].電氣電子教學學報,2006,28(5):23-26.
[11]劉澤星.軟件技術基礎教學中融入軟件工程思想[J].長沙鐵道學院學報:社會科學版,2008,9(4):141-142.
[12]干建松.項目課程模式下軟件技術基礎教學改革探析[J].電腦知識與技術,2011,7(32):7935-7936.