張雙獅
(武警學院 部隊管理系,河北 廊坊 065000)
在程序設計教學中融入馬克思主義哲學原理的策略探討
張雙獅
(武警學院 部隊管理系,河北 廊坊 065000)
程序設計是培養(yǎng)學生邏輯思維能力和計算思維能力的重要課程,計算機程序用最簡單的方式表達了馬克思主義哲學的世界觀和方法論,已經(jīng)成為人類認識世界和改造世界的重要工具。闡述在程序設計教學中融入馬克思主義哲學原理的重要性、融入方式及效果,以期培養(yǎng)學生學習程序設計的興趣和提高教學效果。
程序設計;馬克思主義哲學原理;融入;教學效果
19世紀中葉產生的馬克思主義哲學,是人類認識史上的偉大變革。它以科學的世界觀為核心,實現(xiàn)了唯物主義與辯證法的統(tǒng)一、唯物主義自然觀和歷史觀的統(tǒng)一,從而為人們認識世界和改造世界,樹立科學的世界觀、人生觀和價值觀,打下扎實的哲學理論基礎[1]。20世紀中葉產生的計算機則實現(xiàn)了人腦功能的延伸,在人類認識世界和改造世界中發(fā)揮著越來越重要的作用,如果說硬件是計算機的軀體,那么程序則是計算機的“靈魂”,是人類大腦思維的物質反映。由無數(shù)科學家和工程師建立起來的程序設計的原理和方法與馬克思主義哲學原理(以下簡稱馬哲)不謀而合,處處閃耀著馬哲的光芒,豐富了馬哲的內容,在實踐中證明了馬哲的正確性和科學性,是馬哲活的靈魂最簡潔最集中的體現(xiàn)。因此,程序設計教學客觀上要求馬哲的融入,二者的有機結合,可以更好地達到學習目的,提高教學效果。
長期以來程序設計教學主要強調計算機語言本身,弱化了提高學生認識問題和分析問題的能力,更沒有從世界觀和方法論角度開展教學。這樣導致的結果是:(1)對程序設計的重要性認識不足。不從世界觀和方法論出發(fā),只是為了教會學生編程而開展教學,枯燥的語法和“骨感”的邏輯很難調動學生的積極性。學生普遍認為將來的工作參與軟件開發(fā)的可能性很小,工作中用到的程序直接購買便可。當前能應付考試,拿到學分就夠了。實際上學生也不是必須要學會編程語言,而且僅靠一學期幾十個學時的學習也不可能熟練使用某種程序設計語言。因此,程序設計的教法和其本身的難度使學生望而生畏,不愿深入學習。(2)程序設計的框架難以建立。重視語言和語法的教學,會讓學生置身其中而感到迷茫。最多能完成幾個典型算法程序的編寫。而對程序的結構及其在電腦中的運行規(guī)律卻沒有一個系統(tǒng)的認識。學過不久,程序設計的概念在學生腦中消失殆盡。(3)程序設計對學生思維能力和認識水平的提高作用難以體現(xiàn)。過分注重程序的編寫,把程序設計教學簡單地作為一種技能來講授,會將教學引到一條很狹窄的路上。會讓學生知難而退,失去學習的信心,甚至覺得開這個課都是多余的。
程序設計本身就是一門集思維科學、社會科學和自然科學的綜合科學,是人腦思維在計算機中的集中體現(xiàn),同時也是檢驗認識正確性和科學性的有力工具。程序設計不能脫離所要解決的具體問題、分析問題的方法、解決問題的流程、問題解決過程中可能出現(xiàn)的新問題和困難的監(jiān)測,以及結果正確性檢驗等等。因此,程序設計應該是馬哲的重要實踐課程之一,是馬哲在認識實踐中的重要體現(xiàn)。教學中如能融入馬哲的大背景。則會讓學生豁然開朗。通過程序設計引導學生體會作為管理者,如何設計任務,才能使任務更明確、更具體、更容易被下屬理解,以及可操作性更強。通過程序設計培養(yǎng)學生的標準意識和規(guī)范意識,盡可能地避免指令的隨意性。同時,對馬哲的理解也不能缺少了程序設計這個認識馬哲科學性和完備性的有力工具。
程序設計本質上關乎科學世界觀和方法論的建立問題,遠不止一種簡單技能的掌握那么簡單。在程序設計教學中,教師除了講授程序語言本身的基礎知識外,更應該重視如何用馬克思主義的哲學原理去理解程序設計的規(guī)律。讓學生在溫習鞏固馬哲的基礎上理解電腦程序的構成及運行規(guī)律,更好地進行人機對話,對電腦的優(yōu)勢和局限性有一個更加清楚的認識。
馬哲的本體論指出,物質第一性,意識第二性,意識是對客觀物質世界的能動的反映。既指出了意識的局限性,也指出了意識的能動性。而程序設計又是電腦對人類思維客觀的反映。這其中既包含了程序設計的局限性,即沒有清晰的思維就不會有正確運行的程序,同時也包含著程序設計的獨特魅力。這就是馬哲指出的,更重要的不是掌握了對世界規(guī)律性的認識,而是能夠解釋世界,拿著這種對規(guī)律性的認識去能動地改造世界。其實,不論是認識世界,還是改造世界,人的思維都存在很大的局限性,而程序設計為人類認識和改造世界插上了放飛夢想的翅膀。這是首先要有的對程序設計的基本認識。通過學習程序設計,讓學生清楚地認識到電腦的局限性,提高自身思維能力是多么的重要;同時,深刻地明白,程序對我們的幫助越來越大,科學合理地利用程序多么的重要。
馬克思主義認為物質是運動的、絕對的,運動是物質的根本屬性,靜止是相對的。眾所周知,計算機是能按照給定程序自動執(zhí)行數(shù)值計算和信息處理的電子裝置,而其核心是CPU,靠得是一個能連續(xù)產生電脈沖的晶體振蕩來推動其運行的。一旦上電,CPU就開始不停地工作,當然,其工作就是在執(zhí)行程序。這就客觀上要求設計一個能不停地周而復始地運行的程序,即一個死循環(huán)程序,它的主要任務是啟動和結束其他作業(yè)程序的執(zhí)行。即使沒有外部操作,死循環(huán)程序也一直在運行。對于有操作系統(tǒng)的計算機,其死循環(huán)程序就在操作系統(tǒng)中,如Windows系統(tǒng)的死循環(huán)程序就是消息循環(huán),用來檢測軟硬件上發(fā)生的事件。有了這個死循環(huán)就相當于啟動了整個計算機軟件的“新陳代謝”,這就是程序的絕對運動,靠這種絕對運動來保證具體作業(yè)程序的運行和停止。對于初學程序設計的人費解至極。特別是Windows程序設計,不理解這個運動的絕對性和靜止的相對性,就不會很好地理解VB編程中的屬性、事件和方法,對于VC編程中的消息傳遞更是一頭霧水。
程序設計和馬哲學習相輔相成,對于馬哲的理解和認識制約著我們對程序設計的學習和理解。要想學好程序設計,不可能脫離對世界觀和方法論的學習。因此,在大學程序設計教學過程中,特別是對非計算機專業(yè)的學生,我們要將馬克思主義的哲學原理融入程序設計教學中,真正做到在程序設計教學中掌握科學的世界觀和方法論,提高認識問題、分析問題和解決問題的能力,在程序設計的具體實踐中,深刻領會馬哲的科學性。
(一)在整個教學過程中貫穿馬克思主義能動的認識論
比如在VB程序設計的教學中,會遇到對象以及對象的屬性、事件和方法等概念。就程序設計本身而言,是寫給計算機的文章,用機器語言跟機器對話,較為抽象。如果按照教材的安排,開篇就講面向對象的理論,無疑會讓學生感到不知所云,緊接著講變量、表達式和函數(shù),學生更難理解,漸漸失去了學習興趣。特別是對于非計算機專業(yè)學生,雖然有一定計算機文化基礎,但還是會因為背景知識不足而學起來吃力。
馬克思主義認為,認識要經(jīng)歷由簡單到復雜,由感性到理性,由理性抽象到理性具體的過程。教學設計需要這個理論指導,可將教學過程分成導引、人機界面設計、面向對象原理和語言語法三個階段循序漸進,逐步深入。
第一階段,用三個問題將學生引入程序設計的大門:(1)程序設計跟我有什么關系?我了解程序嗎?學生每天都在使用程序,對人機界面非常熟悉,教師只需將其適當專業(yè)化就拉近了學生與程序的距離。(2)那么多流行的強大語言,我們還學VB,不過時嗎?教師將各個行業(yè)用VB開發(fā)的程序給同學們展示一遍,讓同學知道自己玩過的游戲,用過的程序都可以用VB開發(fā),VB并不低級,也不過時。世界上幾千種編程語言其邏輯結構都是相同的,只是語法和表達方式不同罷了,用馬哲的視角看,都是一樣的,學一種便可知幾千種,之所以作為教學用語言,是因為它簡單而不失強大。(3)我是否可以編寫出復雜的程序?在學生的好奇心被調動起來后,接著激發(fā)其自己動手編寫程序的想法。
第二階段,自己動手設計程序。人機交互首先要做的就是人機界面的設計。教師要先演示,然后開始畫界面,接下來往界面上放元素。元素放上去,是固定的,點上去沒反應,這就是靜態(tài)界面的設計。
第三階段,面向對象理論。簡要介紹什么是對象,以及對象的屬性、事件和方法。有了前階段的學習,理解面向對象理論就有了足夠的感性認識,經(jīng)過這一階段,程序已經(jīng)有了,但此時的功能非常簡單,基本上是一步一動,學生急切地想讓程序實現(xiàn)更加強大的功能。
第四階段,程序語言和語法。這個階段,學生進入到程序設計最核心的部分,仍然用日常學習語言的方法,機器語言作為一種語言也由字詞句段落組成,也有自己的謀篇布局及邏輯結構。按照這樣的認識論一步一步開展教學,學生不會感到累。例子不需多,只需細,每個例子老師都在課堂上親自操作。按照引入演示、界面設計、對象屬性、事件和方法程序編寫,錯誤調試的順序,每節(jié)課最多不超過三個例子,但是每個例子學生都會受到一遍從簡單到復雜、從感性到理性的理論熏陶。一學期下來,其編程的素養(yǎng)自然而然就提高了。
(二)在講解控制結構和分析程序時融入馬哲的發(fā)展觀
馬克思主義認為世界是發(fā)展的,事物會不斷的隨時間由簡單向復雜、由低級向高級發(fā)展,發(fā)展是有條件的,道路是不平坦的,不同的條件會有不同的結果。而且,在一定條件下會出現(xiàn)反復,即歷史事件的重現(xiàn),但這不是簡單的重復,而是意味著新事物的產生,舊事物的滅亡。這個世界發(fā)展規(guī)律反映在程序設計中正是程序的三種控制結構,即順序結構,選擇結構和循環(huán)結構。到目前為止,這簡單的三種控制結構解決了絕大多數(shù)問題。用極其簡單的控制結構闡述了馬哲的發(fā)展觀。(1)順序結構,程序從頭到尾一步一步地執(zhí)行,直到結束。(2)選擇結構,通過判斷來決定程序執(zhí)行的方向,可以是單分支選擇,也可以是兩分支選擇,還可以是多分支選擇。程序執(zhí)行的條件性,反映了事物發(fā)展的條件性,選擇結構的嵌套反映了事物發(fā)展條件的復雜性,樣式簡潔,但很完美。(3)循環(huán)結構,程序的重復執(zhí)行,但不是簡單的重復,每次的循環(huán)主體變量要發(fā)生一定變化,然后判斷主體變量是否滿足循環(huán)的條件,如果滿足,繼續(xù)循環(huán),不滿足則跳出循環(huán)。程序設計中三種控制結構的有機組合逐步描繪出絢麗多彩的物質世界的運動、變化和發(fā)展[2]。
(三)在實踐課中布置設計題目,體會馬哲的精髓——科學實踐觀
馬克思主義哲學的精髓是科學的實踐觀,這是其區(qū)別于一切舊哲學的理論原點,貫穿于馬克思主義哲學的各個組成部分。學好程序設計不可能脫離實踐,作為程序設計教學重要的環(huán)節(jié),實踐教學必須跟實際問題緊密地結合起來。這種結合就體現(xiàn)在如何在實踐課教學中,適當加入大家熟知的應用程序設計,讓同學們去深刻地感受科學實踐觀的內涵。就是要經(jīng)歷認識→實踐→再認識→再實踐這樣一個不斷飛躍不斷升華的過程,體會從感性具體→理性抽象→理性具體這樣的認識過程。有時候看上去所有的人對問題本身非常熟悉,對程序要實現(xiàn)的功能似乎也非常熟悉,然而要把它的功能用文字詳細寫下來卻并非易事。比如布置這樣一個題目:編寫一個數(shù)字軟鍵盤,可以設計成“軟計算器”,也可以設計成“模擬電話撥號器”。要求:(1)用文字寫出軟件的詳細功能說明,設計步驟,實現(xiàn)方法;(2)用文字寫出詳細的設計流程;(3)按照所寫的以上兩步驟內容進行程序編碼;(4)調試程序完善。
教學實踐中,學生經(jīng)過這種簡單的設計,通過反復調試程序,將功能說明由粗疏到細致的完成,對數(shù)字軟鍵盤的認識從最初的簡單模糊變的完整清晰。學生普遍的收獲是:一個想法要轉化成可操作的步驟,需要經(jīng)歷認識→實踐→再認識多次的反復,否則,給出的操作步驟是不科學的。對自己將來管理中方案、制度、政策等的制定啟發(fā)很大。
(四)培養(yǎng)學生用馬哲原理分析問題的主動意識
馬克思主義哲學認為世界是物質的,物質是運動的,運動是有規(guī)律的,規(guī)律是可以被認識的,而且只要你去認識,總會認識清楚。程序設計的學習本身有其獨特的規(guī)律性,將社會科學問題、自然科學問題及人類思維問題的求解過程轉化為計算機語言的能力和素養(yǎng)靠課堂上短短的幾十分鐘是遠遠不夠的,可以讓同學在課余時間嘗試各種不同方面問題的求解。比如,可以引導學生用程序來描述大學物理中的各種運動學問題,從自由落體運動、平拋運動、斜上拋運動這三種運動開始,要想清楚地描述運動,首先必須進一步學習運動方程和牛頓運動定律。因此,通過實踐活動能深刻地體會到力是產生運動的原因,所有這三種運動中,物體只受到重力的作用,也就是只在豎直方向上有加速度,水平方向沒有加速度,做勻速直線運動。搞清楚運動規(guī)律后,把參數(shù)方程程序化,用繪圖函數(shù)就可以畫出位移隨時間的變化曲線??梢韵冉o學生演示模擬結果,以激發(fā)其自己動手的興趣和欲望,進一步嘗試用程序模擬子彈的彈道曲線。比如,一個獵人要拿獵槍打中樹上的猴子,在他扣動扳機時猴子從樹上跳下,模擬打中猴子的角度和子彈的初速度。有了前邊的基礎,這個問題就好解決了,這是自由落體運動和斜上拋運動的相交問題,導彈的攔截就是這個道理。然后,引導同學模擬太陽、地球、月亮三者的圓周運動。另外,還可以引導同學用程序設計一個簡單的選課管理系統(tǒng)、圖片管理器、音樂播放器、文件管理器、電話撥號程序等等。通過大量的鮮活任務的實現(xiàn),既解決了同學學習生活中的小問題,又極大地激發(fā)了他們對程序設計的學習興趣。
這些生動的編程活動,帶給學生的觸動,會深深地植入他們心底。他們會逐漸感悟到,編寫程序不是程序設計課程最終的目的。因為程序設計過程中大量的時間花在了對問題的認識和求解上,當把解決問題的方法寫成具體的可操作的步驟時,對問題的認識從理性的抽象到了理性的具體,程序的實現(xiàn)就水到渠成了。如果在工作中也能把實施方案寫成具體的可操作的步驟,就可以盡可能地避免工作中的盲目性。
本文所研究的教學方法,同時分別在成人本科隊和普通本科隊開展。期末考試中,105人的成人本科隊平均分73.15,64人的普通本科隊平均分74.47,普通本科隊在平均分上與成人本科隊相比,沒有優(yōu)勢,說明該方法對激發(fā)學生學習興趣有效,能提高教學效果。成人本科隊的數(shù)學和英語基礎都比較弱,但是,對馬克思主義哲學原理卻理解較深,因而對程序設計的理解并不比普本學生差,他們更愿意把問題的分析和解決寫成操作步驟,普本的學生則更喜歡直接上手進行程序實現(xiàn)。
[1] 葉敦平,姚儉建,李毅.馬克思主義哲學原理[M].北京:高等教育出版社,2003.
[2] 王衛(wèi)華,張雙獅.程序設計之新解[J].電腦知識與技術,2014(5):3311-3313.
(責任編輯 杜 彬)
Integrating Principles of Marxist Philosophy into Program Design Teaching
ZHANG Shuangshi
(DepartmentofForceManagement,TheArmedPoliceAcademy,Langfang,HebeiProvince065000,China)
Program design is an important course to cultivate student’s logical thinking and computational thinking. Computer programs, which can express the world outlook and methodology of the Marxist philosophy in its simplest form, have become an important tool to understand and transform the world. This paper intends to discuss the significance, effectiveness and ways of integrating Marxist philosophy principles into program design teaching, so as to enhance the learner’s interest and teaching quality.
program design; principles of Marxist philosophy; integration; the teaching effectiveness
2016-05-04
2015年度武警學院中青年教師科研創(chuàng)新計劃課題“計算思維教學模式研究”(ZQNJS201552)階段性成果
張雙獅(1975— ),男,山西河曲人,講師。
E251.3
A
1008-2077(2017)03-0078-04