任务驱动法在循环结构设计教学中的应用*

2017-10-19 05:47文思群
计算机时代 2017年10期
关键词:结构设计驱动环节

林 玲,文思群

(电子科技大学,四川 成都 610051)

任务驱动法在循环结构设计教学中的应用*

林 玲,文思群

(电子科技大学,四川 成都 610051)

针对程序设计类课程中的典型难点循环结构设计,提出了运用任务驱动法提升教学效果的观点,论述了其必要性和可行性,设计了该课程任务驱动式教学的教学过程,并为满足任务驱动式教学的需要对循环结构设计课程的教学内容按照难度进行分解,给出了教学实践过程中应注意的一些问题,指出将任务驱动法推广运用到程序设计类课程全过程的可行性,以及可能会遇到的困难和问题,并给出了解决这些困难和问题的方法和思路。

高等职业教育;程序设计类课程;循环结构设计;任务驱动法

0 引言

对于计算机程序设计语言中的大部分高级语言而言,循环结构设计、函数、指针是三大学习的难点。一般情况下,高职学生在学习编程语言时,循环结构设计是三大学习难点中第一个遇到的难点。要完成编程语言的学习,循环结构设计是必须要攻克的第一道难关,也是学生初步形成编程思想的真正起点,是不可以通过教学内容取舍或精简来跨过这个难点的。由于高职层次学生普遍数学、英语基础较弱,因此在高职课堂上,很多教师感觉循环结构难讲难教,学生感觉难学难应用[1]。采取什么样的教学方法才能让学生更好地理解和使用循环结构,是担任高职编程语言教学的老师面临的一个重要问题。笔者从事多年的高职层次程序设计类课程教学,讲授过C、C++、C#、JAVA等多种高级语言,近年来在讲授循环结构设计课程的时候,采用任务驱动法降低了该难点的学习坡度,取得了满意的效果。

1 教学方法的选择

首先要明确的是,由于循环结构设计是所有高级语言的基础性内容,在编程实践中是使用频率非常高的一个知识点,因此不能通过教学内容改革来跨过循环结构设计这个难点。既然循环结构设计作为一个难点,师生不能绕过它,那么在进行教学设计时,就只能从降低坡度”方面来考虑。从降低循环结构设计坡度的角度来考虑,最适合采取的教学方法就是任务驱动法。

所谓任务驱动教学法,是指教师在教学过程中,根据教学要求将课程内容融合到若干个具有实用性、趣味性且难度适度的任务,整个教学过程以完成一个个具体的任务为目的,教师通过激发学生探索问题来调动和维持其学习的积极性,学生通过完成任务来深刻理解教学内容,培养分析问题和解决问题的能力。多个任务之间应体现出知识点的递进关系,以降低达成难度。

由于程序设计类课程普遍具有较强的动手操作性,且循环结构设计这个知识点包含了多个小知识点,因此循环结构设计天然具备实施任务驱动法的所有条件。

2 循环结构设计难度分层

在将任务驱动法运用到循环结构设计课堂之前,首先要对循环结构设计课程内容按照难度进行分层,从低层入手,逐步递进。

高级语言程序中普遍包含循环结构,如C、C++、C#、JAVA语言中均包含有for循环、while循环,C#中还有foreach循环,甚至在C、C++语言中还可以用goto来构造循环。无论哪种循环语句,其学习难度与其语法其实并无关系,循环结构设计的难度主要体现在起始条件、终止条件的设定上。按照起始条件、终止条件设定难度将循环结构设计课程内容分解为四个难度层次。

⑴ 简单的循环:循环的起始、终止条件是循环执行前就已经明确了的。例如在屏幕上连续输出10个“hello world!”。该循环的次数是10次,循环执行前即确定且中途不会发生变化。

⑵ 复杂的循环:循环的终止条件在循环执行时才能确定。例如输入2个数,输出它们的最大值,要求程序能多次执行。每次计算完后,要求输入'Y'或'N'来决定是否继续。该循环的终止条件在执行前是无法确定的,需要在每一轮循环时进行实时的判定。

⑶ 简单的循环嵌套:多个循环嵌套执行时,每一层循环的起始、终止条件都是循环执行前已明确。例如在屏幕上输出10行10列的星号。该程序通常分为内外两层循环,内层循环负责在某一行输出10个星号,外层循环负责输出10行,内外层均执行10次。

⑷ 复杂的循环嵌套:多个循环嵌套执行时,某一层或多层的起始、终止条件在执行时才能明确。例如将int data[3][3]的值设置为如下矩阵:

该程序用C语言实现的核心代码如下:

代码中的内层循环的终止条件是“j<=i”,这就使内层循环的终止条件与外层循环的计数器i相关,内层循环的执行次数取决于外层循环计数器的值。

3 教学过程设计

3.1 课堂教学模式

任务驱动法运用到程序设计类课程中时,课堂环节主要包括演示、模仿、独立操作、总结四个部分。

在演示环节,课堂行为的主体是教师,其主要工作是给出任务、完成任务。给出的任务应尽量设计得有趣[2],例如“在显示器上输出一个星号,并按动方向键使得星号可以在显示器上自由移动”,这样的任务将有效吸引学生的注意力。完成任务时,应同时讲解循环结构设计的语法知识,并阐述自己解决问题的思路。学生的主要任务是观察教师完成任务的过程,理解教师讲授的知识和思路。

在模仿环节,课堂行为的主体是学生,其主要任务是根据对教师完成任务演示过程的理解,模仿教师的操作过程,对同一任务进行操作。教师则负责对学生的疑问进行解答,对某些知识点和操作进行补充,对学生的操作过程进行引导和指导。

在独立操作环节,由教师布置类似的任务给学生,由学生独立完成。该环节教师的主要工作是考核学生的任务完成成果。

在总结环节,由教师根据学生们在独立操作环节暴露出来的问题进行统一的讲解,对本堂课的重点知识进行最后的总结和强调。

3.2 任务设计

虽然已经将循环结构设计课程内容分解为四个层次,逐步实施,但是根据经验,对于每一层次中的内容,高职学生在学习过程中仍然会感到比较困难,因此在教学过程中,每一个层次在进行教学任务设计和使用这些教学任务的时候,仍然要体现降低坡度,逐步递进的思路。例如笔者在“简单的循环”一课中,设计课堂环节如表1。

表1 “简单的循环”课堂环节设计

一共八个教学任务,难度逐步递进。其中任务一、二构成第一个演示、模仿、独立完成、小结的任务驱动法过程;任务三、四构成第二个任务驱动法过程;任务五、六构成第三个任务驱动法过程。此后,学生对简单的循环涉及到的语法和循环构造思路已经有了基本的了解,接下来的任务七、八直接进入独立完成环节,最后对整堂课进行总结。整堂课的前半堂课以演示和模仿作为重点,后半堂课以独立完成任务和总结作为重点,构成一个大的任务驱动法过程。“复杂的循环”、“简单的循环嵌套”、“复杂的循环嵌套”这三个层次的教学任务设计原理与之相同,在此不再赘述。

4 教学实践中的经验

4.1 灵活把握教学环节的进度与取舍

高职学生不同的班级之间平均学习基础和进度会有较大差异,因此不能用同一套课堂环节设计去应对所有的班级。在学生总体学习进度比较慢的时候,可以增加几组任务用于执行“演示、模仿、独立完成、小结”的过程。直到学生们确实对相关的知识点能够完全理解和掌握后再执行直接进入独立完成环节的任务。

4.2 模仿并非抄袭

“模仿”环节最容易出现的问题是学生只是在单纯的抄袭教师的演示过程,虽然能够完成任务,但是对教师讲解的知识点、操作的思路并未完全理解。因此教师在演示环节就要注意制止学生记录教师的操作过程,让学生把注意力放在对教师操作的观察、对教师思路的理解上来。在模仿环节教师不能被动地等待学生寻求帮助,而应巡视学生的操作过程,并对学生提出“你为什么这样做?”、“能不能换一种做法?”这样的问题。同时鼓励学生基于对知识点的理解,采用与教师不同的操作方法完成任务。

4.3 演示环节的理论讲解要适度

习惯传统演示讲授教学法的教师,最容易出现的问题是:在演示环节做过多的理论讲解。目前程序设计类课程教材普遍存在内容理论性太强且各项计算机知识点琐碎的问题[3],讲解起来时间花费太长,迟迟不能进入以学生为主体的其他环节,挤占了学生动手操作的时间。任务驱动教学法要求以学生为主体,前置的教师演示、讲解时间应该是比较短暂的,除了最基本和必要的知识外,其他很多的知识是放在小结和总结的时候才会由教师提出。例如循环体如果只有1行代码,那么循环体可以不使用大括号这样的非关键知识点,完全可以放在小结和总结里去讲解。

4.4 使用拓展任务分层教学

操作性强的课程中,在攻克一个难度很高的知识点时,任务驱动法可以搭建一个坡度相对平缓的阶梯,让学生逐步积累知识和操作经验,最终克服难点。但是与同样强调学生主体地位的项目式教学法相比,在执行任务驱动教学法的课堂上,基础和积极性更高的学生发挥的空间会少一些,在学生基础差异较大的课堂上,这个问题会更明显。笔者解决这个问题的办法是在演示、模仿、独立完成、总结的过程中,增加一个“拓展”环节。为基础和积极性更高的学生额外准备一些拓展任务,这些拓展任务可以与下一堂课的内容相关,也可以是本堂课内容的进一步延伸。当有学生在独立完成环节展现出突出的能力和进度时,将这些拓展任务安排给这些学生,并指导其完成,这样既体现了分层教学因材施教的理念,又能提升基础好和积极性高的学生的学习热情和积极性。

5 结束语

程序设计类课程的三大难点中,循环结构设计是学生遇到的第一个难点,克服这个难点有利于学生树立自信以顺利完成此后的学习。从笔者实践的效果来看,任务驱动法是克服这个难点的一个有效选择,并且在程序设计类课程的学习全过程中运用任务驱动法也取得了较好的效果。

但是在程序设计类课程中如果只采用任务驱动法一种教学方法也有局限性。例如每个知识点都从演示和模仿环节开始进行学习,有可能对学生的学习兴趣和学生积极性激发的不充分。另外在设计教学任务的时候通常会精确聚焦某堂课需要攻克的难点和重点,这样可能会导致切断本堂课知识点与其他知识点之间的联系,甚至导致与实践脱节,不利于培养实践技能。为了解决这些问题,我们可以尝试在任务驱动法的基础上引入其他的教学方法。例如在演示和模仿环节引入探究教学法可以进一步激发学生学习的兴趣和学习的积极性,促使学生积极主动、自主地进行学习的建构[4];在程序设计类课程中同时引入项目式教学法和任务驱动法,实行“项目导入、任务驱动”的方式来实施教学可以有效提高学生的专业素质和实践技能[5]。

总的来说,任务驱动法运用在循环结构设计课程乃至程序设计类课程全过程均可以收到较好的效果,但是在运用的过程中,基于不同的学生情况、在不同的教学阶段,我们肯定还会发现许多的其他问题,这些问题需要我们进一步的研究和解决。

[1]张传学.高职C语言课程中循环结构的教学设计探讨[J].武汉职业技术学院学报,2013.12:50

[2]叶晓舟.计算机语言类课程中任务驱动教学模式研究[J].软件导刊·教育技术,2017.6:33

[3]郑明伟.解析任务驱动法在高职计算机教学中的运用[J].互联网+应用,2017.5:110

[4]包萍,武莉莉.探究式教学法在高校计算机课程中的应用研究[J].宁夏师范学院学报(自然学科),2014.6:104

[5]祁建宏,安容瑾.“项目导入、任务驱动”教学法在C语言程序设计语言教学中的应用研究[J].考试周刊,2011.30:152

Application of task-driven method in teaching of cyclic structure design

Lin Ling,Wen Siqun
(University of Electronic Science and Technology of China,Chengdu,Sichuan 611731,China)

Aiming at the typical difficulties of programming courses,the cycle structure design,the task-driven method is proposed to promote the teaching effect.The necessity and feasibility of the proposed method are discussed and the teaching process with task-driven method is designed.The teaching content of the cyclic structure design course is decomposed according to the difficulties,and some problems which should be paid attention to in the teaching practice are given.Finally,the feasibility of applying the task-driven method to the whole process of programming course teaching as well as the problems and difficulties that may encounter in the teaching is pointed out,and the solution to the problems and difficulties is given.

higher vocational education;programming courses;cycle structure design;task-driven method

G712

A

1006-8228(2017)10-76-04

2017-08-22

2016年电子科技大学教学改革重点项目“以效果为导向的电子信息类职业技能培训质量评价研究”(2016XJYZD020)

林玲(1980-),女,湖南湘潭人,硕士研究生,工程师,主要研究方向:计算机应用技术,职业教育学。

10.16644/j.cnki.cn33-1094/tp.2017.10.023

猜你喜欢
结构设计驱动环节
基于模糊PI控制的驱动防滑仿真系统分析
必要的环节要写清
屈宏斌:未来五年,双轮驱动,砥砺前行
轨旁ATC系统门控柜接收/驱动板改造
在农民需求迫切的环节上『深耕』
基于S3C6410的Wi-Fi驱动移植实现
BIM结构设计应用
某排水虹吸井结构设计
现代学徒制管理模式及其顶岗实习环节
论评标环节的优化与改进