c语言课程范文

时间:2023-04-03 09:59:09

导语:如何才能写好一篇c语言课程,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

c语言课程

篇1

关键词:C语言;教学方法;上机实践

由于C语言功能丰富、应用广泛,很多高校都将C语言作为一门计算机及相关专业的重要专业基础课开设,甚至有不少高校将它作为计算机公共基础课来开设。但在C语言课程的开设过程中,教师与学生都有误区,教与学的效率和效果不理想。本文针对该课程在教学中存在的问题、在教学方法、上机实践的设计与考核方式等几个方面来进行分析与探讨。

1教学中存在的问题

1.1教学观念与学习观念的误区

讲授C语言程序设计课程的教师容易走入一个误区,即重视C语言的语法和概念的学习,忽视程序设计能力的培养,它使得该课程成为纯粹C语法和概念的介绍[1]。另外,学习C语言课程的学生多数只是重视语法、概念和规则的学习,忽视更为重要的上机实践,认为学习C语言就是学习C的语法、概念和规则,认为掌握了C的语法、概念和规则,就掌握了C语言,但实际情况是学生并不具备用C语言来编写代码和解决实际问题的能力。

1.2授课方式枯燥乏味

从传统教学方法来看,C语言课程教学任务繁重、教师要用大量时间向学生解释大量概念、术语和语法,而该门课程的理论学时有限,多数专业课程每周只有两学时,教师授课时难免陷入静态说明书式的状态。语法知识枯燥乏味,而这样一种静态说明书式的授课方式,更加剧了学生的厌恶感,导致学生厌学。

1.3实践课程比例不够或不重视

受传统的教与学的影响,师生双方都或多或少忽视上机实践。实际上,该课程的实践课尤其重要,只有在实践课上我们才能有效地检查和验证学生学到了什么,能够做些什么。

2教学改革及教学方法探讨

2.1转变教学观念,提高教师自身素质

教师要从以往的以教师为中心的模式向“教师主导,学生为学习主体”的模式转变[2],改变老师单向课堂灌输、学生被动地整堂课听讲的传统授课方法。我们要规范整个教学过程,这些工作最好是由教授该课程的全体教师(即课程项目组)来共同合作完成。教师在熟悉教材内容的前提下,编写完整的课堂教学教案;制作完整的教学用PPT;课程组从大量的例题中精选出部分典型的、针对性强的例题也是非常必要的,只有这样才能减少教师在教学过程中选择例题的盲目性;精心设计好实践课内容,每次实践课的内容要有针对性,有具体的目标和要求,并要求学生下课时必须提交实验报告或作业,这样,在提高实践课效率的同时,可以有效增强学生实际动手能力,从而真正掌握C语言。

2.2采用灵活多变的动态的授课方式

对于C语言课程的教学,我们应采用灵活多样的授课方法,可以尝试采用启发式、任务驱动式、比喻式等多方式有机结合,具体授课时采用的形式和手段也可以多样化,根据实际知识点的具体情况,灵活采用传统教学方法+多媒体教学文法。例如,对课程中的语法、语句、流程图的画法,采用多媒体教学,减少板书时间以增加对算法思想的传授;在讲完一个程序后,把程序在课堂上进行多媒体演示,这样既有利于学生的理解,又能激发学生的兴趣,还节省了讲解时间,避免了静态说明书式的教学方式;对于程序设计方法的讲解,则采用传统的教学方式,教会学生如何思考、推理,如何用语句实现算法,培养学生的抽象思维和逻辑推理能力。下面介绍几种授课方式。

1) 采用启发式授课方法,以培养学生分析问题和解决问题。启发式授课方法,是指教师在全面掌握讲授内容的前提下,在讲解新的授课内容前,对以前所学知识进行回顾,引出新的讲授内容。

例如,在讲授“数组”一节的内容时[3],首先提出一个问题:用基本数据类型可以解决所有的问题吗?具体实例有:对某班学生的成绩按从高到低的顺序进行排列。教师先让学生回顾以前所学过的基本数据类型的相关知识,在教师引导下,学生能够轻松地找到准确答案。比如,如果班里学生只有少数的几个,如3个,那么用基本数据类型可以解决,但一个班通常有几十名学生,这时候用基本数据类型解决就无能为力了。此时,教师就可以引出新的讲授内容――数组的概念,并指出前面提出的实例,用数组来解决就显得非常容易了;然后,简要地向学生讲授数组这一节课需掌握的理论知识――一维数组的定义和初始化,冒泡法和选择法的原理,最后引导学生用数组这个新学到的数据类型,采用冒泡法和选择法分别解决之前所提的问题。大多数学生都能够做到,而且学生对两个算法的理解也比传统教学法深刻。

实践证明,这种授课方法能充分调动学生的学习积极性,变被动学习为主动学习,培养学生分析问题和解决问题的能力。

2) 将项目教学法应用于C语言课程教学[4]。为了达到既能让学生掌握C语言基础知识,又能培养学生的编程动手能力,教师还可以纵观全局,事先按照学生将要掌握的知识点,设计一个或几个有一定规模的项目(规模大小视该教学单元模块的难易而定),采取项目驱动法,即以项目为驱动力,从分析项目开始,讲解完成项目所需要的编程知识和技能,在讲授知识点的过程中,引导学生去解决实际问题,最后,以小组讨论形式,共同完成该项目(任务)。具体实施过程如下:设计具体教学项目,按各个知识模块来划分,并根据知识模块的大小和难易程度,确定项目的大小、教师的讲解时间以及要求学生完成的时间。

3) 采用比喻式授课方法,将复杂问题简单化,引起学生的学习兴趣。比喻式授课,是指教师应用形象化的比喻,将抽象复杂的问题简单化、具体化。这种授课方式适用各门课程。就C语言这门课来讲,在上述两种授课方式的具体实施过程中,都可以穿插应用比喻式授课方法。学习一门语言总要学习其语法和语句,而这些内容通常都比较枯燥,让人厌烦,所以,教师要善用身边的例子,利用形象化的比喻,把枯燥的东西变得形象生动,引起学生的兴趣。

例如,在上述启发式授课方法中提到过的用数组来解决多个学生成绩排序的问题,可以采用冒泡法和选择法,但这两种算法都比较抽象,教师如果只是机械地讲解冒泡法和选择法的原理,学生会产生厌学心理。对此,教师可以把它形象化,从而将这个问题简单化,将问题转变成是10个两位自然数排序的小问题;并运用多媒体教学,在教学课件里用动态的排序过程,分别展示运用两种不同的算法去解决这个排序问题的具体实施流程。这样一来,在动态数字排序过程的展示下,学生的目光都不由自主被吸引到讲台上来,随着10个数字排序的动态全过程的完成,学生就能够印象深刻地理解到选择法和冒泡法的原理,从而达到事半功倍的效果。

2.3重视实践教学

实践教学是C语言课程学习的重中之重,教师和学生都应该从观念上先认识到这点。在具体要求实施过程中,可以尝试从以下途径来完成实践。

首先,课程项目组在开学初已制定好了完备的实验教学计划及实验教案,针对每周的实验课都有相应的实验教案,清晰指明该次实践课的目标、实验指导、实验要求及提交实验作业的要求。

其次,在每次上机实践的基础上,视学生掌握知识点的情况以及动手能力的高低,一学期布置1~3个综合的实验项目,并体现项目教学法的精髓,即要求学生从初期规划开始,从功能设计、模块划分、算法设计与描述、代码编写、调度、分析、心得体会等方面撰写实验报告,并提交电子源代码与手写的实验报告。这一过程是对学生真实的动手能力的训练,可以督促学生养成自主学习的好习惯,培养探索精神[5]。

再次,教师要让学生明白,在实验课上学生自己是学习的主体身份。在到机房上课前,学生已在之前的理论课上了解了该次实验的内容与要求,是带着任务来上实验课的。在这个环节,教师可以实施小组协作学习的模式,同小组座位安排在一起,方便讨论。上实验课时,学生有问题可以与相邻座位的同学相互讨论,充分发挥学生的自主能动性和小组团队协作的学习精神;如果出现了小组解决不了的问题,再寻求教师帮助。与此同时,教师在学生实践时,可以巡视,并结合机器里安装的教学软件NETOP,观察学生具体做实验的情况,锁定学生实践的难点,对多数学生的共性问题通过大屏幕演示,进行统一指导与解答;而对于个别学生的问题,实施一对一的指导;最后,教师还可以抽出5~10分钟的时间,针对上次实践课的作业,利用大屏幕或NETOP软件控制每个学生的机器进行点评,在共享目录里展示学生好的源代码,以便其他同学参考借鉴。

最后,在学生提交作业环节,教师可以从提交截止时间、提交目录的权限设置及实验课的实时监督等保证学生作业的真实性,防止抄袭拷贝现象发生。

2.4考核方式的改革

实践对于这门课程很重要,故笔者建议将每次实验作业的成绩与综合实验项目报告成绩,按一定的比例作为学生期末课程总评成绩的一部分录入,即采用上机实验+综合实践+期末考核的方式来决定学生的C语言课程的总成绩,具体比例如下:上机实验(包含考勤)占30%,综合实践占30%,期末考试占40%。期末考卷最好能够实现教考分离,例如,课程组的各位老师共同设计题库,再从题库里随机抽题考核是一个不错的方法。

总的来说,这样的考核方式可以避免传统的一卷定分数的“高分低能”现象的出现,按这样的考核方式出来的成绩,既能反映学生平时的学习过程,又能督促学生自始至终都重视实践能力的学习与锻炼,考核里加上了解决实际问题的大中型综合实践与期末的卷面考核,能全面真实地反映学生的实际水平。

参考文献:

[1] 丁峻岭,张克军,代俊雅. C语言课程教学的探讨与研究[C]. 北京:高等教育出版社,2009:510-511.

[2] 李克东. 教育技术学研究方法[M]. 北京:北京师范大学出版社,2003:132-137.

[3] 谭浩强. C程序设计(第三版)[M]. 北京:清华大学出版社,2006:99-118.

[4] 刘平. 任务驱动式教学法在C语言程序设计教学中的应用[J]. 无锡南洋职业术学院论丛,2009(3):78-80.

[5] 郭有强. C语言程序设计课程建设探索与实践[J]. 教育与教学研究,2009(2):72-74.

Discussion on C Programming Language Course

XIONG Fang-min, XU Shuo-na

(Information Engineering and Technology Department, Nanhai Campus, South China Normal University, Foshan 528225, China)

篇2

[关键词]C语言程序设计 探究教学 实施目标

中图分类号:TP312.1-4 文献标识码:A 文章编号:1009-914X(2014)17-0126-01

一、 C语言程序设计探究教学实施的目标:情感目标、能力目标和认知目标

1、体验C语言程序设计的编程思想,激发和保持对C语言程序设计课程的求知欲,形成积极主动地学习和参与C语言程序设计课程探究活动的态度。

2、能辩证地认识C语言程序设计对社会发展、科技进步和日常生活学习的影响。

3、获得亲自参与研究探索的积极体验、培养严谨的科学态度。

4、能从日常生活、学习中发现或归纳可以利用C语言程序设计解决的问题,通过问题分析确定程序功能。

5、能根据任务的要求,确定所需信息的类型和来源,并鉴别信息的真实性、准确性和相关性。

6、掌握计算机程序的基本概念,理解并掌握C语言程序设计语言的基本知识,包括语句、数据类型、变量、常量、表达式、函数等,熟悉语言的语法规则,熟悉计算机程序执行的基本过程。

7、了解C语言程序设计语言,掌握编写程序、编译程序、连接程序以及程序开发环境等基本知识,掌握调试、运行程序的基本方法与技巧。

二、C语言程序设计探究教学实施的条件

1、掌握一定的计算机操作基础

C语言程序设计课程由于其学科自身的特点,需要在计算机上调试程序,所以要求学生具有一定的计算机操作知识,如:开关机、键盘和鼠标的使用、文件的建立与查找、常用软件的使用等。

2、良好的C语言程序设计认知结构

认知结构就是学生头脑里的知识结构,是学习者观念的全部内容和组织。奥苏伯尔的认知结构理论是针对新学习内容的影响(即迁移)提出的,良好的认知结构有利于知识的提取和正向迁移。C语言程序设计探究教学强调在已有知识经验上的主动建构,面对新的问题和任务,需要学生及时从头脑中提取信息,建立新旧知识间的联系,在已有C语言程序设计知识的基础上思考解决新问题的办法,并试图将新知识纳入自己的认知结构中。

3、良好的探究环境

良好的探究环境是学生顺利进行探究的保证,至少包含两方面的内容:(1)要有充足的探究时间和灵活的探究条件。探究时间应该根据学习任务进行合理安排,应该考虑到学生假设错误时所耽误的时间以及讨论交流所需要的时间。探究教学中可能需要查阅大量的资料,教师还应该准备书籍、网络等辅助资源。(2)学生在探究学习的时候不能有太多压力,不同的学生由于其自身的因素不可能以相同的速度学习,所以教师在进行评价的时候也应该因人而异,应该为每个学生提供充分的思考机会和时间,让每个学生都能以自己的进度进行探索,并在此过程中感受到乐趣。

三、C语言程序设计探究教学情境的创设

心理学研究表明,恰当、适宜的环境能有效激发人的热烈情绪,提高活动的质量和效果。教学情境是指教师人为创造的“典型场景”,创设目的在于引出教学任务,将学生的注意力吸引到学习任务中来。教师把将要学习的C语言程序设计知识通过一定的情境呈现给学生,使得学生认知结构与周围环境不平衡,引起他们对学习目标的注意和兴趣,并通过探究活动把学生过去的活动和将来的活动联系在心理学研究表明,恰当、适宜的环境能有效激发人的热烈情绪,提高活动的质量和效果。教学情境是指教师人为创造的“典型场景”,创设目的在于引出教学任务,将学生的注意力吸引到学习任务中来。教师把将要学习的C语言程序设计知识通过一定的情境呈现给学生,使得学生认知结构与周围环境不平衡,引起他们对学习目标的注意和兴趣,并通过探究活动把学生过去的活动和将来的活动联系在一体。探究教学情境的创设应做到:(1)创设的情境是为C语言程序设计教学服务的,要以C语言程序设计探究教学目标为依据。(2)探究情境要接近学生的真实生活经验,能够吸引学生的注意力,激发他们的认知冲突和求知欲。(3)学生在情境中能够感觉到问题的存在,自然地将新旧知识联系起来。(4)情境中必须包含学生未知的新内容,而且是能够通过探究掌握的。

四、C语言程序设计课程中的探究形式

C语言程序设计课程中开展探究教学主要有4种形式:探究性提问、探究性讨论、探究性演示和探究性实验。这4种形式是相辅相承的,而不是孤立存在的,在C语言程序设计探究教学中,需要用到多种形式来构成一个完整的探究教学过程。C语言程序设计探究教学通常都是由探究性提问开始,然后进行探究性讨论、探究性演示或探究性实验;也可能从探究性演示或探究性实验开始,在演示或实验的过程中发现问题,再进行探究性讨论。在实际教学过程中,要根据学习内容和课堂情况灵活地选用这些形式。

五、C语言程序设计探究教学评价

教学评价指依据一定的标准,通过各种策略和相关资料的收集,对教学活动及其效果进行客观衡量和科学判定的系统过程。C语言程序设计探究教学评价是对C语言程序设计探究教学过程及其影响的测量、分析和评定,评价中我们更关注学生学习和成长的过程,寻找适合学生发展的学习方式,满足学生知识和能力发展的需要。评价对探究教学的积极作用是很明显的,但是如果评价指标制定不合理,或者评价方法的选用、评价结果的表述不当,不仅不能达到预期效果,还会对学生的C语言程序设计学习产生消极影响。

参考文献

[1] 《基础教育课程改革纲要(试行)》教育部文件,教基[2001]17号.

[2] 保罗 朗格朗.终身教育引论瞰[M].北京:中国对外翻译出版公司,1985,p15~31.

[3] 联合国教科文组织.学会生存――教育世界的今天和明天[M].上海:上海译文出.

版社,1979,p2.

[4] 张大均。教育心理学[M].北京:人民教育出版社,2005,p68--71.

[5] 靳玉乐.探究教学论[M].重庆:西南师范大学出版社,200l.

篇3

计算机程序设计类课程具有实用性强,和应用广泛的特点。C语言作为现代非常流行编程的语言,更是具有通用性强和面向对象等众多特点,作为大学计算机基础编程类课程被广泛学习。C语言存在一定的复杂性并且授课时限制,授课方式限制等等问题。将计算思维融入到C语言的教学中,合理调整针对各专业授课内容,将计算思维融入课程,并与MOOC教学模式对接。笔者结合十年的教学实践经验,总结出授课效果不佳的原因,提出若干改革措施。

关键词:

计算思维;C语言程序设计;MOOC;

黑龙江省教学改革项目《高等院校计算机基础程序设计类课程综合研究性教学改革与实践》项目编号:JG2014010854

1教学内容与模式存在问题

1)先理论后实验

C语言程序设计课程在传统的教学中,理论部分采用课堂讲授的模式,边讲知识点边进行编程,实验课则是在理论课城讲完之后,单独进行实验教学,单人单组,这种教学模式容易出现理论与实践脱轨,接连不上,理解不透彻等问题。

2)创新性实验不足

一般教学模式下,设计性实验和创新性实验占的比例在20%以下,创新性项目不足。这种模式下,学生在课堂上的学习积极性大部分依靠于教师的授课技巧或个人魅力来吸引学生,教师把知识点讲授得清楚明白,但是学生自己动脑思考相应问题的时间短,并且大部分学生课前预习基本没有,不能真正发挥学生主观能动性和自主学习能力。

3)直接灌输

大多数学生对与课前预习做的并不出色,可能大部分学生是完全没有课前预习的。学生在头脑中并没有带着问题听课,而是老师直接灌输C语言定的设计结构、数组、指针等复杂内容。学生没有预习,没有思考,只有类似直接灌输式的教学模式。

2从教学模式改良教学内容

1)将计算思维能力培养融入课程中

程序设计类课程的教学方法要注重将“不可见”变为“可见”,变“无关”为“相关”,把大问题碎片化,把复杂问题进行分离与分层处理。例如,将C语言中的语法有融合到程序设计中,在程序中讲语法,又在学语法的同时练习训练了编程,这样就避免了枯燥乏味的讲述语法,将语法融合入程序设计中。

2)在C语言程序课程中扩展计算机思维的改革模式

①改进教学方法。不将C语言程序设计课程的教学内容做大量调整,而是通过改进教学方法来启发引导学生认知知识点背后蕴含的联系与规律,比如设置问题导引,问题讨论,追溯反思,新建构架等等方式来潜移默化的渗透计算思维,使计算思维模式逐步走进学生的思维方式中。②重新构架体系结构。并不对课程教学的知识点做大量更改与替换,而是以计算思维模式为主干重新构建知识体系,只是课程内容授课顺序和结构有较大复读调整。例如容易基本的数学问题,生活常识问题,即由C语言外而进入C语言内的知识体系的调整。③更新大量陈旧项目。以往的教学内容包含一些生硬死板的程序项目,其目的只是为了说教语法和结构。取而代之的融入计算思维的程序项目则更加新颖,更加联系实际,更加突出对计算思维的训练,例如,爱因斯坦天国的阶梯;生肖属相轮回等项目,不仅生动、引人入胜,更能训练思维。

3)依据计算思维融合传统科目内容

我们可以将一部分学生选出来进行试验性教学,打破传统的几门课程包括C语言、数据结构、算法分析、VC程序设计,等系列课程的教学方式,采用根据不同专业设定的包含基础数学、程序设计技巧、算法分析的一体化教学内容,打破传统的教学内容,该体系能够更充分利用学生的自主能动性,课下的工作量比课上的工作量要大得多,学生在课前要进行大量的准备工作。

4)加大课前预习量

打破传统的理论教学与实验教学分开的模式,在理论教学中同样需要学生进行大量的课前准备,然后在课堂上进行分组讨论老师提出的问题,根据每组学生的讨论内容,讨论结果设置而在实验教学方面,可运用本校的网络教学平台,提前发放讨论内容及作业题,在实验课中以项目提交的方式来完成实验教学。

3对接MOOC网络教学

1)MOOC兴起

网络技术的不断发展,人们更愿意使用电子产品依托网络进行学习。MOOC大规模网络公开课程(MassiveOpenOnlineCourse,MOOC)[1]是2012年在美国兴起,它作为一种大型的开放式网络课程,为学生提供免费的学习平台。随后全球的各大知名大学逐步开设MOOC课程,纷纷涌入到MOOC的浪潮中。在中国的很多知名高校也加入其中,纷纷开设MOOC网络课程,当前的coursera、udacity和edx的火热应用,实施了翻转课堂进行教学。

2)登陆MOOC

C语言程序设计的授课,为了适应新时期的教学发展趋势和教学需求,要将传统教学与在线教学平台融合,更好地使二者相互补充和促进。MOOC也将教育推上了全球化的舞台,这种变化带来的好处显而易见,最明显的一个特征是打破了教育壁垒,令教育资源平等化[2]。

3)重组设计课程内容

C语言课程登陆到MOOC,并不能简单的将课堂的内容简单,直接的传送到MOOC平台上,而是应该结合C语言程序设计课程的特点,和MOOC平台的优点,进行课程内容的整体策划,重新设计设计整门课程的体系结构。

4总结

我们要通过分析教学中存在的问题,教学模式和教学内容进行多管齐下的相关改革。改革并不能与从前的单一模式相同,要针对课程的特性,改革教学内容与计算思维相对接,改革教学模式与MOOC相对接,实现多管齐下,真正达到教育教学目的,让学习者能真正学以致用,转换思维模式,无论在哪一方面都收获良好的教育教学效果。

作者:逯柳 陈刚 孙毅 耿姝 王树芬 单位:哈尔滨石油学院信息工程与计算机技术系

参考文献:

篇4

《C语言程序设计》是计算机相关专业的一门基础课程,是培养学生计算思维能力、程序设计与实现能力的入门课程,同时也是《数据结构与算法分析》等课程的先导课程;C语言也是IT企业中常用的编程语言。因此,该课程的教学对学生后续课程的学习和今后的工作都会产生重要的影响。对于初学者而言,因为逻辑思维能力较弱,所以在学习过程中积极性不高,学习效率低下,难以提高其编程语言解决实际问题的能力。经过多年的授课,笔者对《C语言程序设计》的课程教学进行了一些探讨和实践

二、教学中存在的问题

1.教学主体以教师为主

在传统的教学中,教学主体往往以教师为主,高等院校对教师的考核注重“科研”,因此很多教师容易忽视“教学”的重要性。在《C语言程序设计》的教学中教师方面的问题主要包括:①课程的知识点较多,存在教学内容与教学时数之间的矛盾;②教师的教学方法、方式陈旧,难以激发学生主动学习的兴趣;③教师在教学中大多重课堂教学,轻实验教学;④任课教师往往没有工程实践经历,其综合业务水平有待提高。

2.教学中没有充分调动学生学习的积极性

《C语言程序设计》的课程学习是在新生入学的第一学期,这对课程的教学也带来一定的消极影响,主要体现在:①学生学习目的不明,动力不足,很多学生以为进入了大学主要是锻炼社会交往能力;②学生的逻辑思维能力较弱,想象空间较窄,遇到挫折容易产生厌学情绪;③由于受传统应试教育的影响,学生大多重教轻学,重理论轻实践,考试能力强,编程能力弱,不能用计算思维解决实际问题。

三、教学改进的举措

针对上述问题,笔者摒弃以单向性知识传授为主的教学模式,主张讲课教师应以课程的内容和学生的知识积累为基础,积极引导学生创造性地运用知识和能力,自主地发现、分析和解决问题,学生在研讨中学习知识、培养能力和提高素质。具体的教学实施方案包括:

1.编制详细的教学设计方案

为帮助学生提高自主学习和创新的能力,需要制定详细的教学设计方案,该方案是课程教学具体实施的主线,它相当于一场晚会的节目演出单,讲课教师是导演和主持人,而学生是主角和演员。教学设计方案主要包括:教学日期和时数、教学内容和主题、实验内容、教学方法、教学手段和作业安排等。

2.优化教学内容

该课程存在教学内容较多而教学时数受限,全面而细致的讲解所有的内容已不合时宜。教学内容的优化应满足教学目标的要求,满足学生的学习需要,激发学生的学习兴趣[1]。因此,我们按照“少而精、宽而新,突出核心的知识点”的原则优化教学内容,体现教学内容的先进性、实用性。按照学习进度,给学生安排相应阶段的学习任务,有些内容要求学生自主完成。

3.改变传统的教学方式

传统的“填鸭式”教学方式效果并不好[2],因此,我们在教学引入并主要采用了“讨论式”教学,以充分调动学生学习的积极性,具体的做法包括:①每次授课结束前,布置预习思考题,要求学生在课下充分预习,课上围绕思考题展开讨论,每次课分组讨论1-3次,每次2-5分钟;学生课堂讨论、发言或回答问题的时间约占总学时的20%;②随机抽查回答问题与各组指派同学回答问题相结合,回答问题不以正确性为唯一依据,也注重表达过程的清晰度和逻辑性,尤其鼓励问题回答者阐述自己的观点或提出问题。统计表明,学生回答问题次数平均水平有6-8次;③将学生在课堂教学过程中的表现按评分标准将其分值记入到平时成绩档案中。

4.加强教学方法的改革

在教学中应以学生为中心,引导学生走向知识,通过合理施压,注重师生的互动交流,培养学生善于总结、发现问题和主动学习的能力[3-4]。在《C语言程序设计》的课程教学中,我们对教学方法做了如下改革:①“案例教学法”贯穿教学全过程,“学生信息管理系统”贯穿了该课程的全部章节,是学生在学习过程中的“长期任务”;②“任务驱动法”引导学生学习,“长期任务”可以分解为多个对应于知识点的“短期任务”,有助于学生逐步提高编程能力;③用“负反馈教学法”解决学生学习中问题,有效的提高学生的学习效率;④弱化语法,以“算法为先”实现实际问题的求解;⑤并用“多媒体”教案扩大课堂信息量,精心制作与教材配套的CAI课件和习题。

5.建立新型的实验教学模式

为了激发学生学习的积极性,我们通过建立新型的实验教学模式[5],包括:①为增强学生学习的体验感,减少了基础验证型实验比例,增加综合型实验和设计性实验的比例;②建立以小组为单位的实验完成机制,培养学生的团队合作能力;③加强实验报告的规范,增强学生的职业岗位意识;④建立定期的课外讨论机制,教师定期讨论主题,学生以小组为单位进行准备,然后通过专题讨论和点评,并将学生的表现记入平时成绩档案;⑤鼓励实验动手能力的较强的同学自己设计实验项目,并依据结果给予其一定的平时成绩奖励。

6.健全严格的学生考核机制

传统的考核以笔试为主,学生为了应对考试采取死记硬背的方式,为此我们建立严格全面的考核机制,包括:①建立学生学习小组,分组原则是小组内部异质化,小组之间同质化;②建立每个学生平时学习成绩档案,学生的平时表现与分值相对应;③制定公平合理的成绩评定方案:学期总评成绩=平时成绩×60%+期末考试成绩×40%,平时成绩=小组成绩*小组人数*组员在项目组的贡献百分比(组员的贡献百分比是在教师给出小组成绩之前,经过该小组的全体成员一致同意后提交给任课教师),这种考核方式可以促进学生的团队协作精神和竞争意识;而期末考试侧重于通过编程以解决实际问题,从而促使学生平时多思考、多上机实践,有助于提高他们的逻辑思维和编程能力。

7.积极开展第二课堂教学

积极引导学生参加课外实践活动,主要采取了如下措施:①开设了网络教学平台资源,为学生提供大量的经典实例程序、教学课件和习题,并通过电子邮箱、QQ群和微信群等手段,随时为学生答疑,了解学生的学习状况以调整教学内容和手段;②鼓励学生自主创立或参加各种创新社团和讲座,目前,本学院已成立“海盗社”等实践社团,面向全校学生举办多种创新活动,2014年共组织了11场关于程序设计相关的讲座和活动;③将各类程序设计竞赛和实践教学相结合,鼓励学生参加各类程序设计大赛,为此学院提供了稳定的经费和场地支持,并依据参赛结果给学生一定的表彰和物质奖励;④在大一第二学期末段,组织学生到印孚瑟斯技术中国有限公司等IT企业实地参观学习,了解这些企业的文化、发展和对职业岗位能力的需求,进一步让学生明确个人今后的发展目标和计划,激发其学习热情和自身的发展潜能[6]。

四、结束语

篇5

关键词:高职高专;C语言;教学改革

中图分类号:G642.3 文献标识码:B

1引言

“程序设计基础(C语言)”(以下简称“C语言”)是我院三年制高职“软件技术”专业和“计算机应用”专业的一门专业基础课,其重要性体现在:

1) 该课程是专业课程体系中的第一门计算机类专业基础课;

2) 该课程是专业课程体系中的第一门介绍程序设计基础知识的课程;

3) 该课程是专业课程体系中的第一门编程语言类的课程;

4) 该课程是若干后续专业课程(数据结构、C++)的先修课。

因此,C语言课程对于计算机相关专业的学习是非常重要的。但是,由于高职学生的基础不好,而程序设计课程逻辑性又很强,有不少学生不能很好地理解算法,编写程序也很困难,C语言基础打不牢还直接影响了后续专业课程的学习。如何改革C语言课程,进一步提高教学效果,成为专业课程建设中的一个紧迫任务。为此,我们邀请了校内外专家及来自企业的资深软件工程师,与C语言教学一线的教师代表一起共同组成了C语言课程改革指导小组。经过广泛调研、反复研讨、仔细论证,明确了C语言课程改革的目标,制定了详细的课程改革方案,并在接下来的几年里有计划、有步骤地贯彻执行,目前已初见成效,学生的学习积极性和学习效果有了显著提高,C语言课程还于2007年被评为国家级精品课程。下面介绍课程改革的指导思想、总体思路和采取的具体措施。

2课程改革的指导思想和总体思路

C语言课程改革的指导思想是:

1) 改革要符合我院IT应用型学院的办学理念和高职

实用技能型人才培养的定位;

2) 改革要立足专业培养目标,要符合学生的实际情况(包括基础知识、学习能力、自我控制能力、情感特点等);

3) 改革要以培养学生的实践能力为中心,体现以“教师为主导、学生为主体”的思想,充分激发学生的主观能动性;

4) 改革的具体措施要具有可操作性;

5) 改革的过程是可控的,不能出现失控的状态,导致课程无法进行下去;

6) 改革结果是可检核的。

基于以上课程改革指导思想,结合我院实际情况,C语言课程改革工作主要从课程内容改革,教学模式改革、教学组织形式改革、课程考核办法改革、配套教学资源建设等五个方面展开,改革的具体思路是:

1) 改革教学内容,引入综合案例,突出实践,做到核心知识点打透;

2) 改革教学模式,采取案例引导式教学模式,使教学过程更加符合学生的心理认知规律,做到循序渐进,逐步深入;

3) 改革教学组织形式,实施分组教学,加强学生的协作学习;

4) 改革课程考核办法,引入机考,实施教考分离,使考核能真实地反映出学生的综合能力,促进学生主动学习;

5) 加快配套立体教学资源包的开发,特别是电子资源和网络平台的开发,为学生自主学习提供有力的支持。

通过这几个方面的改革,切实提高学生的实践动手能力,激发学生主动学习的积极性,从而达到C语言课程的目标,即培养学生读程序、调试程序、写(仿照)程序的能力以及规范性编程的能力,使学生掌握程序设计的基本思想和方法,初步培养学生分析问题和解决问题的能力。

3课程改革的具体措施

3.1改革课程内容,突出精讲多练

(1) 对知识点进行分类

课程内容的合理调整是C语言课程改革的核心,围绕专业培养目标,根据企业对学生能力的要求,以“理论够用,强化实践”和“精讲多练”为原则,在课程内容上放弃过度追求C语言知识点本身的系统化和细节化,集中精力于本课程的核心知识点,对于一些不重要、不常用的知识点略讲或让学生课下自学。

具体地说,将C语言的知识点划分为A、B、C三类。A类为“应会”知识点,是学生必须掌握的核心知识点,教学中要求重点打透,反复练习。B类知识点为“应知”知识点,要求学生对其有一定的了解,教师要在课堂上适当讲解,进行练习。C类知识点为“自学”知识点,有兴趣的学生可在课后自学,教师可根据情况给以个别指导。

(2) 内容模块化

整个教学内容分为四大能力模块,每个模块都制定了明确的学习目标,模块的划分如表1所示。

基础能力模块以较快的速度,让学生接触程序基本结构、数据类型、程序设计的三种基本结构、函数等编程基本概念,而不去过分追求知识的系统化和细节化。

初级应用能力模块引入数组和字符串的知识,重点讲解如何使用数组和字符串,强调知识的应用,并巩固练习第一阶段的分支和循环等知识。

高级应用能力模块引入更复杂的构造类型D结构体,让学生掌握如何用结构体数组来解决较复杂的实际问题,并能够举一反三,解决其他相近的实际问题。

综合应用能力模块引入指针和链表,通过链表的操作,让学生掌握指针的基本使用方法,和如何利用指针来进行复杂操作的思想。最后将指针和数组做函数参数进行对比,让学生进一步理解函数中参数传递的问题。

(3) 引入综合案例

每个能力模块都有配套的综合性案例,这些案例覆盖了C语言课程的所有核心知识点,贯穿整个C语言教学。学生通过开发综合案例,能够将知识点融会贯通,达到学以致用的目的。

案例的设计十分关键,要由易到难,由简到繁,能够体现知识的循序渐进,符合学生的认知规律。“计算器”案例是一个“轻量级”的小案例,旨在让学生快速入门,掌握程序基本结构,初步理解函数的概念。对于“学生成绩管理系统”案例,则根据知识点的前后连续性关系,分成复杂程度不同的三个版本,后一版本均在前一版本的基础上进行扩展和完善,使其功能逐渐增强。每个综合案例又拆分成若干个小模块,每个小模块覆盖若干个核心知识点,这些小模块供教师在课堂上作为引出核心知识点的引例,进行讲解、分析。为便于学生学习,我们还设计了一个与“学生成绩管理系统”案例功能相近的案例―“图书信息管理系统”案例,供学生在课后模仿完成。

案例与教学内容的对应关系如表1所示。

(4) 精心设计实践教学环节

C语言是一门实践性很强的课程,我们针对该课程的工程性和应用性,精心设计实践教学环节,注重实验、实训、课程设计的完整性、实践性,在内容的设计上突出可操作性、技能性和探索性,使实践教学环节内容与理论课程内容能够有机结合。C语言实践教学环节包括随堂实训/实验和课程设计两个部分。

篇6

关键词:教学改革;C程序设计语言;教学探讨

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2014)03-0589-02

1 概述

目前,C语言程序设计课程几乎涉及了高等院校的所有专业,是各类专业学生必修的一门计算机基础课程。重庆邮电大学的C语言程序设计课程从1994年起就作为管文类专业学生的公共必修课程。对于管文类专业的学生来说,通过该课程学习,可以提高学生的计算机思维方式,为学生用计算机语言编程解决实际问题提供了思路和方法,为后续计算机相关理论和实践教学课程打下基础。同时,它也是计算机二级等级考试所要求的考试内容之一。

2 存在问题

2.1 专业复杂、多样化

管文类专业C语言程序设计课程涉及的学生专业复杂、多样化,包括信息管理与信息系统专业、电子商务专业、经济学专业、工商管理专业、会计专业、工程管理专业、外语专业、法律专业、体育专业等多种专业。不同专业的学生计算机水平参差不齐。信息管理与信息系统专业和电子商务专业的学生计算机水平稍微好一些,学习起来容易一些。外语专业、法律专业和体育专业的学生计算机水平相对薄弱些,而且不需要必须过计算机二级等级考试,因此这些专业的同学学习积极性相对差一点,学习起来稍微困难一些。

2.2 教学计划不合理

管文类专业C语言程序设计课程教学计划设置不合理。不管是什么专业的学生,C语言程序设计课程学时都是48学时(理论32学时+上机16学时),而且统一命题、考试,没有考虑学生专业的复杂、多样化。

2.3 学生学习积极性不高

就管文类专业学生来讲,绝大多数学生学习C语言程序设计的目的在于考证(计算机二级等级考试),只停留在学习语言本身,考过了就仍到一边,再也没有用了,根本没有设计的能力,由于管文类专业学生缺乏计算机知识,教师在授课时也只能讲些浅显的知识,很难培养程序设计能力。因而,导致学生学习积极性不高。

2.4 课堂教学与实验教学脱节

C语言程序设计课堂教学由一位老师担任,而实验教学由实验室老师承担。从而,理论老师不知道学生实验环节的情况,而实验老师也不考虑理论教学的进度,导致课堂教学与实验教学脱节。

3 对策及建议

3.1 合理安排教学计划

针对不同专业群设置不同的教学计划。对于偏计算机技术方面的信息管理与信息系统专业和电子商务专业,单独设置64学时(理论48学时+上机16学时),独立命题考试。其他专业48学时(理论32学时+上机16学时)。其中,对于计算机水平相对薄弱的外语专业、法律专业和体育专业的学生,由于不需要过计算机二级等级考试,因而也单独命题考试。

3.2 激发和增强学生的学习积极性

兴趣是最好的老师,学习兴趣是学生积极主动学习的直接动力。在第一节课就让学生明确C语言学习的目的,明白C语言的重要性和实用性。可以适当调整教学内容,增加有趣的游戏实例教学,例如“猜数字游戏”、“石头、剪刀、布游戏”。从而激发和增强学生的学习积极性。

3.3 课堂教学与实验教学相结合

改变原有的课堂教学与实验教学方式,课堂和实验教学都由一位任课老师担任,避免课堂教学与实验教学脱机。另外,组成实验小组,相互讨论,学习成绩好的、动手能力强的同学帮助带动相对弱一些的同学。

4 结论

管文类专业C语言程序设计课程由于涉及的学生专业多,各专业学生计算机水平参差不齐,因而教学相对困难,遇到的问题颇多。为了提高该课程的教学效果、学生的学习积极性,提高学生利用计算机解决实际问题的能力,专门对管文类专业C语言程序设计课程进行改革,取得了一定效果。同时,对其他课程的教学改革有一定的指导意义。

参考文献:

[1] 牛熠,董阿妮,吴燕玲.C语言教学中学生兴趣的培养[J].东莞理工学院学报,2006(1):110-113.

篇7

关键词:C语言;教学方式;教学管理

作者简介:文学志(1970-),男,湖南津市人,南京信息工程大学计算机与软件学院,副教授;方巍(1975-),男,安徽黄山人,南京信息工程大学计算机与软件学院,副教授,(江苏 南京 210044)

基金项目:本文系2012年南京信息工程大学教学建设与改革提升工程一般教改项目(项目编号:12JY038)的研究成果。

中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2013)31-0077-02

“C语言程序设计”课程是各高校普遍开设的一门课程,是学生进校后接触的第一门计算机程序设计语言课,也是高校学生参加计算机二级等级考试中选择最多的编程语言。学习这门课程,可以掌握程序设计的基本方法并逐步形成正确的程序设计思想,从而为学习后续课程打下坚实的基础,也为利用计算机解决实际问题提供了一种有效的编程工具。

但在近几年的教学实践中发现:学生们普遍认为这门课程内容太抽象,学习难度大,期末考试不及格率高,学生们不能学以致用的现象也十分严重;与此同时,老师们也认为该门课程内容多,教学时数有限,学生自学能力差,教学效果不好。那么,如何解决“C语言程序设计”教学过程中教师难教、学生难学的问题,很多教师在这方面进行了有益的探索与研究,提出了一些比较好的方法,比如加强学生上机实践、灵活设置考核方式;[1]加强算法和数据结构教学;[2]运用“最近发展区”理论来提高C语言教学效果。[3]本文主要从教学方式、教学管理两个方面探讨提高C语言教学效果的方法。

一、改进教学方式

1.改变传统的教学方式

传统的课堂教学过多地强调语法知识的教学,极大地限制了学生编程思维的形成和编程能力的提高,所学到的语法知识也不能转化为实际能力,这就是学生不爱学、学不好,即使学会了语法也不能进行灵活编程的根本原因,因此,有必要改变传统的教学方式。在整个教学过程中,教师应遵循启发式教学原则,通过各种教学方式和手段激发学生的学习欲望,让学生积极投入到学习活动中,学会发现问题、提出问题,并逐步解决问题。其中,最关键的是在教学中应尝试多与学生一起探讨,共同解决问题,比如与学生一起来分析待求解的问题,绘制解决问题的算法流程图,根据流程图与学生共同完成程序代码编写,让学生在启发下思考,在思考中解决问题,从而掌握分析问题、解决问题的方法。

2.重“算法”轻“语言”

目前C语言教学中一般都包含有概述、数据类型、运算符和表达式、算法和控制语句、函数、数组、指针、预编译命令、结构体和共用体、文件这些内容。如果按部就班进行讲授,在规定的教学时数内显然无法完成教学任务。因而,有必要对讲授内容进行精心组织,既要确保完成规定的教学任务,又要保证教学质量。具体到对教学内容的组织上,应本着“强化算法,弱化语言”的原则,即把解题思路、方法和步骤(算法)当做授课的重点,从而让学生明白如何分析并解决实际问题,逐渐培养学生进行程序设计的正确思维模式。而那些容易让人感觉枯燥、不易理解的语法知识则通过例题引出,在讲解语法时只讲解最基本的用法,其他用法随着学习的深入在以后的问题中再逐步呈现给学生。

3.合理运用类比法

类比法属于讲授教学方法的一种,即借助于两类不同本质事物之间的相似性,通过比较,形象地将一种已经熟悉或掌握的特殊对象的知识推移到另一种新的特殊对象上去的推理手段,也是教学中创设真实情景的有效工具之一。[4]从认知学角度来看,是学生把熟悉的思维方式平移转化到接受新的知识点上的过程,即用熟悉的生活实例来理解并消化所学概念。在教学中适当运用类比法,可以帮助学生快速、准确地理解知识点,提高学习的兴趣和积极性。比如:指针、指针变量和普通变量之间的区别,有的学生理解比较困难。指针就是变量所对应的存储空间的地址,即指针就是地址;指针变量就是专门用于存放地址(指针)的变量,而普通变量就是用来存放数值或字符的变量。但是如果用类比方法讲解,学生理解起来就容易多了。假设有一个装钱的A箱子被锁起来,该箱子有一把钥匙,需要取钱时,有两种典型的途径:第一种途径,直接拿A箱子钥匙打开箱子取钱;第二种途径,为安全起见,把A箱子钥匙放进B箱子中锁起来,则要取A箱子里的钱,需要先找到B箱子的钥匙,打开B箱子,取出A箱子的钥匙,再打开A箱子,取出A箱子里的钱。在这个过程中,把箱子比作存储空间,相当于变量,把钥匙比作指针,专门用来存放钥匙的箱子比作指针变量,而专门用来存放钱币的箱子比作普通变量。这样,三者的区别一目了然。

4.培养良好的程序设计习惯

良好的编程习惯有助于提高解决问题的工作效率。在这个过程中,要做好以下三件事:第一,良好的解决问题习惯。对于要解决的问题,遵循以下四个步骤:一是分析问题,明确做什么;二是给出求解问题的算法流程图;三是根据流程图编写程序代码;四是运行程序,输出最终结果。教师在课堂上一定要与学生共同践行这四个基本步骤。第二,良好的编码习惯。规范的代码,阅读起来给人以赏心悦目的感觉。对于C代码,应采用缩进格式来编写:比如函数体或语句体应缩进4个空格,运算符左右两边空一个空格,逗号分隔符右边应空一格等等。教师在课堂上与学生一定要严格按此规范编辑代码。第三,良好的输入、输出习惯。有的学生只关注问题的解决,不关心界面的友好性问题,导致运行时连自己都不知道运行界面上到底要求做什么,输出的值代表什么含义。因此务必要求学生程序中凡是有输入变量值的语句,一定要事先给出输入提示,凡是有输出值的语句,一定要给出该值所表示的含义。例如有这样一个例子:编程求1+2+3+...+n的和。结果出现了很多如下所示的编程样式:

#include

void main()

{

int i,n,sum;

scanf(“%d”,&n);

sum = 0;

for(i = 1; i

sum += i;

printf(“%d\n”,sum);

}

运行时光标在屏幕上闪烁,没有任何提示,不知道要做什么,输入一个值后,得到的输出结果也不知道代表什么含义,这不是一个好的输入、输出编程习惯,将以上程序改写如下:

#include

void main ()

{

int i,n,sum;

printf(“Input a integer n(n>1): ”);

scanf(“%d”,&n);

sum = 0;

for(i = 1; i

{

sum += i;

if (i != n)

printf (“%d + ”,i);

else

printf(“%d = %d\n”,i,sum);

}

}

可以发现,改写后的程序运行界面表达的意思非常清楚,既表明了要求输入什么样的整数值n,又表达了对输入的整数值做了什么样的处理。

此外,对于碰到的问题,要让学生养成先在心底这样问自己的习惯:这个问题能否编写程序来验证或解决?曾经有学生提问:若x和n均为int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为多少?n的值为多少?这个问题本身不难,主要是考查学生对于复合赋值运算符和自加运算符的计算规则是否理解清楚了。像这样的问题,要让学生自然而然地想到通过自己编程上机运行来检验自己的理解是否正确:

#include

void main()

{

int x = 5,n = 5;

x += n++;

printf(“x=%d,n= %d\n”,x,n);

}

如果学生自己理解的结果与上机运行结果不一致,应该通过调试跟踪程序分析问题出在哪里。

二、教学管理

课堂管理是保证教学质量的前提,“利益攸关法”可显著提高课堂管理效果。所谓利益攸关法,就是指在分配任务时,将该任务与完成人员的利益得失挂钩,从而确保该任务保质保量圆满完成。具体到C语言教学中,关系所有学生共同利益的是期末考试总评成绩。C语言课程的期末考试总评成绩一般由平时成绩、期中考试成绩和期末考试成绩这三个部分按比例计算得到,其中平时成绩由课堂考勤、作业、实验报告、上机这几个部分按比例产生。利益攸关法主要应用在平时成绩这个环节。在上C语言的第一节课时,教师务必将与学生成绩挂钩的规定给学生讲解清楚。比如上课点名之后到课的,一律按旷课处理,旷一次课扣除平时成绩1分;作业和实验报告不按时交的,一律按未交作业处理,缺一次作业或实验报告扣除平时成绩1分;上课主动回答老师提出问题的,无论对与错,平时成绩加1分;上机课,在规定的时间内完成老师布置任务的,平时成绩加1分,否则扣除1分。同时,要明确告诉学生,只要按老师规定的要求去做,平时成绩拿满分应该问题不大,以消除学生的畏难心理。这个方法要求教师在执行时一定要本着客观、公正、公平的原则对待学生。

三、教学效果

通过执行以上措施前后的对比发现,以前所出现的学生迟到、旷课、缺交作业或实验报告、上机玩游戏的现象得到了很好的扭转。课堂上大家积极主动回答老师提出的问题,在实验课上,大多数同学都能够完成老师布置的实验内容,学生普遍反映学习效果较好。

四、结语

笔者在C语言教学多年经验的基础上,从教学方式、教学管理两个方面探讨了提高C语言教学效果的方法,并在实际教学中获得较好的成果,教学质量有明显提高。随着教学对象和社会需要的人才标准不断变化,如何探索针对性更强、效果更佳的教学方法是摆在教师面前的重要课题。

参考文献:

[1]谢竞博.C语言程序设计教学中的问题及改革建议[J].重庆邮电大学学报(社会科学版),2008,20(2):137-140.

[2]金华,崔荣一.“C语言程序设计”教学研究[J].计算机教育,

2012,(14):60-62.

篇8

Li Bo

(Qinhuangdao Institute of Technology,Qinhuangdao 066100,China)

摘要: 本文根据高职学生的特点,针对C语言课程难教、难学的现象,对教学内容、教学方法、教学手段和教学评价等方面作了大胆的改革尝试。实践证明,这些方法起到了事半功倍的作用。

Abstract: According to the characteristics of students in higher vocational college, aiming at the phenomenon that it is difficult to teach and learn the C language program, the paper attempts to reform the teaching content, teaching methods, teaching means and teaching evaluation. The practice proves that these methods play a multiplier effect.

关键词: 高职 C语言 教学方法

Key words: higher vocational college; C language; teaching methods

中图分类号:G42文献标识码:A文章编号:1006-4311(2011)21-0242-02

0引言

高职教育最大的特点就是突出职业性和技术性,使学生熟练掌握生产基础知识和基本技能,并能运用这些知识和技巧解决工作中的实际问题,把所学的知识以最快的方式转化成生产力。所以在教学过程中不但要重视理论教学还要重视实践能力的培养。高职的学生由于英语和数学的基础比较薄弱,学习兴趣不高,所以在教学的过程中要充分调动学生学习的主动性,把知识点由浅入深,循序渐进的让他们逐步掌握。

C语言以其功能齐全、表达能力丰富、使用灵活方便、目标程序效率高、可移植性好、可直接对硬件进行操作等众多优点,而备受青睐。很多高校将C语言作为计算机及相关专业的重要专业基础课,许多理工科专业将它作为计算机公共基础课来开设。作为基础课,旨在培养学生程序设计的思想、基本方法和手段,为《数据结构》、《操作系统》、《算法》等后续课程的学习打下坚实的基础。C语言是培养学生程序设计能力的开端,形成初步的基本程序设计思想和观念,培养初步的分析和解决问题的能力。对于学生将来是否能够成为一个合格或优秀计算机专业人才,起着重要作用。但C语言较之于现在流行的可视化编程,界面枯燥,语法烦琐,学生接受起来比较困难。学生即使是死记硬背的把语法弄懂了,书上例题中的每一个语句弄懂了,自己动手编程时还是无从下手。

所以如何在有限的学时内,让对计算机一无所知的大一新生能够掌握C语言基本原理的同时,能熟练运用程序设计的方法分析问题、解决问题,成为教学工作的重要组成部分。针对以上的种种状况,作者在教学的过程中进行了大胆的改革,取得了良好的效果。

1改革手段

1.1 教学内容调整――适当取舍和整合大多数C语言教材内容是按照 “数据类型-基本结构-数组-函数-指针-文件”这样的顺序进行知识点编排,内容详尽全面、讲解细致[1]。如果教师在课程的起始阶段,先对数据类型、运算符和表达式做一详细的讲解,很容易陷入枯燥的语法泥潭。这些知识点极为琐碎,需要花费大量时间,许多学生就是在这个阶段就对C语言的学习失去了耐心和兴趣。

为了激发学生的学习兴趣,培养学生综合解题能力,对课堂教学内容进行适当的取舍和整合。

1.1.1 整合 适当的调整知识点的学习顺序,增强知识点之间的联系,让学生直接把知识转化成能力。但在教材整合要注重知识的渐进性,符合学生的认知规律。比如,讲解整型数据的时候可以和该类型的输入输出语句的格式说明相结合,通过两个数求最大值的例子,引入if选择结构、关系运算符和关系表达式、流程图的画法的讲解。通过判断一个数的奇偶的例子,引入算术运算符和算术表达式、等于运算符的讲解。这样就把书上的数据类型、运算符和表达式、顺序结构和选择结构四章的内容打乱、重组。

1.1.2 取舍与其把所有内容通讲,学生对每个知识点印象都不深刻,还不如挑一些内容精讲,让学生熟练掌握这些知识。对于未讲的内容,可以通过循序渐进的方式,在例题或作业中逐步的加入。

1.2 教学方法的改革――采用案例教学法传统教学方式是以教师和教材为中心,从书本到书本,从概念到概念,忽视了对学生潜能的开发,导致学生理论与实践的脱节。而案例教学法十分注重学生的主动性的发挥,注重引导学生通过案例分析解决实际问题。

在课堂上从问题入手,每次课结束前,都给学生留一个和下次课要讲解内容相关的案例。通过教师和学生一起分析讨论,由案例引出新的知识点,这样可以引导学生课后自己看书,在书上找到相关知识点的讲解,并运用该知识点解决问题。让学生带着问题进行下次课课前预习。每次课上课前,老师根据案例的情景要求讲解新知识点,再通过一系列精心设计的具有实用性和趣味性的案例,加深学生的理解,能灵活运用这些知识。放弃过度追求语言知识本身的系统化和细节化的做法,可以调动学生学习的积极性和主动性,培养自主学习能力。

1.3 教学手段的改革多媒体教学以其可以实时、高效、快速、有效地收集、处理、加工和传播教育信息,提高教育信息化程度,丰富教学内容,优化课堂教学,充分调动学生的学习积极性等优势特点被广泛应用。目前在教学中使用得最多的是多媒体课件的形式。但多媒体教学不是万能的,在使用过程中还是会出现一些问题的。比如:①多媒体课件内容一成不变,知识会出现之后现象;②课件信息量大,超出学生单位时间内接受知识的能力;③课件流程固定,缺少灵活性,缺少与学生的互动[2]。而传统教学方法利用黑板、粉笔、教案等,在教室进行知识的教授。传统教学方法由于片面地强调和突出教师的主导作用,片面地强调知识的传授与灌输,忽视了学生创新能力的培养。

1.3.1 在理论教学过程中,作者采用多媒体教学和黑板教学相结合的方式在对典型例题分析和相关知识点讲解时采用多媒体教学。课件中适当设置一些动画,帮助学生理解比较抽象的知识。分析完问题,找两名同学到黑板上写出算法的具体实现代码,另外一名同学利用计算机写出代码,并且调试运行,其他同学在座位上写程序。这样可以调动学生的学习积极性,培养学生设计数据结构和算法的能力,用C语言实现算法描述的能力,编译与调试的能力,测试程序正常运行的能力。这些能力是否能够形成,对于学生将来是否能够成为一个合格的计算机专业人才,起着直观的作用[3]。

教师在学生写程序的过程中,可以对基础薄弱的同学给予重点辅导,尽量做到在课堂上不落下任何一个学生。

最后,教师要对黑板上和计算机上的程序给予讲解,评判优劣、吸收优点、修改错误,对程序进行优化,并对例题进行扩展和延伸。

1.3.2 在实践教学过程中,加强监督和辅导计算机学科是一门实践性很强的学科,只“听”、“读”、“写”是远远不够的。在程序开发过程中,程序调试的工作量要比编程大得多,上机调试程序是一个不可缺少的重要环节。学生上机之前不清楚的布置作业内容,没有明确上机目的,他们上机时仅会把老师上课所讲例题和书上的例题的程序输入到计算机里,验证程序的正确性,不会具体的分析算法和语法结构。如果这样,上机课的实践目的没有达到。所以教师在提高理论教学质量的同时,必须加强对实践的监督和辅导。

实践课内容主要分成两部分:①理论课的例题。②针对理论课所讲的内容,布置两到三道有特点的作业题目。学习初期,学生对知识点理解还不到位,难以正确和灵活的运用,教师可以给学生布置一个不完整的程序,让学生改错或填空,这样可以避免学生因为写不出程序而有挫折感。

在实践课上,教师帮助学生及时指出作业中存在的问题。对于个别问题单独辅导,普遍性问题集中讲解。根据学生实践中所出现的问题,教师可以适当的调整理论课的授课计划和授课内容,以满足学生知识学习的需要。这不仅可以增强学生和教师之间的沟通,也可提高学生灵活运用课程知识的能力,提高学生在编程、上机操作、程序调试与测试的能力。

1.3.3 在课下,充分利用网络资源,建立论坛。把一些课上由于时间限制无法讲解分析的题目写在论坛里,让学生充分发挥创造力,提出解决问题的方法及具体用C语言代码来实现。学生通过讨论分析,不但可以提高分析问题和解决问题的能力,还可以提高创新能力。这种做法极大的激发了学生的学习积极性,使学生扩展了解题思路。在多种算法进行对比时,加深了学生对所学程序和算法的理解,也丰富了教学内容。

1.4 考核手段的改革以往C语言的考核是由平时成绩和期末考试成绩两部分组成。期末考试采用上机或理论中的一种。采用单一考试方式,不能完全反应一个学生的实际学习效果。所以考核分为三部分:平时成绩(40%)、上机考试成绩(30%)和理论考试成绩(30%)。这样可以通过成绩真实的反映出学生动手能力和知识水平。

2结束语

通过以上改革,学生的理论水平和实践能力大大提高,极大的调动了学生的学习积极性。他们会积极主动地在网络上搜索课本以外的C语言相关的知识,进行自主学习。学生综合能力的增强,有助于提高学生的就业率。

参考文献:

[1]谭浩强.C语言程序设计教程[M].北京:清华大学出版社,2007.

篇9

关键词 建构主义 ACM平台 C语言实验课程 程序设计

中图分类号:G424 文献标识码:A DOI:10.16400/ki.kjdkz.2016.01.064

C Language Experimental Course Teaching

Practice Based on ARM Platform

CHEN Rongqin, WANG Aidong, YING Jianjian

Abstract Constructivism teaching theory as the guiding ideology, "Taizhou University online program design comprehensive experimental platform" for the C language experimental curriculum bridges, breaking the traditional experimental teaching curriculum test several aspects of the drawbacks, the introduction of computers in all aspects of automatic evaluation method teaching, to put into traditional "teacher-centered" teaching mode "student-centered" self-learning process interesting and competitive, effectively combine inside and outside process of teaching and examination courses, and teaching efficiency is greatly improved.

Key words constructivism; ACM platform; C Language experimental course; program design; self learning

1 理论背景

建立在建构主义教学理论基础上并具有较强指导意义的教学方法有目标驱动教学法、任务驱动教学法和项目驱动教学法。目标驱动教学法是以目标为主线,学生为中心、教师为主导的一种教学方法。严惠新(2012)叙述了目标驱动法在“计算机基础”教学过程的设计原则和实施过程。张红波等(2011)以课程知识应用、企业需求和学生就业相关需求为目标,结合学生主观感受的体验式课程教学模式,充分调动了学生的学习积极性,有效利用了课堂时间,十分值得借鉴。同样,任务驱动教学法也颇受欢迎。所谓任务驱动教学法,就是以学生为中心,以任务为驱动的一种探究性学习和协作学习模式。其教学理念就是针对教学目标,教师设计教学任务,将所要学的概念、技能蕴含在所要解决的任务之中。黄美琼(2012)分析了“任务驱动,案列教学”教学法的实施方法和优势,并进行了教学设计举例。此外,(卞琛,2008)认为项目驱动教学法也是一种探究式教学模式,就是让学生在一个典型的信息处理的“项目”的驱动下,展开教学活动。引导学生由简到繁、由易到难、循序渐进地完成一系列“项目”,从而得到清晰的思路、方法和知识的脉络。胡孟杰等(2013) 针对程序设计课程传统教学中存在的问题,以强化实践能力和创新能力培养为目标,探索项目驱动教学法在程序设计课程教学中的运用。总之,三种理论殊途同归,都突出学生的主体性地位,强调学生分析问题和解决问题的能力,对C语言实验课程的教学都具有实质性的指导意义。

2 传统实验课教学模式的弊端和分析

通过对C语言实验课程教学的初步调查,我们发现目前大部分C语言实验课程教学还是采用传统的实验教学模式,这种教学模式普遍存在以下几个方面的问题。

2.1 “教”的模式落后

(1)教师布置的实验任务往往是实验指导书上的内容,学生容易依样画葫芦完成实验,缺少对问题的分析以及实验框架设计过程,对后续的项目设计能力培养尤为不利。(2)实验课程通常只要求完成规定题目,实验数目和题目数目均受到限制,由此造成了学生“代码量”严重不足,限制了程序设计能力的提高。(3)教师之间“各自为政”缺乏信息共享,没有利用好现有的优质资源和先进的教学方法,工作量大,但教学效果差。(4)教师除了在课堂上教学外,无法在课余时间监督和管理学生的学习状况。

篇10

摘 要:《C语言程序设计》是计算机专业的基础课,为后继课程《数据结构》等的前导课程,也是其他专业的必修课程,同时是国家计算机考试中的重点内容。针对普遍认为该课程教师难教、学生难学的问题,本文从教学内容、教学手段、教学方法等方面介绍了对此课程进行的一系列改革。经过实践证明,在教学改革实施后,不仅有利于培养学生对该门课程的学习兴趣,而且对学生分析问题与解决问题的能力也有了显著提高,取得了良好的教学效果。

关键词:C语言程序设计;教学内容;教学手段;教学方法

作者简介:李力东,女,(1974―),硕士,现在吉林省长春市吉林建筑工程学院从事计算机教学工作,讲师,研究方向计算机软件。

1、《C语言程序设计》课程介绍

C 语言是计算机程序设计领域的主流语言,它既具有高级语言的优点,又具有低级语言的特点,是一门承上启下的课程。通过学习,使学生能够比较熟练地掌握C语言的语法规则及程序设计的基本方法与编程技巧,了解进行科学计算的一般思路,培养学生独立思考、分析、处理C语言程序设计问题,能在计算机上调试、运行程序,具有一定的查错、改错能力,做到理论和实践紧密结合,并初步积累编程经验,自己解决一些程序设计问题,为进一步学习和应用计算机打下基础。C 语言是面向对象程序设计C++ 的先修课程,也是一些应用 C语言环境的相关课程如《数据结构》的先修课程,因此 C 语言在计算机专业人才的培养过程中占有重要地位。

2、教学中的问题

在《C语言程序设计》课程教学中,许多教师和学生都认为C语言涉及的概念比较复杂,规则繁多,使用灵活,极易出错,教师授课和学生学习的过程中不同程度产生畏难心理[1]。现在大多数高校将该课程设置为计算机专业的学生入校后最先学习的专业基础课,对于没有任何准备的学生来说,学习起来十分困难。C语言的重点内容包括:选择和循环语句、数组应用、函数的应用、指针的应用等。这些内容逐层深入,联系紧密,前面有一个地方概念不清都会导致其后续内容无法正确理解。

3、教学的改革

① 教学内容的改革

大多数的C语言教材,其教学内容都包括C语言基础知识(数据类型、运算符和表达式)、三种程序控制结构、数组、函数、指针、文件及其应用等。教材在内容上,按照逻辑方式进行归类,但是难点仍然比较集中,各章节跨度较大。在各章节中有的例子不典型,甚至涉及到后续内容,学生理解起来难度较大,适用性不强。

本着“深入浅出,突出实用”的教学思想,合理的对教学内容重新进行归纳,将难点分割,达到逐级递增的目的。例如C语言数据类型、运算符、表达式种类繁多,以往放在一起利用几学时统一讲授时,学生理解起来难度较大,可以采用将算术型的数据类型、运算符以及相关的表达式先介绍,即将相关内容联系在一起讲解,使知识不分散,利于掌握。然后再采用这种方式介绍其他数据类型。接下来教学生编写简单、实用的C程序,由此引入基本输入、输出函数循序渐进。这样难度减小了,学习积极性也提高了。此外,语言的叙述也对问题的理解很重要,比如,学习指针概念时,可以将A房间的钥匙放在B房间里,若要取A房间里的物品,就需要先打开B房间,取出A钥匙,再打开A房间,取出A房间的物品,这种方式讲述“间接存取”的概念。学生理解起来简单,记忆深刻。

② 教学手段的改革

在教学过程中,适当运用多媒体技术辅助教学,有利于激发学生的学习兴趣,能发展学生的主体能力;同时由于多媒体信息量大,也能够优化教学过程[2]。对于C语言的数据类型、变量类型、运算符、程序结构等,其定义较多,没有多少逻辑推理,采用多媒体教学,避免使用传统板书形式。对于有些程序,如冒泡法排序,可以借助多媒体的优势,制作动态效果,将问题层层剖析、深入,利于学生理解掌握,摒弃了板书的枯燥性。

③ 教学方法的改革

归纳教学法:C语言有很多的定义、语法规则,使用灵活、难以记忆。同时这些定义和语法规则又有许多相似之处,如printf()与scanf()函数,有很多语法规则是一样的,归纳之后,只要记住其中一个,另一个也迎刃而解了。

讨论教学法:教学过程中,充分发挥学生的积极性与主动性是非常重要的。在课前给学生布置题目,让学生利用课余时间去思考、收集资料,然后在课堂上畅所欲言的讨论。学生获得课外知识的同时,也促进教学内容的改革。

实践教学法:学习程序设计课程的目的是掌握设计思路,最终编写程序。因此解题思路的培养很重要。让学生从简单的程序编写开始,然后逐步深入。鼓励学生使用不同的方法解题,拓宽思路。

综合考核法:考核的方式除了传统的笔试外,还要进行编写程序和调试程序。两者结合给出综合评定,在客观反映学生学习情况的同时,也能促进学生学习达到良好的教学效果。

4、结论

无论是针对哪个学科,哪门课程的教学改革都是一个复杂的系统工程,涉及到诸多方面,在以学生为主体的教学模式下,采用多种教学方法的教学实践表明,将有助于学生培养良好学习习惯,激发学习兴趣,提高学习效率和成绩。本文针对本课程的介绍,教学中出现的问题入手,从教学内容、教学手段、教学方法几方面进行了教学改革,在《C语言程序设计》课程教学实践中进行了运用,取得了良好的教学效果。

参考文献: