趣味化项目法在“C语言程序设计”中运用成效
2022-12-08江苏省陶都中等专业学校蒋紫燕
江苏省陶都中等专业学校 蒋紫燕
“C语言程序设计”是中职学校电子信息类、计算机类、通信类专业的一门基础课程,侧重于培养学生的计算思维和利用计算机处理问题的能力。利用项目教学法进行授课是一种非常普遍的方式。由于课程本身偏数理性、逻辑性的特点,中职学校所订购的项目化教材过于成熟性、工具性,学生正处于青春期,常规项目不能引起学生注意,因此,本文探讨通过“小游戏”项目寓教于乐,帮助学生培养良好的学习习惯,激发学生学习兴趣,调动学生的积极性和主动性,提高课堂教学效率。
一、“C语言程序设计”如何激发学生兴趣
在周期一年的“C语言程序设计”课程教学实践中,上半年发现,教师采用传统的教学模式时,学生反响平平,普遍认为本课程难学、内容高深、难以理解、偏数理化,容易产生畏学、厌学的情绪。这样不仅影响本课程的教学成效,学生也会带着畏难情绪步入后续课程的学习,从而影响整个人才培养方案的实施。环环相扣,层层递进,本课程作为专业课程的入门砖,若学生逻辑性思维、拆分问题的方法和能力未能得到培养,后续课程将效果大大减少。通过和专家的探讨,一致认为产生这种现象的原因大致有三种。第一,C语言语法规则多而细,理论性深,知识点杂而多、抽象,对学生的学习基础要求较高,学生理解起来较为困难。在实际编写代码过程中又十分灵活,初学者会感到有难度,无法很好地运用编译软件。第二,学生的数学和英语基础较薄弱,没有培养出较好的学习习惯,学习兴致不高。第三,采用的是传统的课堂教学模式:教师在讲台上讲解,学生在讲台下被动接听,这是一种“满堂灌”且以教师为中心的教学模式,往往会忽略掉学生的主观能动性。因此,即使教师很认真的备课、上课,但教学成果很不理想,学生抵触情况时有发生,更有甚者会把本课程认为是一门“数学课”。
因此,笔者下半年尝试采用项目教学法与上机实操相结合,通过若干个项目将教学内容融入编写代码的过程中,以小组教学为主,班级教学为辅,根据学生的学习现状动态调整相应的项目内容。根据知识点将“C语言程序设计”课程分为基础知识、程序控制结构、数组、指针、文件这五大模块,针对不同模块的知识点,设计相应的项目。常用的小型程序设计项目如表1所示。
表1 常用小型程序设计
经过半个学期的实践,在机房采用项目教学法后,师生互动明显增加,学生提问频率提升。比起使用传统教学模式,学生更愿意接受这种教学方法,教学成效有所提升。
但生本主义告诉我们应该最大限度地鼓励学生进行自主学习,包括自主发现问题,在团结合作中寻找解决方法,充分体现学生的主体地位,引导学生自立,自我学习与管理。同时,这个阶段的学生正处于青春期,学习欠主动,“好斗”,爱玩游戏,采用传统的项目教学方式无法培养学生的自主性,让每一位学生都能完成项目,理解知识点,养成计算机的思维。
因此,设计一个更适合学校学情,更能引起学生兴趣和自学能力的项目至关重要。
二、小游戏项目在“C语言程序设计”教学中意义
(一)小游戏特征
顾名思义,小游戏指一些体积较小、可执行程序的容量在100兆以内,游戏规则简单,生命周期较短,无安装,耐玩性强,无依赖性,操作方便,绿色的游戏娱乐项目。
在项目教学法实施过程中设计的小游戏项目,因其项目程序功能需求量较少,项目开发周期不超过2周,便于学生保持良好的专注度,可以满足中职学生C语言学习内容的要求,和教学目标相匹配。项目整体偏益智类和广泛性,学生对项目游戏规则十分熟悉,便于教师引导学生分析项目的执行过程、组成环节。小游戏项目无须安装,无年龄层次之分,因此学生在完成项目后可将项目分享给身边的人,一来能展示学习成果,二来能提高学生的自信心和成就感,无须追求华美的画面感和游戏竞技精神,因此游戏所占内存较少,对硬件配置要求不高,加载时间短,节省时间和资源,通过鼠标和键盘来控制游戏的进程,常用的实训机房就能满足要求。根据学生敏感度以团队协作的方式共同完成小游戏项目,不仅帮助学生找到“同类”,还能增加友谊,增进组员之间的默契度。
(二)小游戏项目
笔者运用C语言的语法知识带领学生从头开始开发小游戏,通过小游戏项目逐步将知识点串联起来,在实际编程中激发学生的兴趣。每次开课前,教师都会将基础语法知识准备好,便于学生预习和巩固。提供多个步骤的代码及对应的要求,以弹跳小球为例:在学习完常量、变量、运算符、表达式、printf、scanf输入输出函数,分支结构、循环结构知识后,简单的弹跳小球讲解步骤核心代码如下。
●在控制台(5,10)中绘制一个圆:
int i,j;
int x = 5;//X 轴坐标
int y = 10;//Y 轴坐标
for(i=0;i<x;i++)
// 输出小球上面的空行
printf(" ");
for (j=0;j<y;j++)
//输出小球左边的空格
printf(" ");
printf("o");//输出小球 o
●使小球下落:
//利用循环结构将小球从(1,10)下移到(9,10)
for (x=1;x<10;x++)
{system("cls"); // 清屏函数
for(i=0;i<x;i++)
printf(" ");
for (j=0;j<y;j++)
printf(" ");
printf("o"); }
●利用加速度弹跳
while (1)
{ //起点加上移动速度等于终点
x=x+velocity;
if (x==hight)//如果小球到达底部
velocity = -velocity;
if (x==0)//如果小球碰到达头部
velocity = -velocity;}
●斜着跳
while (1)
{ //小球碰到上下边界时
if ((x==top)| |(x==bottom))
velocity_x = -velocity_x;
//小球碰到左右边界时
if ((y==left)| |(y==right))
velocity_y = -velocity_y;}
在拓展相关EasyX 图形交互功能的知识后,可以对弹跳小球进行界面设计,相关的代码如下。
# include<graphics.h>
initgraph(w idth,height);//设置控制台面积,宽度800,高度600
cleardevice();//清屏
fillcircle(x,y,radius);//画小球
Sleep(100);//暂停 100 毫秒
常用的小游戏项目如表2所示。
表2 常用的小游戏项目
三、运用趣味化项目教学法的策略
(一)设计项目要符合教学实际
结合学校的实训材料,确定不应设计触屏式、纯文本类、静态、3D的小游戏项目。在教学过程中,需要教师通过编写代码将语法知识融会贯通,因此大部分教师都是利用机房进行教学。所以在设计项目时,教师要充分考虑到机房的硬件、软件配置问题,普通的机房只能满足最基本的实训教学要求,专业性不强,项目主要以黑白界面为主、键盘鼠标作为控件、单机,二维的小游戏项目。要让项目“落地”,真正贴近教学实际,需要因地制宜,选择最恰当的项目。
(二)设计项目要符合学生认知规律
在设计项目时,应该把学生的现有基础水平、认知能力的差异、兴趣爱好、年龄特征等纳入考虑因素范围内。教师要始终站在学生的角度,根据学生的实际水平设计每一个小游戏项目,项目所涉及的知识不能超过教学大纲的范围,最好能与后续课程产生关联。项目应先易后难,层层递进,到后期,偏难的项目可以先将超出大纲的代码及知识点都准备好,并配好相应的教学视频,让学生自主选择是否扩展,引导学生参与整个编写代码的过程,增强学生的成就感。
(三)设计项目具有可视化
据研究,人的大脑通过视觉接收外部信息的比例最高达83%。所以,教师在设计项目时,应该尽可能地设计一些具有动态性、界面丰富、效果欢快、可视化的项目。学生对纯理论性的语法知识无感、没有充分的想象力,难以理解编写规则和逻辑思维,而通过小游戏项目将理论知识的底层逻辑、语法、语义完美地展示出来,实现了所见即所得。教师可以利用输入输出库函数实现相关操作,也可以采用EasyXGraphics Library这个绘图库,作为扩展知识。如果再结合一些音乐,效果会更佳。利用多媒体技术创造良好的教学环境,引导学生走上自学的道路。
四、结语
相比传统教学模式,采用项目教学法一定要注重项目的设计,在教学活动中需要采纳具有趣味性、贴近学生实际的项目,才能促进学生学习效果的提升。趣味性的项目不仅能让学生完成学习,而且能帮助学生找到真正热爱的事情,让他们带着兴趣学习,快乐成长,收获也会颇多。小游戏项目普遍受学生的喜欢,将其运用于教学中能取得良好的效果。