“做中教,做中学”在程序设计教学中的应用

2017-07-11 07:13向程冠熊伟程左羽熊世桓
电脑知识与技术 2017年15期
关键词:计算思维计算机专业程序设计

向程冠 熊伟程 左羽 熊世桓

摘要:程序设计课程是计算机专业的核心“饭碗”课程之一,在程序设计课程教学中,传统的教学中教师只教不做,学生只学不做,而忽略了程序设计就是“做”任务的过程,导致教师教得吃力,学生缺乏学习动力,学生在课堂上看教师编写代码容易,但自己动手时不知从何入手,一写就错,对程序设计心生恐惧。课题组经过教学改革,采用“做中教,做中学”的程序设计教学方法,并贯穿于整个教学过程,教师在“做”任务中传授程序设计经验,学生在实践动手中形成计算思维能力,提高程序设计能力,取得了良好的教学效果。

关键词:程序设计;计算思维;教学改革;计算机专业

1概述

在计算机类专业中,各类高校从大一开始需开设程序设计类课程,程序设计课程的目标是培养学生具有解决问题的计算思维能力、算法设计能力、代码编写能力和算法测试分析能力。如C语言、JAVA语言等,如果给计算机类专业寻找一两门饭碗课程的话,程序设计类课程就是不可缺少的一门“饭碗”课程,然而目前国内高校,尤其是新建本科院校,在程序设计课程中的教学经验远不及国外高校,国内西部地区高校不如发达地区高校。教育部高等学校计算机科学与技术教学指导委员会明确指出:“高等学校计算机类相关课程在满足社会需要方面的针对性不够强,课程内容和课程模式必须进行大力度的改革”,各高校也在不断积极推进教学改革,以寻求培养学生计算机思维形成的最佳途径。目前大多高校教师在进行程序设计课程教学时,普遍存在以下不足:

1)程序设计教学中,老师在教学过程中照本宣科,上课主要靠PPT,代码直接复制到PPT上,只播放、解说给学生看,教学过程以“教师为中心”。反观国内的程序设计培训机构,教师在课堂上展示代码编写过程,故学生在大学里学不会的程序设计,在培训机构很快就学会了。

2)教师在实验课上给学生演示代码前,必定多次演练直到没有问题,再通过记忆在课上敲一遍没有问题的代码给学生看,导致学生看教师编写简单流畅,基本没有错误,即使有错误也是先设定的,而学生自己动手时,要么不知道如何人手,要么自己一写就错,久而久之对程序设计彻底失望。

3)在演示代码的过程中,按部就班地照教材上例题提供的代码编写,却不知对于每个程序,不同的人有不同的设计方法,教师也有自己的设计方法。

也有教師要求学生照教材上源程序多多练习,以任务型教学模式强调“以学生为中心”,但忽略了教师程序设计经验的传授过程。教师与学生一起照着教材敲代码,没有体现教师的程序设计经验传授过程,离开教材啥也不会。

上述问题的主要症结集中在“只教不做,只学不做”上,程序设计就是要会“做东西”,教师教而不做,学生学而不做是不行的。因此,课题组教学团队在程序设计课程教改中,采用“做中教,做中学”的教学方法,将二者有机结合,“做中教”就是教的过程围绕“做”任务展开,“做中学”是把知识的获得与“做”任务联系起来,自实施以来,取得了良好的教学效果。

2“做中教,做中学”的程序设计教学方法

本科计算机专业的培养,应达到扎实的课程理论基础,有过硬的实战动手能力,程序设计的学习过程就是一个不断解决问题的过程,通过以上的启发,程序设计过程是通过程序解决一个任务的过程,或者称为一个工程的开发过程,归根到底就是一个“做中教,做中学”的过程。

1)课前设计任务

传统教学模式下,教师在课前备课,会把整个教学过程备一遍,包括反复演练代码等过程,教学中只是固定地按照先前设计好的模式进行,而忽略了程序设计的本质特征,即现场展示设计过程,这个过程中应完全体现从无到有的设计过程。在“做中教,做中学”的模式下,教师课前要做的工作只需设计任务,设计出的任务要根据教学目标、教学大纲的要求选取难易程度适中、代表性高的任务作为“做中教”的载体,也就是教师将在课堂上完成的任务,再设计出难、中、易三个层次的“做中学”任务,便于分发到层次不同的学生完成,做到因材施教。在任务设计时需把握好任务的好坏,难度因素,不必设计任务的解决过程,也就是“做中教”的任务要求教师在课堂上完成的(即兴完成)。

2)任务需求分析

在教学中,教师根据设计的任务,现场做需求分析,完整体现教师解决问题过程,充分展示任务完成的整个生命周期。需求分析是对任务的详细解读,无论问题规模大小,读懂用户需求是至关重要的,关系到任务完成目标的界定,因此,教师在课堂上“做任务”的过程中,将教会学生如何理解用户需求,如何从文档中提取出正确的用户需求,这也是工程能力的直接经验传递。

3)数据结构的分析

程序无论大小,都是对数据的处理过程,都需要对数据结构进行分析,该采用什么数据结构,如对一组数的排序,就会考虑使用什么数组,如对一个班的学生成绩排序就可使用对象数组。在这个过程中,教师“做”任务,学生学会分析该采用什么数据结构,此时教师现场“做”项目,其整个思考、分析、动手过程完全在学生的眼前完成,学生学会的不仅是知识,还学会老师解决问题的经验。

4)算法分析

数据结构一旦确定后,接下来要完成的工作是对这种数据结构的处理,即找到一种合适的算法来操作选取的数据结构,在传统的教学中,这个过程教师在备课时就完成了,可能备课时选择了几种算法,最终给学生的只是一个结果。在程序设计中,算法的这个选择、分析过程瀹恰是要教给学生的,也就是教师在“做”任务过程中怎样针对数据结构选择算法,这给学生展示“做”任务的过程,而在学生自己“做”的过程中,将会用这种思维选择、分析、设计算法,不断地尝试,最终设计出一个最合适的算法。

5)编码实现

程序设计不是停留在设计上、思维上,而是进一步把算法思维通过计算机语言实现出来。在传统的教学中,教师为了能顺利在规定的时间内完成教学,会先在课前反复编码演练需要讲解的算法,另一方面也担心在课堂上出现编码错误,自己也会掉“面子”,故不敢给学生展示代码的编写过程。但在“做中教,做中学”的过程中,老师需要临场完成算法编码实现,中途出现的问题需要不断想法解决,这个解决问题的过程恰好是应该教给学生的。因为这个过程就是“教学亮点”,将教会学生解决问题的能力,学生在编码实现过程中出现此类的问题时,也会用到教师解决问题的方法。传统教学中教师上课前先演练编码,课堂上的实现过程只是教师背代码的过程,没有实际意义。课题研究小组在教学中就发现,同一个任务,在第一个班级演示代码时效果很好,但在第二个班级演示同样任务时就会受到“背代码”的影响,编码过程非常顺利,相反教学效果不好。因此,对于“一师一课多班”的情况,应针对不同的班级设置不同的任务进行教学,备课时不需先编码,在课堂上给学生展示编码过程,在“做中教”,教给学生实战经验。

6)场景调用与评价

算法实现结果应放在一定的应用场景中,才有利于检验完成的效果,教师应给学生展示其调用过程,并根据任务设定时提出的评价指标进行评价,也就是教师自己要对自己做出的过程给出评价。

7)领进门,督修行

教师在“做”任务中完成教授经验的过程后,让学生自己先完成教师做的任务,再完成教师指定的任务,在“做”任务的过程中学会知识与能力,即“做中学”。并督促学生完成,实时检查,在“做”任务的过程中构造计算思维能力、算法设计能力、编码实现能力与算法分析能力。

3结束语

在应用型人才培养的过程中,要求培养的人才应有扎实的理论基础知识和卓越的动手实践能力,通过“做中教”可让学生直接窥视教师“做”任务的完整过程,在“做中学”的过程中锻造自己解决问题的能力,并构建自己的计算思维能力,提高算法实现能力。

猜你喜欢
计算思维计算机专业程序设计
“以赛促学,以赛促教”促进计算机专业教学理念创新与实践研究
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
程序设计课程中计算思维和应用能力培养问题研究
职业高中计算机专业教学改革浅析
PLC梯形图程序设计技巧及应用
非计算机专业C语言教学探讨
新形势下技校计算机专业人才培养探讨