吴艳玲
(天津电子信息职业技术学院,天津 300350)
C语言程序设计教学中的程序思维训练初探
吴艳玲
(天津电子信息职业技术学院,天津300350)
《C语言程序》是高职学院电子,计算机,通信等专业必修的一门专业基础课。针对目前很多学生虽然掌握了C语言的语法规则,但在运用C语言的知识编写程序无从下手的问题,提出一种基于思维训练的C语言程序设计教学模式.文中较详细地阐述了基于思维训练的C语言程序设计教学模式的理论教学,实验教学,考核三个环节详细设计,并与传统模式进行比对,进行理论分析得出C语言思维训练为主导的教学方法在教学实践中有其应用价值的结论。
计算思维; 思维训练;传统教学;教育心理学
《C语言程序设计》课程是应用电子专业,计算机专业等多个专业的重要专业基础课之一,一般开设于高职三年的第一年的第一或二学期。通过该课程的学习,学生不仅要掌握C语言程序的语法知识,还需掌握程序化的思维方法,适应计算机解决问题的方式为后续《单片机设计及应用》等课程打下应有的基础。在实际教学过程中,教授C语言的教师普遍反映学生教不会,而学生则反映对于《C语言程序设计》课,可以听得懂,但是自己不会写程序,读程序看似会,但一读就错。 这样使得《C语言程序设计》课程不能达到预期的教学效果。
为此在授课过程中,积极同学生交流,深入了解学生的困惑所在,同时查阅大量的论文资料,从理论联系实际的角度提出以思维训练为主导的教学方法,从学生最终的实验考核效果分析得出以思维训练为主导的教学方法拥有良好的教学效果。
(一)理论讲解
传统的教学模式中,教师一般采用多媒体与板书相结合的教学形式,教学的主体是教师,在一堂课中教师会讲解一个或多个知识点语法点,并对所讲述的知识点语法点配以相应的实例,在实例讲解中,进一步强调相关知识点语法点的使用方式,课堂最后给出与例题相关的习题让学生去练习,进一步强化课上所讲述的知识点语法点,结束整个课堂教学。
(二)实验环节
在实验环节中,传统的C语言教学模式会采用三种方式:第一种方式是给出上机习题让学生自己作答,教师从旁加以辅导;第二种方式是给出例题,在学生充分理解例题的情况下,对所给例题进行修改,实现新的功能。第三种种方法是给出上机题后再将答案给学生,学生只需照答案将程序输入电脑调试通过验证其所实现功能即可。
(三)考核环节
在传统的C语言教学模式中,教师一般将考核分为平时考核与期末考核两部分,平时考核由上机分数,作业分数,出勤情况等几部分组成。期末考核形式主要以笔试为主,配少量的上机考试。此门课通过与否主要看最后的总平均分。
思维训练为主导的教学模式总原则是强调思维训练重于知识点和语法点的学习。每堂课以思维训练为主,在思维训练中加入知识点和语法点的学习。
(一)理论讲解
思维训练为主的教学模式将C语言理论讲解分为两部分,一部分为基础知识,例如变量定义,标识符命名规则,数据类型,数据在计算机中存储的方式等,此部分采用传统的教学方式,即知识点与实例相结合的方式,课下辅以大量习题强化学生记忆,为后续程序设计打下坚实基础。另一部分为程序设计部分此部分采用思维训练为主导的讲解方式。下面详述思维训练为主导的方式的实施步骤。
首先,在上课前,先根据一堂课计划的讲解内容设定一个学生容易理解但在具体实现时精确表达方案有困难的问题。这些问题既可以是程序中经典问题,也可以是生活中学生们所经历的问题,甚至可以是一些笑话中带出的问题。例如:在讲解顺序结构程序时,可以引入这样的例子,把大象装冰箱中分为几步,第一步是把冰箱门打开,第二步是把大象装入冰箱中,第三步把冰箱门关上,告诉学生这就是顺序的逻辑结构,进而引出如把该问题交给计算机处理,计算机需要知道每一步的具体步骤。还例如:在讲解选择结构时,可以给出三个数求最大值的经典问题,这个问题学生都可以理解,但很少有学生可以精确说出此问题的每步做法。其次,在上课时将问题提出,要求学生给出答案,鼓励学生参与讨论,在学生说出一些解决方案后,提出所给出方案计算机实现的困难所在。例如:三个数求最大值的问题,学生会提出可以两两进行比较的解决方案,此方案过于模糊,告知学生计算机无法将此方案实施。再次,引导学生对此问题本身进行深入分析,让学生明白此问题从何入手,比如三个数求最大值问题,要学生明白三个数是如何进入计算机的,在计算机中三个数需要存储空间,在三个数各自有存储空间后才可以进行求最大值的计算,然后要求学生给出求最大值的方案,将两两比较具体化,鼓励学生发散思维,此时对学生所提出的方案不做过分干预,只做方案的搜集。第四,对学生所给出的所有方案进行评价,逐一分析各解决方案在计算机程序中实施的可能性及困难,让学生深入体会计算机思维与人的思维的差别。在此之后引导出正确的程序算法。第五,让学生将此算法用中文语言进行描述,并将具体方法书写在黑板上。第六,带领学生将所书写的算法逐一翻译成C语言语句,在翻译的过程中将C语言相应的语法融入其中讲解,但不做过分强调。在翻译完毕后,鼓励学生进行讨论,让学生明白中文所描述的解决方案与C语言差距何在,进行深入的理解。最后,对此堂课所训练的思维进行总结,例如循环结构的思维关键在于找出重复执行的功能,变化的规律,循环结束的条件,选择结构构的思维规律在于按条件判断,具体问题的条件设定方式等。同给给出与此堂课所训练问题的近似问题进行扩展思维训练。例如:三个数求最大值问题,课下可以给出求四个数最大值的问题,让学生详细描述,同时给出扩展问题求多个数最大值,让学生进一步思考为后续循环思维训练作出铺垫。
(二)实验环节
实验环节分为两个部分,第一个部分让学生将理论课上所讲述的程序输入电脑中,按照程序运行步骤进行运行,如编译环境给出错误提示,要求学生按照提示进行修改,再进一步理解此处语法错误的原因,加深记忆。第二部分,给出与理论课所训练实例近似问题,不急于让学生编写程序而是组织学生对解决此问题的方案进行交流,鼓励他们将自己的想法说出来,并对各种方案进行评价,进一步加强逻辑思维的引导。在方案产生后,再引导学生进行程序编写及调试运行。在此过程中提出问题的难度宜由简入深,逐步引入,以免学生感觉题目难而放弃学习。
(三)考核环节
考核环节分为两部分,一部分为平时成绩另一部分为期末成绩。平时成绩的多少主要取决于学生在课上参与讨论的积极性,课下对课上问题思考的态度,不过分注重所提出答案的正确性,鼓励多样化答案,对照搬照抄别人答案的学生要给与严重的惩罚。期末考核形式由上机和笔试组成,笔试试卷重点考核学生的思维训练情况,不以C语言的语法点和知识点为主导,上机考试重点考核学生C语言语法使用情况及C语言程序调试运行方式。
为了比较上述两种方法的效果,我们随机抽取两个班中的各30名学生,一个班采用传统方法另一个班采用思维训练主导的教学方法。采用传统教学方法班级的人员构成为:总人数为30人其中男生24人女生6人最大年龄20岁最小年龄18岁中位年龄为19岁;采用改进教学方法班级的人员构成为:总人数30人,男生19人女生11人,最大年龄20岁最小年龄18岁中位年龄为19岁。两班级的教学结果比较见表1:
表1 两种方法教学效果比较表
从上表可以看出,第一二两章两种教学方法无显著性差异,从第三章开始两组数据有显显著性差异,尤其在指针,函数,循环控制这三章中显著性差异明显。
为计算机编写程序目的是让计算机帮助人类解决一些计算机擅长解决的问题比如重复而又规律的问题。C语言是能为计算机写程序的高级语言工具之一。C语言没有思想,它的思想是编程者的思维,而用于程序中的思维不是我们普通人的思维方式,是一种适应计算机工作方式的思维,称为计算思维或计算机思维。计算思维是思想,不是人造品。不只是我们生产的软硬件等人造物将以物理形式导出呈现并时时刻刻触及我们的生活,更重要的是计算的概念,这种概念被人们用于问题求解、日常生活管理,以及与他人进行交流和互动。只有拥有了这样的思维方式才可以进行程序的编写和实现,才能很好的理解已有的程序并进行改进实现需要的功能。而传统方式中,教师只是套搬一些经典传统的实例来进行讲解和验证所讲的语法[3]。大部分学生只是认为C语言是一门不得不学的课程,单纯地应付考试。所以并不能理解C语言的实质,更不会真正掌握C语言的编程思维方式。
然而,若要执行以培养学生计算思维为主导的C语言教学方式,需要注意以下几方面。首先思维教学的核心是学习者。也就是说教学的主体是学生而不是老师。教学者要为学习者提供足够的学习空间,设法激励和引导学习者自主学习,发现问题所在进而解决问题。其次,要将思维教学模式融合在教学的各个环节中,符合思维训练与学科教育的统一性即学科知识与思维能力互相促进共同提高。再次,要注意计算思维的特殊性。美国卡内基.梅隆大学计算机系主任周以真指出:计算思维是运用计算机科学的基本概念去求解问题,设计系统,理解人的行为,它包括了涵盖计算机科学之广度的一系列思维活动。周以真教授还指出计算思维是通过约简,嵌入,转化,仿真,分解等方法,把一个看来困难的问题重新解释成一个我们知道怎样解决的问题,同时她还指出计算思维的基本特征是:概念化,不是程序化;根本的,不是刻板的技能;是思想的不是人造物。最后还要注意将教育心理学理论和方法科学地运用于以C语言思维训练为主导的教学方法中。
在以C语言思维训练为主导的教学方法中,充分注意了上述几方面的问题,在教学各个环节均贯穿了思维训练的宗旨,同时充分的应用了学生为主体,教师为主导教学模式。因此从本组实验数据看,在使用了以C语言思维训练为主导的方法后,学生对C语言掌握的实际效果明显好于传统的教学方法,由此,我们可以认为以C语言思维训练为主导的教学方法在教学实践中有其应用价值。
[1]Jeannette M Wing. Computation Thinking[J].Communication of the ACM 2006,(03):33-35.
[2]周以真.计算思维[J].中国计算机学会通讯. 2007,(11):83-85.
[3]刘栓,曹斌.C语言教学改革的创新与实践[J].电脑知识与技术,2014,(21):5049.
[4]Cheng Chuan-peng. A teaching method of C language based on th psychological characteristics of college students[J].Computer Education,2012,(01):68-71.(in Chinnese).
[5]斯腾伯格.思维教学——培养聪明的学习者[M].北京:中国轻工业出版社,2001:127.
[6]朱立平,林志英.基于思维教学理论的程序设计课程教学模式的构建[J].计算机教育,2008,(02):3-9.
Preliminary Research on Program Thinking Training in C Language Program Design Teaching
WU Yan-ling
(TianjinElectronicInformationCollege,Tianjin, 300350)
C Language Program is a professional basic course of electronics, computer, communication and other majors in higher vocational colleges. Currently, although many students have grasped the syntax rules of C language, yet they don’t know how to write a program with C language. Therefore, this paper presents a C language program design teaching mode based on thinking training. This paper expounds the detailed design of three links, including theory teaching, experiment teaching, and assessment of C language program design teaching mode based on thinking training, compares this mode with the traditional modes, and makes a theoretical analysis, to come to a conclusion that the teaching method mainly based on C language thinking training has corresponding application value in the teaching practice.
Computational thinking; thinking training; traditional teaching; educational psychology
2016-05-19
吴艳玲(1973-),女,天津,讲师,工学硕士,研究方向:计算机软件。
G712
A
1673-582X(2016)07-0044-04