999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

論程序設計教學之實質

2014-08-15 00:45:05張鳴華
長春教育學院學報 2014年10期
關鍵詞:解決問題思維教學

張鳴華

要從事計算機專業,程序設計是必不可少的一門課程。程序是計算機可以懂的一系列指令,是計算機的靈魂。程序設計就是設計出能在計算機上運行的、符合人們意志的代碼。程序設計教學就是教會學生編出能解決問題的、使計算機運行的代碼。然而,我們的教學結果有太多的失敗和困惑。計算機專家們在呼吁:我國的程序設計不如人,一些碩士生導師及博士生導師們在呼喊:竟然有研究生不能調試代碼!尷尬現狀讓我們思考,程序設計的實質究竟是什么?程序設計的教學之路在何方?筆者通過向清華大學的吳文虎老師、上海交通大學的俞勇老師、北京工業大學的蔣宗禮老師等賢人的學習,以及與同行計算機老師的交流與探討,對程序設計的實質有了更深的理解,程序設計的教學應該從本學科的特點出發,讓學生遵循認知規律學習。

一、程序有完整體系,動手踐行是關鍵

在C語言中,最簡單的一個程序的結構要有頭文件(由編譯預處理指令#include把頭文件信息調入)和主函數(main)部分,要使用一個變量,必須先定義這個變量再使用,要使用一個函數,聲明后還要定義才可以使用。程序運行時要先把代碼編譯成.obj文件,再把.obj文件連接成可執行的目標程序.exe。程序是可運行的、完整的代碼,任何一個語句,一條規則都只是其中的一部分。當我們離開開發環境,用PPT肢解出一條條規則時,學生就不能完整地寫出一段能解決問題的代碼。

一個眾所周知的公式是:程序=數據結構+算法+代碼。不知道用什么算法讓計算機進行運算,設計程序無從下手;不知道如何用變量表達問題中的參數,就不能把問題轉化成代碼的模型;不會用語句表達算法,就寫不出完整的代碼。因此,學習程序語言就應該結合問題,先分析用什么算法、然后確定用什么數據結構表達問題中的量、再用代碼把思路表達出來。

我國成功的程序設計教師都得出同樣的結論:編程不是教會的,而是練會的[1]。即使把語法背得滾瓜爛熟也不能寫出完整的代碼,要把教學重點放在解題的思路上。北京工業大學蔣宗禮老師統計得出:一個成功的軟件方向的大學生在校的編程量要有4萬行代碼,最低也不能少于2萬行代碼[2]。學有成就的學生也得出這樣的結論:眼過千行不如手敲一行。看人家的代碼不如自己寫代碼;看人家的算法不如自己想算法。

程序設計的教學就是讓學生從動手敲代碼開始。比如第一課就讓學生編程輸出“Hello”,讓學生感知程序設計的完整過程,認知開發環境,學習實踐的方法。程序設計入門的重點是培養學生的興趣和建立編程思維,要由簡到繁、由淺入深。開始用簡單的公式、計算、簡單判斷等單一的問題引導學生,然后再不斷綜合練習要解決的問題。教學是不斷示范、指導、糾錯的過程,開始的算法是求和、求最值(比較)、求公式的值、系統函數、求數列的和等。開始的數據類型先用int、float、double,以各個知識點引導學生看書。帶學生處理好數據結構,教會他們如何選擇數據類型和設計數據的個數及處理方法,有限個(若干個)怎么處理;不定的怎么處理;有T種案例,每一種案例又有若干個數據的怎么處理。開始要鼓勵學生多做題,培養學生解決問題的勇氣。入門成功就相當于培養了學生良好的學習習慣,營造了良好的學習風氣,接下來分析、引導,讓學生舉一反三;最后引導他們獨立思考,實現自主學習。

二、程序是工具,解決問題是學習目標

程序是人們駕馭計算機的通用智力工具[5]。工具的價值在于使用,不只是學習。使用就是不斷從問題出發,用這個工具去解決問題,而把需要解決的問題轉化或抽象成數學模型是解決問題的途徑,如解決數學問題,無論多簡單或多復雜的問題都要形式化為數學式子或相應的操作步驟。因而,學生要順利使用程序這一工具去解決問題,必須具備較強的數學基礎、訓練獨特的編程思維方式,以及學習計算機能夠“懂”的語言。

學生要提高應用程序工具解決問題的水平,是在不斷使用的過程中實現的。因此程序設計的學習,就從寫代碼解決問題開始,而不是從背變量類型等開始。寫代碼從簡單問題開始,循序漸進,讓思維螺旋式上升。如循環語句,先簡單使用,讓學生認識;再解剖應用,讓學生會用;再三種循環對比,讓學生靈活應用;再嵌套使用,讓學生能綜合應用。程序這個工具中極其重要的部分是調試,不會調試就是不會編程。不經歷數十次甚至數百次的調試挫折,便不能完成一個項目的調試工作。程序有很多不同功能,更有很多創造性的使用方法,教學不可能窮盡所有的細節,因此,必須教學生科學的學法,讓學生自己去學,而不是讓學生背標準答案,即教師授之以魚不如授之以漁。

可見,程序設計是運用綜合能力和知識去解決問題的過程,解決問題是根本的和最終的目標。要以問題驅動的模式進行教學,讓程序這個工具的使用越來越靈活,讓學生不斷提升解決問題的能力。

三、程序設計是高級思維活動,興趣是學習動力

思維活動是人們自覺的、獨立的行為,是對問題進行內化的過程。程序設計的思維包含計算思維、邏輯思維、抽象思維等,是一個高級思維活動[4]。

計算思維是人類借助通用智力工具求解問題的一條途徑,涉及理解和運用計算機科學的基本概念、遞歸思想、抽象化、形式化、枚舉、搜索、啟發推理等。邏輯思維是將問題轉化為邏輯表達式,而把問題轉化成數學模型是抽象思維。程序設計要綜合應用這些思維方式,比如算法中的遞歸、枚舉、搜索、動態規劃等就是這些思維方式的應用。

思維具有廣闊性、敏銳性、靈活性、深刻性和創造性。要提高學生程序設計能力,必須在課堂教學中有計劃地進行思維訓練,如:聯想、推理、對比、歸納、反思等。如果一堂課只是羅列知識、內容簡介,學生就會開小差或離開課堂。思維是擁有自主能力、有完美人格人的腦力勞動過程,一個沉迷于網絡游戲不能自控的人無法進行這樣的思維活動。提高學生的思維水平先要培養學生的人格品質,培養自主性、自覺性。興趣是思維的動力,要深化思維的訓練就要先培養學生對要思考問題的興趣,枯燥、死板、無邏輯性的方式無法激發學生的思維。我們程序設計教學要充分利用程序設計在線測試平臺來提升學生的編程興趣,學生一旦提交解決問題的代碼可以馬上知道是否正確,可以與其他同學進行比較和交流,可以一次次嘗試解決問題帶來的挑戰和挫折,學習的過程是充滿興趣的、有深層思考的、自覺的過程。

四、明確認知程序設計課程的作用、地位與目標,讓課堂充滿活力

科學院院士李未說:“在不遠的將來,程序設計和數學建模與微積分、高等代數、大學物理一樣,成為所有大學的核心基礎課程。”吳文虎老師指出程序設計課程目標[5]是:第一,借助程序設計的知識載體,學習和掌握基本問題的求解過程和基本思路;第二,建立算法意識,培養良好的思維習慣;第三,從學科方法論上打基礎,培養計算思維能力和分析問題解決問題的能力。程序設計課程承擔著知識的傳承、能力的培養和良好習慣的養成的任務。一些有識之士指出,目前中國的教育是隱含著功利的教育,失敗的教育。俞勇老師在介紹ACM隊優異成績時特別指出:要反思中國的教育、轉變教學理念、改變教學方法。培養一個優秀的ACM選手,不僅是要培養技能,還要考慮非技術的實力:動力、習慣、能力和心理。上海交大ACM班的理念是先做人,后做學問,在做學問中學會做人[3]。

吳文虎老師說:“課堂教學重要的是要喚醒學生的力量,培養其自我性、主動性、抽象的歸納力和理解力”。學生學會的東西不是我們教會的,而是通過他們自己內化的。我們的教學是用微笑呼喚學生、用情感去感染學生、用認真與執著去規范學生、用知識的魅力去啟迪學生、用思維去帶動學生、用示范去引領學生。程序設計的教學本質是人的教育。我們的課堂就是要從細節處,引導學生面對問題,學會思考并解決問題。

五、程序設計教學路在何方,考試是指揮棒

考試是教學的指揮棒,怎樣考,教師就怎樣教,學生就怎樣學,離開了開發環境去考學生的填空、選擇,必然會產生死記硬背及投機取巧的學習方式。清華大學博士生導師吳文虎說:“傳統的教學方式是:好教、好學、好背、好考,但不好用;不能激發興趣;編不出程序,影響到后續課,影響研究生的水平;學了許多語言,學得快,忘得更快;考核方式不對”。他還指出:訓練與考核方式要一致,動手編程才是正確的學習方法[5]。程序設計的考試應該在真正的開發平臺進行,給出問題,由學生完成代碼,機器過了才算,如果不過,多練幾次就過;如果學生基礎差,可以適當簡化問題、降低要求。只要有正確的考試方法引導,學生就會學到真本事,做到可持續學習。ACM隊的一位選手、小老師說:“不能用選擇、填空題來衡量一次程序設計考試,程序設計考試離開開發平臺將變得乏味,例如:一個題考有符號int的最大值(VC+環境下),如果用手計算你得求:2^0+2^1+2^2+…+2^30的值,這是一個痛苦的計算,為了得分考生只能選擇死記硬背,然而在開發平臺,你只要輸出0x7fffffff的值即可得到答案。”

考題不僅體現內容的特征,還是教學的體現。教學中的重要細節,知識脈絡中的重要節點都要以有意義的方式出現,不要去出偏的、做作的問題,特別不要把知識點打散了讓學生背,這樣不僅不能培養學生的創新能力、解決問題的能力等,還會泯滅了學生的學習熱情。

嚴明的考風是教學的保證。如果考試中有投機的成分,就會有學生平時敷衍對付,影響自覺學習。我們要不斷改進考試的控制方式,讓學生獨立完成,如:采用IP限定等手段,還可讓不同層次的學生選擇不同分值的問題,讓考試能反映學生真實的水平。

考試是平時教學的縮影。只有一次期末考試,便會出現隨機性,有些學生會出現平時不學,臨考試再來加班的現象。我們實行分階段考試,各階段的測試都占有一定比例,期末占%40。平時有不同方式對應著成績的一部分,督促學生認真學習。

總之,程序設計的教學是理論與實踐一體化的過程。吳文虎老師五十年的教學生涯,十余年的教改之路總結出一個成功的教學模式與思路:問題驅動(引發興趣)-->理出思路(抽象思維、邏輯思維形式化)-->建立模型(歸納模型化)-->構思算法(算法設計)-->程序實現(程序、結構、編碼、調試)。這也是我們程序設計教改的成功之路。

回顧這幾年的教改,實施的是讓學生動手實踐、用問題驅動的方式。現在我們的學生能夠在省ACM編程競賽中獲得名次、搭建程序設計在線測試平臺、完成三鋼生產線上的鋼包跟蹤項目。數學與信息工程學院以C語言硬過的方式全面進行教改,大批學生會編程、愛編程,學生的專業學習有了基礎,學院有了好的學風。

參考資料:

[1]吳文虎.信息科技教育與培養創新型人才[R].湖南長沙:清華大學,2011.

[2]蔣宗禮.明確定位,構建科學有效的課程體系;瞄準目標,提高課程建設與教學水平[R].湖南長沙:北京工業大學,2011.

[3]俞勇.競賽與人才培養[R].湖南長沙:上海交通大學,2011.

[4]吳文虎.論拼搏精神與良好心態[R].湖南長沙:清華大學,2011.

[5]吳文虎.程序設計基礎的改革思路[R].湖南長沙:清華大學,2011.

[6]常子楠.基于ACM模式的程序類課程實踐教學探索[J].計算機教育,2010(16):144-146.

[7]邱欽倫.CDIO與軟件人才培養[J].計算機教育,2010(11):14-17.

[8]劉志宏,劉舟荷,張雯暉,段需勤,孔麗.項目教學法在C語言教學中的實踐與研究[J].中國成人教育,2010(4):139-140.

[9]夏承遺,李文杰,孫世溫.問題驅動的“C++程序設計”教學方法研究[J].計算機教育,2010(1):122-125.

[10]盧昌荊,王紅雨,林克明等.新建本科院校IT類應用型人才培養新模式的探索與實踐[J].計算機教育,2009(4).

猜你喜歡
解決問題思維教學
思維跳跳糖
思維跳跳糖
思維跳跳糖
思維跳跳糖
聯系實際 解決問題
助農解決問題增收致富
今日農業(2021年9期)2021-11-26 07:41:24
在解決問題中理解整式
微課讓高中數學教學更高效
甘肅教育(2020年14期)2020-09-11 07:57:50
“自我診斷表”在高中數學教學中的應用
東方教育(2017年19期)2017-12-05 15:14:48
化難為易 解決問題
主站蜘蛛池模板: 91久久国产成人免费观看| 国产成人免费视频精品一区二区| 国内丰满少妇猛烈精品播| 国产91小视频| 日韩毛片免费| a毛片免费观看| 99热国产这里只有精品无卡顿" | 99在线观看精品视频| 国产91无码福利在线| 色综合久久久久8天国| 91国内视频在线观看| 国产精品污视频| 国产内射在线观看| 狠狠色香婷婷久久亚洲精品| 亚洲人成人无码www| 国产成人精品综合| 久久精品视频亚洲| 欧洲成人在线观看| 国产精品免费福利久久播放| 免费无码网站| 精品无码国产一区二区三区AV| 欧美国产在线看| 日韩在线影院| 国产亚洲视频中文字幕视频| 国产尹人香蕉综合在线电影 | 日韩小视频在线观看| 亚洲AⅤ波多系列中文字幕| 国产精品99在线观看| 波多野结衣视频一区二区| 美女一区二区在线观看| 欧美亚洲中文精品三区| 91精品免费高清在线| 国产一级精品毛片基地| 91网红精品在线观看| 色婷婷电影网| yjizz国产在线视频网| www.亚洲一区| 国产女人18水真多毛片18精品 | www.亚洲国产| 538国产在线| 五月婷婷激情四射| 成人福利在线看| 国产人成午夜免费看| 91精品国产一区| 成人免费视频一区| 亚洲成人在线网| 国产亚洲视频中文字幕视频| 天天躁狠狠躁| 欧美在线伊人| Jizz国产色系免费| 黄色一级视频欧美| 凹凸国产熟女精品视频| 久久黄色影院| 欧美在线精品一区二区三区| 日本欧美精品| 日本高清在线看免费观看| 久久久久国产精品免费免费不卡| 久久婷婷六月| 国产综合亚洲欧洲区精品无码| 亚洲色精品国产一区二区三区| 日本亚洲欧美在线| 国产91在线|中文| 国产亚洲精品精品精品| 中日韩一区二区三区中文免费视频| 日韩成人在线网站| 看国产毛片| 无码不卡的中文字幕视频| 欧美精品亚洲精品日韩专| 成人另类稀缺在线观看| 亚洲人成网站18禁动漫无码| 国产白浆一区二区三区视频在线| 国产av无码日韩av无码网站| 制服丝袜国产精品| 狠狠色香婷婷久久亚洲精品| 精品国产一区91在线| 国产色网站| 欧美人人干| 毛片一级在线| 久久99热66这里只有精品一| 日本在线国产| 国产精品青青| 亚洲天堂精品视频|