在程序设计教学中融入马克思主义哲学原理的策略探讨

2017-01-24 14:02张双狮
中国人民警察大学学报 2017年3期
关键词:程序设计程序马克思主义

张双狮

(武警学院 部队管理系,河北 廊坊 065000)

在程序设计教学中融入马克思主义哲学原理的策略探讨

张双狮

(武警学院 部队管理系,河北 廊坊 065000)

程序设计是培养学生逻辑思维能力和计算思维能力的重要课程,计算机程序用最简单的方式表达了马克思主义哲学的世界观和方法论,已经成为人类认识世界和改造世界的重要工具。阐述在程序设计教学中融入马克思主义哲学原理的重要性、融入方式及效果,以期培养学生学习程序设计的兴趣和提高教学效果。

程序设计;马克思主义哲学原理;融入;教学效果

19世纪中叶产生的马克思主义哲学,是人类认识史上的伟大变革。它以科学的世界观为核心,实现了唯物主义与辩证法的统一、唯物主义自然观和历史观的统一,从而为人们认识世界和改造世界,树立科学的世界观、人生观和价值观,打下扎实的哲学理论基础[1]。20世纪中叶产生的计算机则实现了人脑功能的延伸,在人类认识世界和改造世界中发挥着越来越重要的作用,如果说硬件是计算机的躯体,那么程序则是计算机的“灵魂”,是人类大脑思维的物质反映。由无数科学家和工程师建立起来的程序设计的原理和方法与马克思主义哲学原理(以下简称马哲)不谋而合,处处闪耀着马哲的光芒,丰富了马哲的内容,在实践中证明了马哲的正确性和科学性,是马哲活的灵魂最简洁最集中的体现。因此,程序设计教学客观上要求马哲的融入,二者的有机结合,可以更好地达到学习目的,提高教学效果。

一、缺乏世界观方法论背景的程序设计教学的弊端

长期以来程序设计教学主要强调计算机语言本身,弱化了提高学生认识问题和分析问题的能力,更没有从世界观和方法论角度开展教学。这样导致的结果是:(1)对程序设计的重要性认识不足。不从世界观和方法论出发,只是为了教会学生编程而开展教学,枯燥的语法和“骨感”的逻辑很难调动学生的积极性。学生普遍认为将来的工作参与软件开发的可能性很小,工作中用到的程序直接购买便可。当前能应付考试,拿到学分就够了。实际上学生也不是必须要学会编程语言,而且仅靠一学期几十个学时的学习也不可能熟练使用某种程序设计语言。因此,程序设计的教法和其本身的难度使学生望而生畏,不愿深入学习。(2)程序设计的框架难以建立。重视语言和语法的教学,会让学生置身其中而感到迷茫。最多能完成几个典型算法程序的编写。而对程序的结构及其在电脑中的运行规律却没有一个系统的认识。学过不久,程序设计的概念在学生脑中消失殆尽。(3)程序设计对学生思维能力和认识水平的提高作用难以体现。过分注重程序的编写,把程序设计教学简单地作为一种技能来讲授,会将教学引到一条很狭窄的路上。会让学生知难而退,失去学习的信心,甚至觉得开这个课都是多余的。

程序设计本身就是一门集思维科学、社会科学和自然科学的综合科学,是人脑思维在计算机中的集中体现,同时也是检验认识正确性和科学性的有力工具。程序设计不能脱离所要解决的具体问题、分析问题的方法、解决问题的流程、问题解决过程中可能出现的新问题和困难的监测,以及结果正确性检验等等。因此,程序设计应该是马哲的重要实践课程之一,是马哲在认识实践中的重要体现。教学中如能融入马哲的大背景。则会让学生豁然开朗。通过程序设计引导学生体会作为管理者,如何设计任务,才能使任务更明确、更具体、更容易被下属理解,以及可操作性更强。通过程序设计培养学生的标准意识和规范意识,尽可能地避免指令的随意性。同时,对马哲的理解也不能缺少了程序设计这个认识马哲科学性和完备性的有力工具。

二、融入马哲对程序设计教学的重要性

程序设计本质上关乎科学世界观和方法论的建立问题,远不止一种简单技能的掌握那么简单。在程序设计教学中,教师除了讲授程序语言本身的基础知识外,更应该重视如何用马克思主义的哲学原理去理解程序设计的规律。让学生在温习巩固马哲的基础上理解电脑程序的构成及运行规律,更好地进行人机对话,对电脑的优势和局限性有一个更加清楚的认识。

马哲的本体论指出,物质第一性,意识第二性,意识是对客观物质世界的能动的反映。既指出了意识的局限性,也指出了意识的能动性。而程序设计又是电脑对人类思维客观的反映。这其中既包含了程序设计的局限性,即没有清晰的思维就不会有正确运行的程序,同时也包含着程序设计的独特魅力。这就是马哲指出的,更重要的不是掌握了对世界规律性的认识,而是能够解释世界,拿着这种对规律性的认识去能动地改造世界。其实,不论是认识世界,还是改造世界,人的思维都存在很大的局限性,而程序设计为人类认识和改造世界插上了放飞梦想的翅膀。这是首先要有的对程序设计的基本认识。通过学习程序设计,让学生清楚地认识到电脑的局限性,提高自身思维能力是多么的重要;同时,深刻地明白,程序对我们的帮助越来越大,科学合理地利用程序多么的重要。

马克思主义认为物质是运动的、绝对的,运动是物质的根本属性,静止是相对的。众所周知,计算机是能按照给定程序自动执行数值计算和信息处理的电子装置,而其核心是CPU,靠得是一个能连续产生电脉冲的晶体振荡来推动其运行的。一旦上电,CPU就开始不停地工作,当然,其工作就是在执行程序。这就客观上要求设计一个能不停地周而复始地运行的程序,即一个死循环程序,它的主要任务是启动和结束其他作业程序的执行。即使没有外部操作,死循环程序也一直在运行。对于有操作系统的计算机,其死循环程序就在操作系统中,如Windows系统的死循环程序就是消息循环,用来检测软硬件上发生的事件。有了这个死循环就相当于启动了整个计算机软件的“新陈代谢”,这就是程序的绝对运动,靠这种绝对运动来保证具体作业程序的运行和停止。对于初学程序设计的人费解至极。特别是Windows程序设计,不理解这个运动的绝对性和静止的相对性,就不会很好地理解VB编程中的属性、事件和方法,对于VC编程中的消息传递更是一头雾水。

三、将马哲融入程序设计教学的策略

程序设计和马哲学习相辅相成,对于马哲的理解和认识制约着我们对程序设计的学习和理解。要想学好程序设计,不可能脱离对世界观和方法论的学习。因此,在大学程序设计教学过程中,特别是对非计算机专业的学生,我们要将马克思主义的哲学原理融入程序设计教学中,真正做到在程序设计教学中掌握科学的世界观和方法论,提高认识问题、分析问题和解决问题的能力,在程序设计的具体实践中,深刻领会马哲的科学性。

(一)在整个教学过程中贯穿马克思主义能动的认识论

比如在VB程序设计的教学中,会遇到对象以及对象的属性、事件和方法等概念。就程序设计本身而言,是写给计算机的文章,用机器语言跟机器对话,较为抽象。如果按照教材的安排,开篇就讲面向对象的理论,无疑会让学生感到不知所云,紧接着讲变量、表达式和函数,学生更难理解,渐渐失去了学习兴趣。特别是对于非计算机专业学生,虽然有一定计算机文化基础,但还是会因为背景知识不足而学起来吃力。

马克思主义认为,认识要经历由简单到复杂,由感性到理性,由理性抽象到理性具体的过程。教学设计需要这个理论指导,可将教学过程分成导引、人机界面设计、面向对象原理和语言语法三个阶段循序渐进,逐步深入。

第一阶段,用三个问题将学生引入程序设计的大门:(1)程序设计跟我有什么关系?我了解程序吗?学生每天都在使用程序,对人机界面非常熟悉,教师只需将其适当专业化就拉近了学生与程序的距离。(2)那么多流行的强大语言,我们还学VB,不过时吗?教师将各个行业用VB开发的程序给同学们展示一遍,让同学知道自己玩过的游戏,用过的程序都可以用VB开发,VB并不低级,也不过时。世界上几千种编程语言其逻辑结构都是相同的,只是语法和表达方式不同罢了,用马哲的视角看,都是一样的,学一种便可知几千种,之所以作为教学用语言,是因为它简单而不失强大。(3)我是否可以编写出复杂的程序?在学生的好奇心被调动起来后,接着激发其自己动手编写程序的想法。

第二阶段,自己动手设计程序。人机交互首先要做的就是人机界面的设计。教师要先演示,然后开始画界面,接下来往界面上放元素。元素放上去,是固定的,点上去没反应,这就是静态界面的设计。

第三阶段,面向对象理论。简要介绍什么是对象,以及对象的属性、事件和方法。有了前阶段的学习,理解面向对象理论就有了足够的感性认识,经过这一阶段,程序已经有了,但此时的功能非常简单,基本上是一步一动,学生急切地想让程序实现更加强大的功能。

第四阶段,程序语言和语法。这个阶段,学生进入到程序设计最核心的部分,仍然用日常学习语言的方法,机器语言作为一种语言也由字词句段落组成,也有自己的谋篇布局及逻辑结构。按照这样的认识论一步一步开展教学,学生不会感到累。例子不需多,只需细,每个例子老师都在课堂上亲自操作。按照引入演示、界面设计、对象属性、事件和方法程序编写,错误调试的顺序,每节课最多不超过三个例子,但是每个例子学生都会受到一遍从简单到复杂、从感性到理性的理论熏陶。一学期下来,其编程的素养自然而然就提高了。

(二)在讲解控制结构和分析程序时融入马哲的发展观

马克思主义认为世界是发展的,事物会不断的随时间由简单向复杂、由低级向高级发展,发展是有条件的,道路是不平坦的,不同的条件会有不同的结果。而且,在一定条件下会出现反复,即历史事件的重现,但这不是简单的重复,而是意味着新事物的产生,旧事物的灭亡。这个世界发展规律反映在程序设计中正是程序的三种控制结构,即顺序结构,选择结构和循环结构。到目前为止,这简单的三种控制结构解决了绝大多数问题。用极其简单的控制结构阐述了马哲的发展观。(1)顺序结构,程序从头到尾一步一步地执行,直到结束。(2)选择结构,通过判断来决定程序执行的方向,可以是单分支选择,也可以是两分支选择,还可以是多分支选择。程序执行的条件性,反映了事物发展的条件性,选择结构的嵌套反映了事物发展条件的复杂性,样式简洁,但很完美。(3)循环结构,程序的重复执行,但不是简单的重复,每次的循环主体变量要发生一定变化,然后判断主体变量是否满足循环的条件,如果满足,继续循环,不满足则跳出循环。程序设计中三种控制结构的有机组合逐步描绘出绚丽多彩的物质世界的运动、变化和发展[2]。

(三)在实践课中布置设计题目,体会马哲的精髓——科学实践观

马克思主义哲学的精髓是科学的实践观,这是其区别于一切旧哲学的理论原点,贯穿于马克思主义哲学的各个组成部分。学好程序设计不可能脱离实践,作为程序设计教学重要的环节,实践教学必须跟实际问题紧密地结合起来。这种结合就体现在如何在实践课教学中,适当加入大家熟知的应用程序设计,让同学们去深刻地感受科学实践观的内涵。就是要经历认识→实践→再认识→再实践这样一个不断飞跃不断升华的过程,体会从感性具体→理性抽象→理性具体这样的认识过程。有时候看上去所有的人对问题本身非常熟悉,对程序要实现的功能似乎也非常熟悉,然而要把它的功能用文字详细写下来却并非易事。比如布置这样一个题目:编写一个数字软键盘,可以设计成“软计算器”,也可以设计成“模拟电话拨号器”。要求:(1)用文字写出软件的详细功能说明,设计步骤,实现方法;(2)用文字写出详细的设计流程;(3)按照所写的以上两步骤内容进行程序编码;(4)调试程序完善。

教学实践中,学生经过这种简单的设计,通过反复调试程序,将功能说明由粗疏到细致的完成,对数字软键盘的认识从最初的简单模糊变的完整清晰。学生普遍的收获是:一个想法要转化成可操作的步骤,需要经历认识→实践→再认识多次的反复,否则,给出的操作步骤是不科学的。对自己将来管理中方案、制度、政策等的制定启发很大。

(四)培养学生用马哲原理分析问题的主动意识

马克思主义哲学认为世界是物质的,物质是运动的,运动是有规律的,规律是可以被认识的,而且只要你去认识,总会认识清楚。程序设计的学习本身有其独特的规律性,将社会科学问题、自然科学问题及人类思维问题的求解过程转化为计算机语言的能力和素养靠课堂上短短的几十分钟是远远不够的,可以让同学在课余时间尝试各种不同方面问题的求解。比如,可以引导学生用程序来描述大学物理中的各种运动学问题,从自由落体运动、平抛运动、斜上抛运动这三种运动开始,要想清楚地描述运动,首先必须进一步学习运动方程和牛顿运动定律。因此,通过实践活动能深刻地体会到力是产生运动的原因,所有这三种运动中,物体只受到重力的作用,也就是只在竖直方向上有加速度,水平方向没有加速度,做匀速直线运动。搞清楚运动规律后,把参数方程程序化,用绘图函数就可以画出位移随时间的变化曲线。可以先给学生演示模拟结果,以激发其自己动手的兴趣和欲望,进一步尝试用程序模拟子弹的弹道曲线。比如,一个猎人要拿猎枪打中树上的猴子,在他扣动扳机时猴子从树上跳下,模拟打中猴子的角度和子弹的初速度。有了前边的基础,这个问题就好解决了,这是自由落体运动和斜上抛运动的相交问题,导弹的拦截就是这个道理。然后,引导同学模拟太阳、地球、月亮三者的圆周运动。另外,还可以引导同学用程序设计一个简单的选课管理系统、图片管理器、音乐播放器、文件管理器、电话拨号程序等等。通过大量的鲜活任务的实现,既解决了同学学习生活中的小问题,又极大地激发了他们对程序设计的学习兴趣。

这些生动的编程活动,带给学生的触动,会深深地植入他们心底。他们会逐渐感悟到,编写程序不是程序设计课程最终的目的。因为程序设计过程中大量的时间花在了对问题的认识和求解上,当把解决问题的方法写成具体的可操作的步骤时,对问题的认识从理性的抽象到了理性的具体,程序的实现就水到渠成了。如果在工作中也能把实施方案写成具体的可操作的步骤,就可以尽可能地避免工作中的盲目性。

本文所研究的教学方法,同时分别在成人本科队和普通本科队开展。期末考试中,105人的成人本科队平均分73.15,64人的普通本科队平均分74.47,普通本科队在平均分上与成人本科队相比,没有优势,说明该方法对激发学生学习兴趣有效,能提高教学效果。成人本科队的数学和英语基础都比较弱,但是,对马克思主义哲学原理却理解较深,因而对程序设计的理解并不比普本学生差,他们更愿意把问题的分析和解决写成操作步骤,普本的学生则更喜欢直接上手进行程序实现。

[1] 叶敦平,姚俭建,李毅.马克思主义哲学原理[M].北京:高等教育出版社,2003.

[2] 王卫华,张双狮.程序设计之新解[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年度武警学院中青年教师科研创新计划课题“计算思维教学模式研究”(ZQNJS201552)阶段性成果

张双狮(1975— ),男,山西河曲人,讲师。

E251.3

A

1008-2077(2017)03-0078-04

猜你喜欢
程序设计程序马克思主义
马克思主义的中国化
牢牢坚持马克思主义儿童观
医学专业“Python程序设计”课程教学改革总结与思考
基于Visual Studio Code的C语言程序设计实践教学探索
马克思主义为什么“行”
马克思主义穿起了中国的粗布短袄
从细节入手,谈PLC程序设计技巧
试论我国未决羁押程序的立法完善
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序