C语言程序设计教学与实践

时间:2022-06-06 14:50:12

C语言程序设计教学与实践

摘要:本文针对高职高专院校学生来源和基础不同、学生学习兴趣不浓厚以及教师在教学过程中存在的问题采用了任务驱动式教学方法对“C语言程序设计”进行教学实践,通过该方法不仅可以有效地激发学生的学习兴趣,同时还能增强教师对学生实践能力培养的重视程度,进而提升教学效果。

关键词:C语言程序设计;任务驱动;教学实践

一、概述

随着互联网技术的发展以及广泛应用,计算机已经渗透到各个领域和行业,成为人们学习和生活最重要的组成部分,而运用计算机编程语言处理现实生活中的各种问题已成为每位大学生所必备的基本能力。因此,“C语言程序设计”课程作为现代高职高专院校计算机类各专业和电子信息类各专业所开设的一门必修课程。但是学生基础较薄弱、学习兴趣不深厚是高职高专院校的学生存在的主要问题,因此,采用任务驱动教学法提升学生的学习兴趣,增强学生的实践能力是十分必要的。任务驱动教学法通常是应用于技术性较强的学科类型中,通过为学生提供体验实践情境和感悟问题的情境,引导学生围绕任务开展学习,并以任务的完成结果作为学习成效评价依据,实现学习过程问题分析的教学方法[1]。任务驱动教学法以建构主义理论为基础,教师通过创设尽可能真实的学习情境,引导学生带着“真实”的任务进入学习情境,使学习更加直观和形象,从而有效地激发学生产生联想和解决问题的欲望,激发学生的学习兴趣,使学生处于积极的状态[2]。

二、“C语言程序设计”课程现状

(一)课程地位

“C语言程序设计”课程是现代高职高专院校计算机类各专业和电子信息类各专业所开设的一门必修课程,旨在提升高职高专学生的知识素养以及运用计算机进行逻辑思维的能力并掌握通过C语言编程来解决生活和工作中的实际问题,从而为学生就业打下坚实的基础。以我院计算机系统维护专业为例,该课程为本专业的一门核心课程,在大一下学期开设,总学时为72学时。该课程在计算机系统维护专业培养方案和授课计划中起到承上启下的过渡作用,前导课程主要有“计算机导论”,后续课程主要包括“Java程序设计”“动态网站建设”等。

(二)课程目标

通过本课程的学习,使学生达到理解面向过程的编程思想,掌握计算机程序的顺序结构、选择结构、循环结构三大基本结构,掌握数组和函数以及指针的使用方法和基本操作等知识目标;达到掌握C语言的基本语法,会运行和调试及维护C语言程序以及通过使用C语言编写相应的程序来处理实际问题等的能力目标;达到通过小组协作培养学生的团队精神,通过任务驱动教学法提升学生的学习兴趣和愿望的素质目标。

(三)教材分析

以我院计算机专业为例,“C语言程序设计”课程采用的教材为人民邮电出版社出版的《C语言程序设计任务驱动式教程》,主编为宋铁桥、刘洁、赵叶。全书以任务驱动的方式讲解了C语言的基础知识和编程方法,共分为10个单元,包括认识C语言程序、C语言程序设计基础、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函数、指针、结构体和文件、项目实训———ATM功能实现。

(四)高职院校学生现状分析

1.学生的来源不同高职院校的学生一般由普通高中毕业生、中等职业学校毕业生、通过单独招生(单独招生考试是我国近几年来经教育部批准,为进一步完善具有中国特色的高等职业教育体系,由高职院校单独组织考试和录取的一种新型招生方式[3])的社会考生等组成。2.学生的基础不同不同来源的学生的基础水平也不尽相同,普通高中文科毕业生理论知识较弱,大部分学生在高中阶段对计算机程序设计语言都没有过多的接触,但他们的学习能力较强;对于中等职业学校毕业生而言,他们的动手实践能力较强,而且在高中阶段学习过一些程序设计类语言,如VisualBasic等;通过单独招生方式的考生相对来说理论和实践能力较差一些,但他们工作实践经验多一些。3.学生的学习兴趣不浓厚大部分高职院校的学生缺乏自我约束能力,上课不认真学习的现象时有发生,尤其对于晦涩难懂的理论知识更是产生不了兴趣,这就使得他们把大部分时间花费在其他事情上,从而给“C语言程序设计”课程的教学带来困难。

(五)高职院校教学现状分析

1.教师理论知识丰厚,但实践经验相对匮乏高职高专任课教师一般都具有研究生学历,在毕业以后都具有比较扎实和丰厚的理论知识,但在如何把这些理论知识转化为学生可以接受的效果知识方面还稍显不足。除此之外,大部分教师并没有在一线企业工作的实践经验,所以缺乏相关的项目开发基础,在授课过程中还存在“纸上谈兵”现象。2.机械地选择教学方法,教学成果不理想针对高职高专院校的学生,教学方法有很多,如教师通过生动和简明的语言向学生授课的讲授法、在教师指导下分小组的讨论教学法,展示各种实物或进行相关示范性实验的演示法,到实训实验基地参观教学法以及给学生布置任务的驱动教学法等。教师在授课过程中机械地选择一种或几种教学方法,并没有考虑学生的整体情况和个体差异,再加上高职院校的教师其专业行为更多停留在教学方面,从知识论角度在课程建设方面付出的努力远远不够[4]。因此,在授课过程中存在选取的实验、任务不符合实际、脱离现实等问题,进而导致了教学成果的不理想。3.对学生实践能力培养重视程度不足在传统的“C语言程序设计”课程教学体系中教师占主导地位,教学内容也主要是由教师进行理论知识传授为主。在这种教授为主,学生为辅的教学模式下,对学生实践能力培养重视程度不足。较多的理论知识和较少的实践内容形成强烈的对比,学生得不到相应的实践和能力的提升,因此学生的实际应用能力存在较为明显的欠缺。4.对提升学生学习兴趣的方法还稍显不足对于基本的理论知识,大部分教师在上课时都是采用PPT或板书的形式单纯向学生讲授,在授课过程中为了加强学生对知识的理解与记忆,需要反复强调重点和难点内容。因此,语言重复乏味,不能引起学生的学习兴趣。同时这种单向的灌输式讲课方式,学生在上课过程中参与程度比较低,不愿参与和教师的互动。

三、任务驱动教学法实施步骤与应用

(一)任务驱动教学法实施步骤

任务驱动教学法可以提升学生的学习兴趣,在增强教师对课程建设进行深入思考的同时提升对学生实践能力培养的重视程度。具体实施主要包括如下几个步骤:第一步:创设教学情境,即提出明确的任务,真实的情境创设能够更好地激发学生的学习兴趣;第二步:明确教学任务,即根据教学内容对教学任务进行分解,引导学生进行知识点学习;第三步:分组学生,完成学习任务;第四步:评价学生的学习成果。

(二)任务驱动教学法的应用———以循环结构程序设计为例

日常生活中,我们经常会对输入的多个数据应用相同的计算,而通过使用循环语句就解决了烦琐的重复问题。如果在程序中有需要多次执行的语句,那么就需要进行循环结构程序设计。循环结构是结构化程序设计的三种基本结构之一,循环语句序列可重复执行,直到某条件不成立(或成立)结束,或完成指定的次数。循环结构的编写由循环语句来完成,有时我们还希望控制循环的进入和退出,所以还会使用一些循环控制语句。在本单元共划分为六个典型任务来讲解和分析C语言程序中循环结构的程序设计方法。1.创设教学情境,提出工作任务教学情境一:歌唱比赛求平均分———while语句的应用。为丰富学生课余生活,学院决定开展“校园十佳歌手”大赛,为体现比赛的公平公正,评委由各系组织并进行推选,在比赛时一名选手演唱完毕后由各个评委负责打分,选手的最终成绩为所有评委的平均分。设评委人数不固定,由输入的评委人数决定,每个评委打分后进行求和,打分次数和评委人数不相等继续打分和求和,打分结束后计算平均分,最后输出最终成绩。教学情境二:翻牌游戏———do-while语句的运用。相信大家小时候都做过这样的一个小游戏———翻牌游戏。翻牌游戏需要准备一副扑克牌,然后三个人一起玩。在玩的过程中不区分扑克牌花色,一人选择奇数牌,一人选择偶数牌,一人负责计分,计分原则为不同的牌代表不同的分值,如A代表1分,2代表2分……K代表13分,大王或小王代表0分,直到两人抽到大王或小王为止,游戏结束,最终两人累积得分高者胜出。教学情境三:中奖———for语句的运用。有一个小型模拟中奖机,现已知中奖号码是一个固定的3位数即原始号码。中奖的原则为对任意一个三位数,取出它的每位数字和原始号码的每位数字比较,共有1位数相同中三等奖,2位数相同中二等奖,3位数都相同中一等奖。在所有的三位数中进行比较,然后输出所有的中奖数字。教学情境四:九九乘法表———循环嵌套的运用。我们从小学就开始学的九九乘法口诀,即“九九乘法表”,它是一个九行九列的表格,行和列均从1变化到9,要求大家输出此表格。教学情境五:找朋友———break语句的运用。日常生活中我们都玩过找朋友的游戏。游戏的规则为一个同学在一群同学中找朋友,找到朋友后说再见,然后换下一个同学找朋友。我们现在玩找字母朋友的游戏,首先从键盘输入要找朋友的字符m,然后判断再次从键盘输入的字符,如果输入的是小写字母a…z或大写字母A…Z,则输出找到字母m的朋友,如果不是字母则结束游戏。教学情境六:猜数游戏———continue语句的运用。现在大家玩一个猜数游戏,游戏规则为请玩家输入猜的数值,范围为0到9,然后猜出100以内能被这个输入的数字整除且个位数也是这个数字的所有整数,最后将所猜数字输出,游戏结束。2.明确学习任务,分解教学任务任务一:理解循环结构的概念。循环结构是结构化程序设计的基本结构之一,它与顺序结构、选择结构共同作为结构化程序的基本结构。任务二:掌握解决循环问题的三要素。首先,循环需要确定重复执行的次数,因此要设计一个循环变量,并对它进行初始化;然后需要设计循环条件,用来控制循环的结束,避免程序为永久循环;最后需要设计合理的循环体。任务三:掌握循环while语句、do-while语句、for语句的语法格式和执行过程以及break和continue语句的运用。任务四:正确运用while语句、do-while语句、for语句三种循环。如果循环体包含了一条以上的语句,此时应该用大括号将循环体括起来以复合语句的形式出现,从而表示为一个整体;在循环中应有使循环趋向于结束的语句,即设置修改条件的语句;如果表达式的值始终为真(即值为1),则是永久循环。通过正确运用while语句和do-while语句以及for语句三种循环及相应的循环控制语句break和continue来实现六个创设的学习情境。3.分组学生,完成学习任务教师在课前将任务一作为预习作业布置下去,让学生自主学习,并提前将学生按照4~6人进行分组,每组设立小组长。对于任务二和任务三则由教师根据已创设的教学情境进行讲解,在讲解过程中要注意观察学生的反应和学生进行互动,任务四则由教师给予一定的指导,然后由小组长负责组织本组成员进行讨论分析,直至解决问题,即实现六个教学情境。4.评价学生的学习成果评价学生的学习成果包括学生自评、学生互评、小组评价和教师评价四个方面。学生自评可以提升对自我的认识,提高知识的掌握程度;学生互评可以增进同学之间相互学习,各取所长;小组评价可以增强学生的团队意识,发扬团队精神;教师评价可以从学生的学习态度、学习方法、团队协作等多方面客观地进行评价,同时也可以增进师生友情。其中学生自评占20%,学生互评占20%,小组评价占30%,教师评价占30%。

结语

通过任务教学法,“C语言程序设计”课程取得了以下成效:一是有效地提升了学生的学习兴趣,使得大家可以积极地参与课堂教学,不再是被动地接受书本知识;二是教学情境将学际问题和基础知识相结合,培养了学生解决实际问题的程序开发能力;三是公平合理的效果评价有助于激励学生学习态度,提升学习效果;四是学生在教师的指导下可以有效地参与到项目的实施中,激发学生的学习潜能;五是团队小组合作解决问题增强了学生的团队意识,对培养高素质的实用型人才提供基础。

参考文献:

[1]李楚贞,余育文.Java程序设计课程混合式教学研究[J].福建电脑,2021,37(01):127-129.

[2]赵焕信.任务驱动教学法在中职汽修专业教学中的应用[J].中学教学参考,2021(33):93-94.

[3]王爽.单招背景下财务管理专业高数课程改革探究[J].中国管理信息化,2021,24(17):221-223.

[4]陈联记,王升.知识论视野下高职教学的问题、特点与策略[J].河北工程大学学报(社会科学版),2021,38(02):116-120.

作者:刘洋 单位:廊坊燕京职业技术学院