宋弢
(中國(guó)石油大學(xué)(華東)計(jì)算機(jī)與通信工程學(xué)院,山東青島266580)
結(jié)合人工智能技術(shù)的C語(yǔ)言教學(xué)方法研究
宋弢
(中國(guó)石油大學(xué)(華東)計(jì)算機(jī)與通信工程學(xué)院,山東青島266580)
C語(yǔ)言是一門應(yīng)用廣泛的通用計(jì)算機(jī)編程語(yǔ)言,具有良好跨平臺(tái)的特性,是許多高校理工科學(xué)生必修的課程。近年來(lái),隨著信息化進(jìn)入大數(shù)據(jù)時(shí)代,人工智能計(jì)算發(fā)展突飛猛進(jìn),成為大規(guī)模問(wèn)題和大數(shù)據(jù)處理方法的重要技術(shù),這對(duì)計(jì)算機(jī)編程教學(xué)任務(wù)提出了更高的要求和新的挑戰(zhàn)。文章研究結(jié)合人工智能技術(shù)需求的C語(yǔ)言教學(xué)的方法,是一個(gè)值得探索的教改課題。
教學(xué)改革;教學(xué)方法;程序設(shè)計(jì);計(jì)算思維;C語(yǔ)言
C語(yǔ)言是一門應(yīng)用廣泛的計(jì)算機(jī)編程語(yǔ)言,能夠以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼,并且需要嚴(yán)格的運(yùn)行環(huán)境支持便能運(yùn)行。C語(yǔ)言提供了底層的信息處理功能,同時(shí)具有信息處理快捷,跨平臺(tái)特性強(qiáng)的優(yōu)點(diǎn)。1977年,Dennis M.Ritchie發(fā)表了不依賴于具體機(jī)器系統(tǒng)的C語(yǔ)言編譯文本,隨后1982年國(guó)際上成立了C標(biāo)準(zhǔn)委員會(huì),建立了C語(yǔ)言的標(biāo)準(zhǔn)。1989年,ANSI發(fā)布了收個(gè)完整的C語(yǔ)言標(biāo)準(zhǔn)ANSI X3.159-1989,簡(jiǎn)稱“C89”,這也是C語(yǔ)言最早的標(biāo)準(zhǔn)。1990年,國(guó)際標(biāo)準(zhǔn)組織ISO將C89重新命名為ISO/IEC 9899,即“C90”。1999年,在C90的基礎(chǔ)上ISO發(fā)布了新的C語(yǔ)言標(biāo)準(zhǔn),命名為ISO/IEC 9899:1999,簡(jiǎn)稱“C99”。在2011年12月8日,ISO又正式發(fā)布了新的標(biāo)準(zhǔn),稱為ISO/IEC9899: 2011,簡(jiǎn)稱為“C11”。從C語(yǔ)言的發(fā)展歷程不難看錯(cuò),C語(yǔ)言作為底層的通用計(jì)算機(jī)編程語(yǔ)言,在人類社會(huì)發(fā)展的過(guò)程中,從電子計(jì)算機(jī)時(shí)代,到信息化時(shí)代,再到今天的大數(shù)據(jù)時(shí)代,都發(fā)揮著重要的作用。自上世紀(jì)80年代,C語(yǔ)言就被作為許多高校理工科本科階段的必修課程。
隨著人類社會(huì)進(jìn)入大數(shù)據(jù)時(shí)代,人工智能技術(shù)在社會(huì)發(fā)展中不斷發(fā)揮著舉足輕重的作用,例如智能機(jī)器人,模式識(shí)別與智能系統(tǒng),圖像處理與計(jì)算機(jī)視覺(jué),智能計(jì)算與機(jī)器博弈,知識(shí)發(fā)現(xiàn)與機(jī)器學(xué)習(xí)等。這些人工智能技術(shù)的實(shí)現(xiàn)的一般過(guò)程都利用編程語(yǔ)言將人工智能算法和模型在電子計(jì)算機(jī)進(jìn)行執(zhí)行,從而使得電子計(jì)算機(jī)具有一定的人工智能特性。2016年,Google公司開發(fā)的阿爾法圍棋(AlphaGo)人工智能程序,以4:1完勝世界圍棋冠軍、職業(yè)九段選手李世石,更是將人工智能技術(shù)推到了輿論的風(fēng)口浪尖,引起全世界范圍的關(guān)注。
C語(yǔ)言作為一種通用的計(jì)算機(jī)編程語(yǔ)言,具有良好底層計(jì)算特性和可擴(kuò)展性。如何在現(xiàn)階段的C語(yǔ)言教學(xué)中,結(jié)合當(dāng)下先進(jìn)的信息化技術(shù),尤其是人工智能技術(shù)是C語(yǔ)言教學(xué)改革中的重要問(wèn)題之一。文章研究結(jié)合人工智能技術(shù)的C語(yǔ)言教學(xué)方法,在講授C語(yǔ)言過(guò)程中增加人工智能技術(shù)實(shí)現(xiàn)的思考和實(shí)訓(xùn),以遺傳算法的C語(yǔ)言編程為例介紹C語(yǔ)言在人工智能技術(shù)中的應(yīng)用,從而到達(dá)基于C語(yǔ)言實(shí)現(xiàn)人工智能技術(shù)的目的。
(一)突出計(jì)算思維訓(xùn)練
計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問(wèn)題求解、系統(tǒng)設(shè)計(jì)、以及人類行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)。利用C語(yǔ)言編寫計(jì)算機(jī)程序時(shí),引導(dǎo)學(xué)生體會(huì)計(jì)算的本質(zhì),才能保證在面對(duì)不斷更新的軟件開發(fā)環(huán)境,學(xué)生通過(guò)理解計(jì)算機(jī)程序所蘊(yùn)含的計(jì)算本質(zhì)特點(diǎn),提高其學(xué)習(xí)新知識(shí)的效率,對(duì)學(xué)習(xí)和工作產(chǎn)生有利影響。計(jì)算思維是旨在通過(guò)約簡(jiǎn)、嵌入、轉(zhuǎn)化和仿真等方法,把困難問(wèn)題重新闡釋成易解決的方法。在C語(yǔ)言教學(xué)中體現(xiàn)為如何利用計(jì)算機(jī)編程語(yǔ)言來(lái)解決一個(gè)實(shí)際問(wèn)題的過(guò)程。計(jì)算思維其本質(zhì)是一種遞歸思維,代碼和數(shù)據(jù)之間相互轉(zhuǎn)換的方法。
在C語(yǔ)言教學(xué)過(guò)程中,需要突出計(jì)算思維的訓(xùn)練,其目的在于不僅讓學(xué)生學(xué)會(huì)編程語(yǔ)言,更要理解計(jì)算的本質(zhì),并將程序語(yǔ)言轉(zhuǎn)化為計(jì)算可執(zhí)行的程序,利用電子計(jì)算機(jī)的特性實(shí)現(xiàn)計(jì)算的過(guò)程。實(shí)現(xiàn)的計(jì)算過(guò)程要從計(jì)算思維角度進(jìn)行深入理解。
(二)淡化語(yǔ)法細(xì)節(jié),培養(yǎng)自主學(xué)習(xí)能力
在高等教學(xué)進(jìn)入“微課”時(shí)代的今天,學(xué)生自主學(xué)習(xí)的渠道日益豐富化。在高速網(wǎng)絡(luò),MOOC(大型開放式網(wǎng)絡(luò)課程),SPOC(小規(guī)模限制性在線課程)等網(wǎng)絡(luò)課堂飛速發(fā)展,課程的核心知識(shí)點(diǎn)可以在十幾分鐘內(nèi)由遠(yuǎn)在千里之外的教育家通過(guò)視頻的方式講授清晰,學(xué)生的學(xué)習(xí)方式也趨于靈活。這對(duì)于授課教師在課堂上講授知識(shí)點(diǎn)的方法提出了新的要求。講授過(guò)程中要注意淡化語(yǔ)法細(xì)節(jié),將語(yǔ)法等知識(shí)點(diǎn)留給學(xué)生自己學(xué)習(xí)體會(huì),培養(yǎng)學(xué)生的自我學(xué)習(xí)的意識(shí)和自主學(xué)習(xí)能力。這種淡化語(yǔ)法細(xì)節(jié)的教學(xué)方式,符合當(dāng)下流行的“翻轉(zhuǎn)課堂”,“開拓學(xué)生學(xué)習(xí)主動(dòng)性”等先進(jìn)教學(xué)理念。
自主學(xué)習(xí)要具有以下的特點(diǎn):(1)由學(xué)習(xí)者的態(tài)度、能力和策略等因素綜合而成的主導(dǎo)學(xué)習(xí)的內(nèi)在機(jī)制;(2)具有明確的學(xué)習(xí)目標(biāo)、學(xué)習(xí)內(nèi)容、學(xué)習(xí)方法以及使用的學(xué)習(xí)材料的控制權(quán);(3)在教師的指導(dǎo)下,根據(jù)自身?xiàng)l件和需要制訂并完成具體學(xué)習(xí)目標(biāo)的學(xué)習(xí)模式。學(xué)生自主學(xué)習(xí)過(guò)程中,教師的角色從傳統(tǒng)教育中的知識(shí)灌輸者,轉(zhuǎn)變?yōu)閷W(xué)生學(xué)習(xí)中的助力者。講授內(nèi)容也從普遍講授發(fā)展到難點(diǎn)精講,一般知識(shí)點(diǎn)由學(xué)生自主完成學(xué)習(xí)。培養(yǎng)學(xué)生的自主學(xué)習(xí)意識(shí)和自我學(xué)習(xí)能力,對(duì)于學(xué)生畢業(yè)后,面對(duì)不斷發(fā)展的工作環(huán)境和日益發(fā)展的信息化技術(shù),具有主動(dòng)學(xué)習(xí)和跟進(jìn)尖端信息技術(shù)是重要的能力。
(三)講究實(shí)踐實(shí)訓(xùn)效果
傳統(tǒng)的C語(yǔ)言的教學(xué)中,對(duì)于某語(yǔ)法的使用往往采用簡(jiǎn)單實(shí)例的方式,展示語(yǔ)言的功能。這一方式已經(jīng)無(wú)法滿足信息化高速發(fā)展的今天對(duì)計(jì)算機(jī)程序員的要求。隨著信息化的發(fā)展,提出了很多前沿的實(shí)踐實(shí)訓(xùn)教學(xué)方法。重視實(shí)踐實(shí)訓(xùn)的C語(yǔ)言教學(xué),有助于學(xué)生將所學(xué)的編程技術(shù)在最先進(jìn)的信息化技術(shù)中進(jìn)行實(shí)現(xiàn),對(duì)于其理解編程語(yǔ)言語(yǔ)法,跟進(jìn)先進(jìn)的信息技術(shù),學(xué)習(xí)信息處理方法具有重要的意義。
實(shí)踐實(shí)訓(xùn)的關(guān)鍵是課題設(shè)計(jì)的水平。高質(zhì)量實(shí)訓(xùn)題目具有全面性、理論性強(qiáng)、技術(shù)先進(jìn)等特點(diǎn)。教師為主設(shè)計(jì)的題目讓學(xué)生主動(dòng)尋求解放方法。通過(guò)實(shí)踐實(shí)訓(xùn)涵蓋教學(xué)知識(shí)點(diǎn),引領(lǐng)教學(xué)的全過(guò)程,系統(tǒng)地?fù)挝罩R(shí)。
利用C語(yǔ)言文法實(shí)現(xiàn)人工智能技術(shù)是對(duì)程序設(shè)計(jì)的一種高級(jí)要求,是對(duì)學(xué)生靈活運(yùn)用C語(yǔ)言底層語(yǔ)法的更高要求。文章以人工智能技術(shù)中的遺傳算法為例,以C語(yǔ)言的語(yǔ)法,包括字符串,指針變量等技術(shù)實(shí)現(xiàn)遺傳算法的過(guò)程,設(shè)計(jì)教學(xué)方案,其目的在于讓學(xué)生從遺傳算法的實(shí)現(xiàn)中,理解語(yǔ)法含義,計(jì)算邏輯,領(lǐng)會(huì)核心知識(shí)點(diǎn),系統(tǒng)地?fù)挝罩R(shí)。
遺傳算法是模擬達(dá)爾文生物進(jìn)化論的自然選擇和遺傳學(xué)機(jī)理的生物進(jìn)化過(guò)程的計(jì)算模型,是一種通過(guò)模擬自然進(jìn)化過(guò)程搜索最優(yōu)解的方法。
下面介紹基于C語(yǔ)言的實(shí)現(xiàn)方法,實(shí)現(xiàn)過(guò)程的講授有助于學(xué)生理解字符串處理,算術(shù)運(yùn)算,隨機(jī)函數(shù)等語(yǔ)法。
1.算法初始化
領(lǐng)會(huì)遺傳算法中各個(gè)參量的數(shù)值類型,使用const,int,double,float等數(shù)據(jù)類型定義算法中所涉及的參量,并根據(jù)算法設(shè)計(jì)對(duì)參量進(jìn)行初始化賦值。遺傳算法中的個(gè)體是以染色體形式表示的,體現(xiàn)在C語(yǔ)言中需要利用數(shù)組進(jìn)行表示int p[pop_size]。
2.開始迭代實(shí)現(xiàn)種群進(jìn)化過(guò)程
利用for循環(huán)語(yǔ)句實(shí)現(xiàn)種群代與代之間的更新,在for循環(huán)中加入if-else語(yǔ)句,實(shí)現(xiàn)在種群中選擇較優(yōu)個(gè)體。通過(guò)產(chǎn)生隨機(jī)種子,實(shí)現(xiàn)個(gè)體變異位點(diǎn)的隨機(jī)選取。個(gè)體之間的雜交運(yùn)算,利用C語(yǔ)言的字符串處理函數(shù)來(lái)實(shí)現(xiàn)。
3.最優(yōu)個(gè)體選取
根據(jù)設(shè)計(jì)的適應(yīng)度函數(shù),將字符串個(gè)體轉(zhuǎn)換為數(shù)值,從而進(jìn)行數(shù)值計(jì)算和個(gè)體之間的優(yōu)劣程度的比較。選擇最優(yōu)的個(gè)體后進(jìn)行雜交和變異,從而形成新的種群,實(shí)現(xiàn)種群的更新。
按照上述的C語(yǔ)言講授方法,可以讓學(xué)生熟悉頭函數(shù)功能,變量定義方法,尤其是結(jié)合實(shí)際需求的變量定義方式,函數(shù)聲明方法,分支運(yùn)算,循環(huán)運(yùn)算的功能,理解遺傳算法計(jì)算機(jī)理的同時(shí),掌握C語(yǔ)言的基本知識(shí)點(diǎn)。具有很好的實(shí)際應(yīng)用和知識(shí)點(diǎn)覆蓋效果。
結(jié)合人工智能技術(shù)的C語(yǔ)言教學(xué)方法研究能夠使學(xué)生在學(xué)習(xí)通用計(jì)算機(jī)編程語(yǔ)言的同時(shí)理解人工智能的計(jì)算內(nèi)涵,并且利用底層的基本程序語(yǔ)言和語(yǔ)法實(shí)現(xiàn)。通過(guò)實(shí)踐實(shí)訓(xùn)能夠涵蓋教學(xué)知識(shí)點(diǎn),引領(lǐng)教學(xué)的全過(guò)程,有助于學(xué)生系統(tǒng)地?fù)挝罩R(shí)。結(jié)合人工智能技術(shù)需求的C語(yǔ)言教學(xué)的方法,是一個(gè)值得探索的教改課題。
[1]高能所,周錫令.一種書寫系統(tǒng)程序用的可移植語(yǔ)言-BCPL簡(jiǎn)介[J].計(jì)算機(jī)工程與應(yīng),1980(12).
[2]蘇小紅,孫志崗,陳惠鵬.C語(yǔ)言大學(xué)實(shí)用教程[M].北京:電子工業(yè)出版社,2013:8.
[3]Stephen Prata.C Primer Plus[M].人民郵電出版社,2005:1-3.[4]Russell S,Norvig P.Artificial intelligence:a modern approach[J].Artificial Intelligence,1995.
[5]谷歌AlphaGo大戰(zhàn)李世石首局:機(jī)器人勝![EB/OL].中國(guó)機(jī)器人,2016.
[6]Wing J M.Computational thinking[J].Communications of The ACM,2006,49(3):33-35.
[7]慕課崛起,大學(xué)的未來(lái)在網(wǎng)絡(luò)?[EB/OL].MOOC學(xué)院,2014.
[8]李忠偉,張學(xué)輝,吳春雷.因?qū)I(yè)施教的“程序設(shè)計(jì)”類課程教學(xué)研究與實(shí)踐[J].2013(22):188-189.
[9]李昕,張學(xué)輝,鄭立垠,等.程序設(shè)計(jì)課程的教學(xué)新模式[J]. 2016(1):139-140.
[10]李昕,呂鵬飛,張學(xué)輝,等.采用“項(xiàng)目驅(qū)動(dòng)+案例教學(xué)”模式提升C語(yǔ)言教學(xué)[J].課程教育研究,2015(29):255-256.
C programming language is a widely used general-purpose computer programming language,which has a good cross-platform features and is a required course for students in many colleges and universities.In recent years,with the information into the era of big data,artificial intelligence of calculation develops by leaps and bounds,becoming an important technology of the large-scale problems and big data processing method,it puts forward higher requirements on computer programming teaching tasks and new challenges.In this paper,we study C language teaching approach combined with needs of artificial intelligence technology.It is a subject that is worthy to explore the educational reform.
teaching reform;teaching methods;program design;computational thinking;the C language
G642
A
2096-000X(2016)19-0091-02
宋,(1983,06-),男,漢族,籍貫:山東青島,單位:中國(guó)石油大學(xué)(華東)計(jì)算機(jī)與通信工程學(xué)院,講師,博士,研究方向:生物計(jì)算,高性能計(jì)算,人工智能。