体验式和悦趣化学习在“C语言程序设计”教学中的应用

2018-01-20 12:31孙胜娟薛红梅申艳光
教育教学论坛 2018年3期
关键词:C语言程序设计体验式学习程序设计

孙胜娟+薛红梅+申艳光

摘要:程序设计是计算机学科的专业基础课,也是应用性极强的课程。为了调动学生学习的积极性和主动性,将体验式和悦趣化学习应用于“C语言程序设计”课程教学,用进阶式的体验项目将枯燥的语法知识情景化;将项目任务制作成一个个闯关游戏的关卡,使得学习过程悦趣化。实践证明,该模式可以有效提高学生的学习兴趣和解决问题的能力,有助于培养程序设计思维和团队意识。

关键词:程序设计;体验式学习;悦趣化学习

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2018)03-0199-02

一、引言

体验式学习(Experimental Learning)是指以学习者为中心,通过实践与反思相结合来获得知识、技能和态度的学习方式。悦趣化学习(Game-Based Learning)又称为游戏式学习,是强调以学生为中心并融合游戏的创新教学方式,学生以小组协作的方式,通过解决游戏中的问题与挑战来学习知识。体验式学习和悦趣化学习都强调以学习者为中心,突出学生在学习中的主体地位。“C语言程序设计”是大多数学生学习的第一门程序设计类课程,它在整个计算机课程教学中占据非常重要的地位。目前课程内容多是基础语法知识讲授,内容枯燥,与实际应用沾不上边,大大降低了学生学习的积极性。授课方式多为课堂理论讲授,课后上机实验。学生反映理论内容较抽象,并与实践有些脱节。教学中教师进行“填鸭式”教学,学生则缺少主动思维。

二、悦趣化项目体验的“C语言程序设计”教学设计

设计有趣的、开放的由浅及深的体验项目,让学生“做中学”、“快乐学”。

1.教学内容的设计。按照进阶式和悦趣化的指导思想,设计猜数游戏、小学生混合运算电子练习簿、个人通讯录管理三个体验项目。

第一个项目猜数游戏,可分为几个递进的小任务。首先,要学习程序基本结构,把程序框架搭建起来;第二步,要让电脑想数,学生必须学会随机数产生方法以及随机数的存储问题;第三步,要让人来猜,必须掌握输入语句,随后要判断猜的数比想定的数大还是小,必须掌握分支结构;第四步,为了游戏一直进行直到猜中为止,需要加入循环结构。这样四个递进的小任务可以把“C程序基本结构”、“输入与输出”、“变量定义和使用”、“分支结构程序设计”、“循环结构程序设计”几个知识点的教学情景化,使学生有目标,由浅及深地进行学习。猜数游戏程序还可以拓展为模拟猜数的人,涉及一个新的程序设计算法“二分法”,可启发学生自主进行。

第二个项目安排为开发一款实用小软件——小学生混合运算电子练习簿。“猜数游戏”仅涉及两个离散且类型一致的变量,项目二中则涉及多个相互之间有联系的变量,学生通过该项目要学习数据的组织和管理,同样分为几个递进的小任务。首先,完成“出十道加法题,答题,判题”功能,不涉及新的知识点,引导学生逐步独立完成;第二步,完成“出十道加减乘除随机运算题,答题,判题”功能,利用项目一中产生随机数的原理,做适当转换即可,引导学生完成;第三步,要求实现“十道题全部答完,再判定成绩”的功能,涉及至少20个同类型数据的存储问题,引入“数组”的概念,学生必须掌握数组的定义、使用,才能完成;第四步,要求生成判题后的练习簿,并展示出来,记录一道题需要存储5个两种类型变量,引入“结构体”的概念,一个结构体变量存储一道题,十道题使用一个具有10个元素的结构体数组完成十道题的存储。小学生混合运算电子练习簿是一款使用小软件,加入用户需求因素,学生可以在完成任务的基础上从程序可用性方面进行需求创新。

第三个项目个人通讯录管理(数组和指针两个版本)是一个麻雀虽小,五脏俱全的信息系统项目,设计为团队项目。在项目二的基础上加入了系统分析、设计的概念,学生会初次接触软件工程思想,分为几个递进的小任务。首先,分析用户需求,给出简单功能需求文档,指导学生按照软件工程的思想进行需求分析和文档整理;第二步,指导学生按功能需求设计系统结构,进行团队成员任务下发,明确个人目标;第三步,程序框架及接口设计,学生在这一步必须学习函数的定义及调用,理解结构化程序设计的精髓——模块化,并掌握通过函数实现程序模块化的方法,教师指导学生完成框架及接口设计,并进行设计评审;第四步,编写程序,按照个人任务进行,这一步用到数据永久保存,涉及文件的读写操作,为日后数据库的学习打下基础;第五步,项目集成、测试,第三步经过教师评审,模块接口设计规范,集成应该比较顺利,学生主要学习程序集成测试方法。个人通讯录管理是一个数据库系统的雏形,学生可以在用户需求、结构设计、数据存储等各个环节进行拓展创新。设计为团队项目可以让学生学習协作的要素,体会设计的意义。

项目任务循序渐进,符合学生的认知规律;项目真实、开放,便于培养学生的创新意识。

2.教学过程的组织。上述三个项目设计为四个游戏关卡,每一关卡又可以设计为由浅入深的几个任务,每张任务卡给出具体的任务目标、可用的学习资源以及过关需要达到的标准。整个教学过程的组织以通关为目标,完成四个体验项目任务为主线。教学实施时,教师对学生进行分组,每个小组5—6名成员,学生作为主体自主学习,并以团队为单位协作学习,竞赛闯关。

三、体验式和悦趣化学习在课程学习中的价值

体验式和悦趣化学习应用于“C语言程序设计”课程教学中,可以寓教于乐,使学生在闯关游戏中体验项目实施,培养程序设计的思维,解决传统教学中学习兴趣不高、实践环节脱节等问题。

1.激发学习动机,增强学习兴趣。学习动机是学生学习程序设计过程中一个非常重要的因素,很多学生学习积极性较差,却在游戏方面显出较高兴趣。将游戏的特点应用到程序设计基础课程的教学过程中,使学习更加有趣,不失为一个促进学习的好方法。

2.培养编程的思维能力和实践能力。对语言类课程而言,实践能力非常重要。学生如果只看不练,根本达不到学习的目的。然而由于教材内容枯燥,课后习题偏离实际,导致学生学习的积极性不高,如果让学生自己动手编制他们感兴趣的程序,就会大大提高他们的成就感,对编程产生兴趣。

3.提高解决问题的能力和培养创新意识。解决问题是一个复杂的智力过程,包括一系列的能力:理解和描述问题的能力;收集和组织相关资讯的能力;制订和管理行动计划或策略的能力;问题推断和决断能力;使用各种解决问题的工具的能力。游戏往往充满了挑战,需要游戏者千方百计地解决问题。

4.提高协作学习能力。任务卡下发给团队,团队成员共同完成闯关行动。团队成员必须独立完成任务卡规定的个人任务,协作完成团队任务,才能进入下一关挑战。

四、结语

教学实践证明,游戏闯关完成项目,不但用到程序设计的基本语法,还涉及软件工程、数据结构、数据存储等知识,培养了学生的程序设计思维,有助于提高学生分析问题、解决问题的能力。

参考文献:

[1]李兆翠,许红云.计算机语言类课程教学方法研究[J].科技信息,2013,(7).

[2]赵志梅,张帆.计算机语言类课程教学中的问题与对策[J].河南教育学院学报(自然科学版),2012,(3).

[3]吴沧海,熊焕亮,王映龙,王丹.农业院校软件工程专业语言实践类课程教学改革探索与实践[J].教育教学论坛,2013,(7).

[4]冀津,王冠宇.悦趣化学习在面向对象程序设计教学中的应用研究[J].计算机教育,2013,(9).endprint

猜你喜欢
C语言程序设计体验式学习程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
心理拓展训练与相关概念关系辨析
对初中英语教学中体验式学习应用的几点探讨
体验式学习在小学数学教学中的应用
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用