HI,欢迎来到学术之家股权代码  102064
0
首页 精品范文 c语言程序设计

c语言程序设计

时间:2022-07-22 08:28:44

开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇c语言程序设计,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。

c语言程序设计

第1篇

钟 实

(江西科技学院)

[摘 要]C语言程序设计课程是计算机专业教育的重要组成部分。将探究教学引入C语言程序设计教学中,不仅可以提高学生学习的兴趣,调动教师教学的

热情,也丰富了探究教学的理论与实践。具体分析并探讨了C语言程序设计探究教学的实施目标、实施条件、教学情境的创设、探究形式、教学评价等问题。

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

一、 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.

作者简介

钟实(1986-02)男、民族(汉),籍贯(江西省南昌市),2010毕业于浙江大学

第2篇

关键词:教学内容;教学手段;教学方法;考核方式

C语言是早期最经典、最强大的面向过程的程序设计语言之一。虽然现在面向过程已经全面转向面向对象,但是C本身的中级语言的设计理念以及对现有VC/C#等语言的深刻影响,使其至今仍是程序设计入门的首选语言,也是工科院校计算机专业学生接触的第一门程序设计语言。对于计算机类专业学生来说,一旦掌握了C语言,就可以较为轻松地学习其他任何一种程序设计语言,为后续的面向对象程序设计以及Java程序设计等语言的学习打下基础;对于其他非计算机专业的工科学生来说,比如电子、机电专业来说,该课程为学生用计算机编程解决实际问题提供了方法,是学习单片机技术教学的基础和重要工具。

一、C语言教学中面临的问题

C语言程序设计是一门基于dos操作系统下的面向过程的程序设计语言,随着面向对象语言的开发,C语言在界面交互性上逊色不少,作品上也不如Flash、三维动画效果吸引眼球,难学、难懂、难以应用的课程,对学生越来越缺乏吸引力。针对这种状况笔者认为,更新教育观念、探索新的教学模式才是根本出路。笔者根据多年的教学经验,对C语言程序设计课程从教学内容、教学手段、教学方法、考核方法方面进行了一系列的创新改革。教学内容主要解决如何调动学生积极性,激发学生创新能力,如何提高学生的创新能力、实践能力、研究能力、发现问题和解决问题能力等综合素质;教学方法主要解决如何实现“以人为本”,分层次教育,如何通过引导、启发等方法,激发学生的发散性思维。同时要利用目前课堂和实验教学在培养学生创新能力和实践能力方面的优点,利用大学生实训基地,为学生的创新和实践能力的锻炼和培养提供一个良好的平台。

二、教学内容的创新

课程内容的选取与组织是课程教学改革的基础。人才培养方案对C语言程序设计教学内容进行重新整合,把课程学习划分成培养学生的基本程序设计能力和培养学生的专业程序设计能力两个阶段。

第一阶段安排在大一第一学期,主要针对没有程序设计经验的大一新生,重点讲授C语言的基本知识,包括三种基本结构、数组、函数的概念。在第一阶段教学中,笔者采用案例教学方法结合具体的程序实例,创设情境,引导学生自己总结掌握C语言的基本语法和程序设计的基本方法。第一阶段的学习结束的时候,学生可以具备基本的程序设计能力,独立编写具有初等难度、几十行的程序,并且能够较顺利地完成程序调试与测试。第二阶段教学放在大一第二学期初,针对具备基础程序设计能力的学生,重点培养学生的专业程序设计能力。在第二阶段的教学中,以学生为主体、以教师为引导,采用国家火炬计划河北省软件人才工程实训课程,使学生融会贯通所学知识,完成一个具体的项目,以达到提高学生程序开发能力的目的。迄今为止,学生完成的项目包括“银行储蓄管理系统”“彩票信息查询系统”。教学实践证明,这种理论和实践技能并行的教学模式,更加有助于学生的创新能力的提高,使学生在不断实践中掌握技能,在技能学习中提高基础理论。

三、教学手段的创新

在学习过程中除了发挥教师的引导作用,还需要充分调动学生的参与主动性。在授课期间灵活采用多种教学手段,如:自学、演示、对比、课堂提问、学生演练和讨论等,通过不同方法,寻找创意思维“契机”,安排创意铺垫内容,培育学生的创意萌芽,营造创意环境,引发学生争鸣,为学生提供更多的思维空间,诱发学生的思维灵感。例如,在教学中讲解“循环结构的循环嵌套”的时候,提出马克思手稿中的数学题的案例:伟大的思想家马克思的手稿中有这样一道有趣的数学题:有30个人,其中有男人、女人和小孩。他们在一家饭馆中吃饭,共花费50先令。如果每个男人吃饭要花3先令,女人要花2先令,每个小孩要花1先令,问男人、女人、小孩各多少人?先提出问题,引导学生分析、讨论案例,提问学生运用数学知识完成案例提出的问题需要进行哪些操作,这样学生就会比较有兴趣,课堂气氛就活跃起来。然后帮助学生从案例分析中理解并掌握什么是多重循环,并且如何使用双重循环解决问题,最终完成程序的编写。

在学习的第二阶段采用开放式训练教育方式,利用专题设计和课外指导方式,鼓励学生课外自主进行训练。如:完成的项目“彩票信息查询系统”,教师提出设计方案,学生完成基本功能以后,自己可以对其他功能进行完善。

四、教学方法的创新

课程每个章节内容结构主要由三部分组成:

知识点:介绍本章需要掌握的知识或技术。

应用案例:介绍本章知识应用的案例。

创新训练:针对具体的问题,应用本章技术来完成知识点的应用。

在整个教学过程中,教师采用框架式教学,像建筑工程师修建筑一样,先采用精讲的方式,让学生建立整门课程的知识框架;接着通过案例教学、项目式教学等多种教学方式,让学生逐步去进行细节知识点的填充;最后通过综合训练方式,完成整门课程的学习。

例如,在讲解C语言程序设计中的函数时,搭建出例如综合排序等程序的框架,给学生留出函数,让学生自由开拓思想,独立完成一些小型实例的编程,经过具体知识点的训练后,还要重点进行综合知识的应用训练,开展一系列的创新应用,以达到知识综合运用和培养创新能力的目的。

五、考核方式的创新

传统的C语言程序设计考核模式一般以标准化的笔试题为主,这种考核方式侧重语法知识的考核,忽视编程实践能力的培养。为此,笔者改革传统的考核方式,将考核分为平时实验和期末考核两部分。平时实验成绩考核的是学生每一章知识,实训作业就是在每一章节结束的时候,布置相关的习题,学生利用业余时间编程,并且在实训期间进行调试,调试成功后上传到服务器上。期末考核成绩采用的是教研室开发的上机考试系统。上机考试系统模拟C语言二级考试建立了知识面齐全、题量充足、难易度合理的试题库,采取随机抽题的形式重点考查学生的程序设计能力和程序调试能力。这种考核方式督促学生在平时学习中加强对编程举一反三的实践环节。实践证明,这样不仅能有效培养学生的实践编程能力,还激发了学生动手实践解决问题的兴趣。

总之,经过不断的摸索与实践,通过以上的教学方法与教学手段的改革和实践,不仅提高了学生的学习兴趣,让学生从枯燥无味的语言学习中解放出来,从被动学习走向主动学习,同时也培养了学生分析问题、解决实际问题的能力,充分发掘了学生的创造潜能,锻炼了创新和协作精神。

参考文献:

[1]郭芹.对高职高专计算机专业程序设计教学的思考[J].中国科技信息,2008(1).

第3篇

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

中图分类号:TP312 文献标识码:A DoI: 10.3969/j.issn.1003-6970.2012.05.044

The C Programming Language Teaching Reform and Practice

waNG Zhong-ying

(Computer science department of Shangluo College, Shangluo 726000, China)

【Abstract】C language as human-computer interaction is an important tool, in the IT field is play a decisive role; at the same time, c language is normally It students high-level programming languages, their master degree directly affects the student program literacy and learning interest improve. according to the long term c language program design course teaching experience, combined with the new teaching environment, the paper points out that in the course of the reform in the teaching of some misunderstanding, in view of these problems and how to improve the effect of teaching put forward many suggestions.

【Key words】c language programming design; teaching reform; algorithm

0 引 言

C语言程序设计课程是计算机科学与技术和软件工程等IT类专业的专业必修课程,也是《数据结构》、《算法设计与分析》等其专业核心课程的先修课程。C语言程序设计的水平在很大程度上决定了学生专业基础知识的掌握是否扎实,直接影响到后续课程的学习效果和专业兴趣的培养。为了提高学生的程序设计素质,为后续专业课程的学习打下基础,笔者结合自己长期C语言程序设计课程教学的体会,结合新的教学环境,指出了该门课程教学改革中的一些误区,并对如何提高教学效果提出了许多可行的建议。

1 C语言程序设计教学中的几个误区

1.1 对C语言程序教学的重视程度降低

许多人认为,JAVA、C#等目前行业内普遍采用的高级程序设计语言,相对来说简单易学,源程序可读性强,又有功能强大的集成编辑环境的支持,有利于让学生迅速开发项目,而C语言程序语法复杂,调试困难,开发较大规模的应用程序比较麻烦,所以在人才培养的课程体系中,采用JAVA、C#等高级语言来代替传统的C语言程序。笔者认为,这是一种急功近利的表现。首先是C语言程序的功能同样强大,在较大规模的应用程序尤其是系统程序的开发中有出色的表现,具有易编写程序操纵系统底层的优势,在嵌入式编程中具有不可替代的地位。TIOBE近日公布的2012年4月份的编程语言排行榜中,C语言再次超越JAVA语言重新回到了编程语言的王者地位,这说明具有30多年历史的C语言依然是历久弥新[1]。

1.1 教学学时过度精减

在近几年的高校专业教学改革中,许多院校对课程课时进行了精减。在这个过程中,我们发现有的学校缺乏科学规划,存在许多不合理的地方,如对C语言程序设计课程的学时过分减少就是一个例子。这种现象不仅对提高学生能力的没有起到积极作用,反而影响了学生专业基础能力的培养。C语言程序设计是IT专业学生的第一门程序设计课程,不仅培养学生的对C语言本身的掌握,同时还需要培养学生的程序设计思维以及培养学生对IT行业的兴趣。在这一阶段,没有老师充分的指导往往是不够的。如果学个一知半解,会影响到后续课程如数据结构、操作系统等学习,进而失去IT行业的兴趣。

对于C语言程序设计课程的学时数,不同的院校应该根据学生的实际情况来确定,对学习能力强的学生可以精减课内学时,采用案例驱动、任务驱动的方式指导学生在课外自主学习;对于学习能力一般的学生,则需要教师多指导。总之,无论对于哪类学生,只要是IT类相关专业,都需要让学生较扎实地掌握这门课程。

第4篇

关键词:《C语言程序设计》课程;教与学;方法;探讨

中图分类号:G642文献标识码:A文章编号:1009-3044(2011)15-3610-02

《C语言程序设计》是目前世界上十分流行、使用最为广泛的高级程序设计语言,也是计算机软、硬件相关专业的基础课程;并且学生《C语言程序设计》能力的强弱,直接影响他们后续专业基础课和专业课的学习。该课程在计算机教学中的重要性是不言而喻的。

1 高职院校《C语言程序设计》课程教与学的现状

在从事计算机及相关专业基础课的教学过程中,发现语言课是学生学得最差、老师教得最辛苦的一门课程。根据专业教学计划,计算机应用、计算机网络、应用电子等专业开设了《C语言程序设计》课程,一般设置在二年级。从课程设置的角度来说,经过知识的积累和思维的锻炼,学生在这个阶段应该具备了学习一门基础语言课的能力。按正常教学规律来讲,在教师与学生的共同努力下是可以学好这门课程的,但实际情况确不尽人意。从多年实际教学经历来看,制约因素主要有两点:一是学生的数学基础差,而教材编排和例题分析与数学知识联系过于紧密,导致学生觉得难学;二是因为计算机编程使用英文,一些学生因英语学习的失败心理,觉得计算机语言是门高深莫测的课程,还没有上课就认为难学,而职业院校的部分学生学习不刻苦的现象,进一步导致教学过程中存在更多的障碍。针对这些情况,我认为要学好《C语言程序设计》课程,克服这两个障碍势在必然。

2 教师如何上好《C语言程序设计》课程

2.1 仔细领会教学大纲,全面深入教材改革

教师深入分析教学大纲,在全面了解学生的数学基础知识状况的前提下,根据大纲制定好教学计划。将教材中涉及到学生未掌握的数学知识方面的例题进行更换,避免因数学知识问题形成教学障碍。例如在讲多分支条件语句的应用中,教材普遍采用一元二次方程求解为例来说明,但一元二次方程的求解对于有些学生来说,虚数是一个知识障碍,可以想象得到,他们会学得一头雾水,教学效果自然就差。还有“输入三角形的三条边长,求三角形的面积。”的例题中,先要判断三条边是否能够组成三角形,再利用海轮公式计算面积,但海轮公式大部分学生都不清楚。这些例题就形成一个本末倒置的结果,为什么不选择其它的例题来分析呢?在后续的例题中,“根据成绩分数,输出等级。”,问题适当地简化,效果就很不错,还可以和后续的SWITCH语句结合起来教学。选取的例题除了有代表性外,涉及到的知识点也不可忽视,要记住,我们是在学习《C语言程序设计》,不是在学习数学,主次要分明。

2.2 精心准备,加强师生互动

课前要充分备课,准备好教学的内容和学生的练习,做到有的放矢。例如在讲到“自加++”与“自减--”运算符时,我们着重讲自加。例题为:int a,b=5;分析:a=++b;a=b++;a=++b++;运算后a,b的值。经过分析后,让学生掌握其规律:运算符在变量前是先做自加操作,再取其值完成后续运算;而运算符在变量后面则是先取其值进行运算,再完成自加操作。得出这个结论后,提示学生自减的运算也是相似的,要求学生分析将上述例题的自加改为自减后a,b的值,这样学生学习起来针对性就比较强。为什么要设置上面三个例题呢,上过《C语言程序设计》课程的教师自然知道每道题的代表性。最后可以用综合题加强这两个运算符的运用,采用如下练习:int a=4,b=5;分析a=++a-b;b=--a++-b++;运算后a,b的值。学生完成这道综合题后,对自加与自减的运算及使用自然清晰明了。

2.3 充分利用学生的成功心理,培养学习兴趣

我们曾经训练一些学生参加全市编程比赛(用Visual FoxPro编写),开始学生也是基本一无所知,我们只好从基本函数、语句开始上课。经历了一个多月时间,他们没有独立地完成任何一个程序的编写。后来不再给他们任何提示,而是让他们自己思考,有时几天后才给他们分析。其中有3名同学,经过了一周时间的查资料、上机调试,终于完成了一个图书管理系统的基本模块,并找到了成功感。自从那以后,他们能非常深入的分析我们布置的练习并经过反复地调试,找到答案,训练效果得到很大地提高。从中我们看到创造一个成功的心理,学生学习的兴趣就会自然提高,学习起来就会积极主动,效果当然比填鸭式教学好得多。

在平时的教学中,我们也应重视这一点,特别是对学习积极性较高的学生更是如此,今年的《C语言程序设计》课程实习中,这一点得到了充分体现。很多练习我都不先分析,而是让他们自己独立分析、调试,最后才小结。大部分学生两周实习完成后,总结说:“在这两周的实习中,所学到的知识比前半学期学到的知识还多”。其实,我想并不是他们在这个过程中学到了很多知识,关键是他们经过独立地思考分析,完成了程序的编写,获得了充分的成功感!有了成功感,就有了学习兴趣,兴趣是最好的老师。学生在学习中能获得快乐,学习过程自然就会轻松很多。

2.4 让学生学以致用,转变学习动机

在我初次上《C语言程序设计》这门课程时,有一名学生问:学了这门课有什么用?当时问得我张目结舌、哑口无言,不知如何回答他才好。后来想:我们的学生是职教性质的,所以对他们说学了这门课你可以去当程序员,同时为以后学习其他语言课打下基础等,这些对学生来说有点和实际不符。教他们这门课,应该让学生掌握一些解决实际问题的能力,才会促进他们努力学习,毫无目的地学习自然没动力。认识到这个问题的严重性后,在后面的教学中,我把平时遇到的一些问题结合起来进行教学,让他们知道掌握某些知识就能解决相关的一些问题,让他们在学习过程中觉得学习与实际生活很近,这样对《C语言程序设计》课程的认识就没那么抽象了。如在讲数组时,就以统计期中成绩情况为例,让他们完成:每个学生的总分、平均分的计算、排名情况;及每门课程的总分、平均分、最高分、最低分、合格率、优秀率的计算和成绩段分析,这既学好了数组的知识,还充分运用了前面章节的一些相关内容,同时,学习该课程的积极性也调动起来了。

2.5 让学生克服畏难心理,理性认识计算机编程语言

我们的学生大多在学习前就有畏难的情绪,觉得《C语言程序设计》课程难学、学不会,造成这种情况主要是对计算机编程语言不了解。另外就是有些学生英语学得差,看到计算机编程使用英文,就未学先弃了。其实学习语言并没有他们想象的那么难,英语差对学习计算机语言影响不大。比如学习该课程,真正要记的关键字只有32个,语法也不复杂,只要大家不带着畏难的心理,一定能学好的。作为《C语言程序设计》任课教师,在上课前,做好学生的畏难心理工作,会在今后的教学工作中起到事半功倍的效果。

2.6 从例题中提取精华,让学生掌握一些代表性的编程方法

这一点其实和学习数学一样,不管是教材中的例题还是教师另外安排的练习,一般来说都比较具有代表性,代表了某类问题的解决办法。因此,学生在学习中不要仅仅满足于理解或掌握这些题目的解决方法,还要进一步将这些具有代表性的解决办法提炼出来,为解决相似问题提供参考。比如说在讲数组排序方法的应用时,常会讲“冒泡法”和“选择法”两种排序方法,其实,作为一般的应用,不管是哪种排序方法都比较好,只要是排序的问题,使用其中的一种(或加以变换)都能解决问题的。

3 教师如何引导学生学好《C语言程序设计》课程

教学是一个相互配合的过程,涉及到教师如何教、学生如何学的问题,这两个环节相辅相成、缺一不可。学生如何学也起着举足轻重的作用,而学生如何学与教师的正确引导是密不可分的,下面就如何引导的问题谈几点看法。

3.1 强调该课程前四章的重要性,要打好扎实的基础

计算机语言的学习,真正要记住的知识不多。如该课程,只要学好前四章:标识符、运算符与表达式、顺序结构程序设计、程序调试方法等,并打下扎实的基础,后面的学习就会轻松得多。我们在教学中经常遇到这种情况,学到后面,有些学生连printf()、scanf()、putchar()、getchar()等常用函数的使用都忘了,这些最基本的知识都不能熟练掌握,又如何学习后面的内容呢?

3.2 让学生改变学习方式,为学生多动脑、多分析、多练习提供条件

据了解,有些学生在初中或高中的学习过程中,都存在着较多填鸭式的教学模式,造成学生在学习过程中不灵活、不动脑、不善于分析问题,只会生搬硬套、死记硬背的方法学习,这种情况对于学习计算机来说是一个最大的障碍。说实在的,如果想要学好、用好计算机,没有一定的悟性,并且不能融会贯通、举一反三是不行的。因此,在学习中不要满足于教师教了多少,而应该多动脑筋,对遇到的问题多分析、多思考,在计算机上多练习、多操作,还可以适当的看些相关的课外书,开阔视野,这样才会学好、运用好计算机语言。就像前面说到的那些学生,开始他们总是满足于教师教了他们多少;后来布置的练习,如果是经过教师分析后他们才做出来的,他们总是觉得没有成就感。因为填鸭式的教学,学生在学习中尝试不到学习的成功与快乐,自然就学不好。为此,在讲到具体程序设计后,每堂课上完后要布置两三道课后习题没有的题目,给学生多写、多编、多读、多看程序提供机会。

3.3 引导学生加强数学的学习,努力拓宽数学知识面

当然,如果要学得更深入一些,要求再高一些,扎实的数学基础知识对于学习编程无疑是必要的。在后续的编程学习中,对算法等知识的理解与掌握要求有相当的数学知识。因此,要求同学们要努力学好数学。比如在讲二维数组的应用时,如果学生提前了解线性代数中行列式和矩阵的相关知识,教学效果肯定显著。

以上是长期担任《C语言程序设计》课程教学的几点体会,从该课程的抽考和全国计算机等级考试《C语言程序设计》二级考试的情况来看,达到了预期的教学效果。

第5篇

【关键词】 C语言程序设计 教学改革 实践教学

一、引言

随着计算机技术的飞速发展和不断普及,计算机已经在人们的工作生活中得到了越来越广泛的应用,由此也促进了高校计算机技术教育的不断推进。目前许多高校已经将计算机语言课作为一门基础必修课,主要目的是让学生通过程序设计方法的学习,了解计算机解决问题的过程和方法,训练逻辑思维能力,培养解决问题的能力。C语言程序设计以其丰富的数据类型、清晰的语言结构、较强的逻辑性以及结构化程序设计思想等优点,非常适合作为教学语言,因此许多高校将C语言程序设计作为公共基础课。然而,由于C语言课程引入许多新概念和思想较为抽象和复杂,对于初学者来说仍具有一定的难度。针对这种情况,笔者总结了教学过程中出现的问题,提出改革方案,并取得了良好的效果。

二、存在的问题

作者通过多年从事C语言程序设计课程的教学工作,发现在教学中存在的一些问题,总结起来主要有以下几点:

(1)内容繁杂,学习过程枯燥

在C语言程序设计课程中,开始的几堂课主要是介绍数据类型、语法规则、基本函数等,内容往往比较单调、枯燥、信息量较大,学生学习起来,觉得乏味,无聊,缺乏学习兴趣和学习信心。

(2)理论与实践教学环节脱节

目前,许多高校中C语言程序设计课程多以课堂理论讲授为主,比较注重知识体系的完整,而忽略了学生编程能力以及创新能力等综合素质的培养。因此,理论与实践并重,注重培养学生的逻辑思维能力以及解决问题的能力,培养学生的钻研精神,是亟待解决的问题。

(3)学生难以建立抽象的逻辑思维能力。

利用计算机语言解决实际问题时,既有抽象的数学思维,又与以前所建立的数学思维不同,对逻辑思维能力要求较高。学生常常感到课堂上听懂了,可是自己编程解决问题时,又觉得无从下手。因此,如何帮助学生建立计算机语言抽象思维方式是教好课程的关键所在。

(4)缺乏科学合理的考核方案

传统考核往往采用期末一张试卷定成绩的考核模式,缺乏对学习过程中的监督和监管,部分学生为了得到高分,往往期末临时抱佛脚的突击复习,只注重语法等细节知识,不利于对学生解决实际问题能力的培养。

此外,由于学时有限以及机房硬件条件等因素的限制,也影响着C语言课程的实际教学效果。

三、教学改革措施

下面作者结合多年的计算机语言课程教学经验,针对C语言程序设计课程教学过程中常见的问题,提出了一些改革措施。

(1)课堂采用多种教学手段,充分调动学生学习积极性

首先,对于C语言繁多的语法、语句等比较枯燥的理论知识,教师要充分利用现代化多媒体教学设备,制作生动的电子教案,并配以一定的实际生活中的实例,如水仙花数、猴子分桃等,可以进行现场编程,使学生在解决实际问题的过程中,逐步掌握理论知识。对于一些有趣的实例,比如说汉诺塔等,可以制作多媒体课件,寓教于乐,增强课堂内容趣味性,从而充分调动学生的学习积极性,以及培养学生的主动学习能力与探索知识的能力。

(2)丰富多彩的授课方式,培养学生自主学习能力

根据不同课程内容的特点,教师选取合适的课堂组织方式。例如,教师可以采用问题讨论教学,由教师提出问题,让学生分组相互讨论,提出解决问题的方法,教师只提供必要的辅导,从而培养学生主动学习、探索并解决问题的能力以及创新能力。教师可以在授课过程中,引入项目驱动式,先从一个最简单的程序开始,随着课程的不断推进,不断扩充原有程序,教师要根据知识的层次关系提出更深层次的问题,引导学生思考。在项目驱动教学法上,需要注意的是新知识点要在原有知识点之上的逐步导入,由浅到难地逐层推进,从而使学生更容易接受。教师还可以采用启发式教学,结合一些直观形象,易于引起学生联想的具体事例来激发学生的思维,使他们学会举一反三和独立思考,注重学生逻辑思维能力的培养。

(3)理论与实践齐头并进,培养学生实践动手能力

由于C语言程序设计是一门实践性非常强的课程,要想学好C语言,就必须要多编程,多练习,在不断的编程练习过程中,掌握程序的设计思想,提高编程能力。我校十分重视实践环境建设,建有12个公共机房,并全部接入校园网,供全校C语言公共课使用。我校C语言程序设计公共课全部在机房上课,学生一人一机,机房配有投影仪,可供老师授课使用。优越的教学条件和教学设施,为学生C语言课程的学习提供了硬件保证。要求授课教师要精心准备上机的例题,并要求学生做好上机前得准备工作。在课堂组织上,先要求学生认真听课,然后再布置习题,让学生当场编制、调试并运行程序,尽量让学生把当堂课的授课内容在课内就完全掌握住,并能够熟练运用。对于学生编制的优化性能较好的程序,教师要给予积极的鼓励和表扬,使学生体验到成功的乐趣,从而增强学生的学习和探索问题的热情。

(4)建立科学合理的考核方式,注重过程监督和综合素质的培养

考试是教育评价的重要手段之一,传统的考核方式大多以期末一张试卷定成绩的考核方式,不注重学习过程中知识的积累,不能全面反应学生掌握知识的真实情况,并且不利于学生综合能力和素质的培养。因此,科学合理的考核方式对学好C语言也是重要环节之一。我校采用平时成绩+期末考核的考核方式,平时成绩主要由平时测验、平时作业、平时出勤等综合给出。而期末考核由笔试考试+上机考核两部分给出。笔试考核主要考察学生基础知识和基本理论的掌握情况,而上机考试主要考核学生动手能力和运用知识的综合能力。通过引入平时监管,就要求学生认真对待每一堂课,避免期末为了应付考试而突击复习的现象。通过引入上机考核,充分培养了学生的编程能力、解决实际问题的能力及创新能力。

四、结束语

我校通过对C语言程序设计公共基础课程的教学改革,有效增强了学生的学习热情,激发了学生自主学习的积极性,提高了学生编写、调试程序的能力以及编程解决实际问题的能力,培养了学生逻辑思维能力与团队合作精神,教学效果得到显著提高。

参考文献

[1] 蔡晓丽.陈舜青.丁志云,计算机C语言实验教学改革探讨[J].电脑知识与技术,2010(5):4191-4192

[2] 周欣欣,程序设计类课程教学改革探索与实践.科技信息[J],2012(2)

[3] 余冬梅,基于C语言的计算机语言类课程的教学方法研究与实践.现代计算机[J]2020(8):67-69

第6篇

【关键词】C语言;教学改革;教学效果

《C语言程序设计》是高校各专业本科教学中的一门重要技术基础课,在各专业的本科教学计划中占有重要地位和作用。本课程的教学宗旨是要努力把C语言从应试课程转变为一种实践工具,主要目的不再局限于使学生单纯地了解和掌握C语言的基本语法规范,而是要致力于培养学生运用C语言解决实际问题的编程能力,以C语言为工具,介绍程序设计的基本思想和方法,培养学生无论以后在学习、工作中使用什么语言编程,都能灵活应用这些思想和方法的能力。

1.改革的必要性

我国传统的教学模式是完全遵循书本内容和知识结构,通过“讲授法”完成一系列的教学任务,如教师向学生传递知识信息、控制学生掌握知识信息的过程等。“讲授法”从本质上而言是一种单向性的思想交流或信息传输方式,是以教师为中心、学生被动接受知识的一种教学模式。在教学过程中,学生才是真正的主体。随着应用型人才培养改革的不断深入,学生培养目标和教育理念也不断更新,传统的教学方法无法满足现代教学需求,从而提出教学内容、教学方法和教学手段的改进,提高学生学习《C语言程序设计》课程效率和效果。

2.教学内容的科学组织

教学内容的科学组织是提高教学质量的关键。众多程序设计教材中存在的问题:①实例不实,为解释语法而设计。②语法堆砌,只见树木不见森林。③忽视错误程序的分析与讲解。为解决以上问题,编写了内容紧密结合实践,实例兼趣味性和实用性的教材。

在教学内容中强调理论和实践的结合,结合项目案例组织教学内容。教师根据教学要求与目的,精心选择有普遍性、代表性的案例,案例难易程度还要与学生的接受能力相适应,教师对相关资料进行整理加工,去粗存精,使内容适当的典型化,以便于学生分析研究。课前将案例说明资料,以及与案例有关的背景知识、理论说明参考资料等交给学生预习。要求学生阅读、理解、思考案例。要求学生分组在课堂上运用原始资料,通过分析与讨论,找出需要解决的问题并提出解决问题的方案。教师对学生提出的各种案例解决方案进行评价并总结。通过项目案例可以帮助学生对理论知识的理解,可以培养学生分析问题和解决问题的能力,可以激发学生的学习兴趣。

3.教学方法的灵活应用

以应用为背景,以程序设计方法为主线、以语法和结构为核心,以培养能力和提高兴趣为目标,重视方法、思想和能力的结合。提出多种实用新式的教学方法:案例—任务驱动教学方法、设置错误寻求正确答案教学方法。

1)案例—任务驱动的教学方法

“程序设计语言”强调的是“设计”,应当从“设计”入手,以程序设计思想与方法为核心,注重程序的编写过程,选择一个恰当的案例非常重要。案例的选择应当由浅入深,要做到精、准、易。精就是突出重点,目的明确;准就是能够反映欲教授内容的本质;易是简单易懂,不能把学生吓着。

2)设置错误寻求正确答案的教学方法

在课堂教学中,有意给出一些带有算法错误或语法错误的程序段,使学生产生一些疑问,去思考,为什么这样编程不对?为什么这样的程序得不到正确的运行结果?让学生自己去寻找程序答案,修正这种程序中的语法错误及算法错误。

4.教学手段的改进

采用“以多媒体教学为主、板书为辅、现场编程演示”的方式,多种教学手段相互补充,使课堂教学与实验教学相结合。

多媒体教学方式的特点是信息量大,图文直观,便于算法的动态演示,同时借助于编译系统进行程序从编辑、编译、链接、运行到测试与调试的整个过程的演示,可增强学生对程序设计的感性认识,缺点是每页的幻灯片内容有限,不便于学生进行前后内容的对照,内容更新速度过快,学生有时反应不过来,跟不上教师的思路,而传统的板书教学法恰好弥补了这一缺陷。因此,以多媒体教学为主、板书为辅,多种教学手段并用,可以实现传统媒体与多媒体的优势互补,最大限度发挥二者的应用价值。教师课堂现场编程演示,目的是避免纸上谈兵,达到“以学生为本、师生互动”的目的,虽然加大了教师授课的随机性和难度,但是却可以充分调动学生的学习积极性和主动性,而且由教师一边带领学生找错,一边讲解如何找错和如何改错,给学生留下的印象更为深刻,也真正体现了“按照学生的学来设计和组织教师的教、启发引导、精讲多练、理论与实践相结合”的教学宗旨。

5.总结

针对应用型人才培养目标,本文对C语言程序设计课程教学的各方面提出了改革。经过几年的教学实践表明,该教学模式有利于调动学生的学习积极性,使学生真正地认识地到学有所需,学有所用,学有所为。培养了学生分析问题和解决问题的能力,提高了学生程序设计和程序调试的水平。

参考文献

[1]翟秋菊.C语言程序设计教学改革初探[J].农业网络信息,2008,3.

[2]张索君.《C语言程序设计》教学改革初探[J].河南科学学院学报,2010,2.

[3]翟文宪.案例教学初探[J].课程·教材·教法,1996,6.

第7篇

由于时间的关系,我们的这次实习课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

上机实验是学习程序设计语言必不可少的实习环节,特别是c语言灵活、简洁,更需要通过编程的实习来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:

1.熟悉程序开发环境、学习计算机系统的操作方法

一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓 环境 就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。

2.学习上机调试程序

完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。

通过这次为数不多的几天计算机实习学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难。

3.加深对课堂讲授内容的理解

课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实习中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实习所致。C语言程序设计实习心得体会(3篇)C语言程序设计实习心得体会(3篇)。

第8篇

关键词: 中职计算机专业 《C语言程序设计》 教学方法

《C语言程序设计》在中职计算机专业专业课程中起着举足轻重的作用,也是对口高考技能考核和理论考试的必考科目。学生素质偏差是中职学校普遍存在的共性,由于学生素质一般不高,学习兴趣不浓,学习态度不端正,学习目的不明确,再加上学生刚刚接触计算机语言类的专业课,该课程本身难度较大,枯燥无味,又存在传统教学的弊端,教学设施设备落后,这些因素造成学生学习困难,没有兴趣去学,甚至有些学生望而生怯,不愿意去学;教师上课也无精打采,照本宣课,课堂氛围死气沉沉,教学效率不高,教学质量上不去,使教学陷入困境。如何使教师的教与学生的学走出误区,已成为当务之急。

一、培养学习兴趣,提高学生的学习积极性

爱因斯坦曾经说过:“兴趣是最好的老师。”一些老师往往不注重学生兴趣的培养,在第一课简单介绍完自己后就步入正题,开始按部就班地教学了,认为早点让学生接触本课程的相关基础知识,可为后面紧张的学习争取时间。其实不然,中职学生素质不高,学习兴趣不浓,甚至有厌学情绪,如果一开始就讲授课本知识,容易使本就厌倦学习的学生产生抵触情绪,从而为后面的教学带来诸多不利因素。

教师首先应想方设法调动学生的学习积极性,不要急着去讲解书本知识,把学生学习积极性调动起来,让学生感觉学习C语言程序好玩,把C语言的研发当成一种游戏,产生强烈的求知欲望,进而挖掘出巨大的学习潜能。

其次在C语言教学中应多采用通俗易懂的例子,避免抽象问题挫伤学生学习积极性。比如在讲解两个变量值互换时,很多学生采用数学中的解法:A=B,B=A,不理解为什么要引入中间变量C,使用C=A;A=B;B=C语句。[1]此时教师如果用生活中看得见摸得着的实物来比喻,学生就很容易理解了。假设A和B两个盒子里分别放满白色粉笔和彩色粉笔,现要求在不借助第三方载体的情况下将两盒粉笔交换,请同学演示,能否成功?如果再拿一个空盒子来并允许使用第三个空盒,能否成功?由此得出必须借助第三个盒子,才能交换成功。这样学生理解起来就容易多了。

二、重新整合教学内容,分类汇总

教材一般先介绍数据类型、表达式、算法、函数等抽象难懂的C语言基本概念,然后才介绍程序的编辑和运行。如何利用现有资源重新整合教学内容打破教材原有的顺序章节,将各知识点按先分类后汇总的原则重新组织?这就要求教师对整本教材的内容非常熟悉,能前后照应、融会贯通,而不是为了上课而上课,照本宣课,不能尽信书,也不能无书,这样会取得更好的教学效果。例如在讲解命名规则时,老师可以把变量和数组放在一起,使学生感觉到知识间的关联,记住了一个,另一个也记住了,提高学习效益。再如利用C语言把一系列杂乱无章的数据按照一定顺序排列,此时我们可以把顺序法、选择法、冒泡法放在一起,让学生能直观地看出各种方法的区别,举一反三,有利于加深对知识的理解。

如学习循环结构时,举例:sum=1+2+3+4+5+…+n;让学生建立两个概念:装和的变量sum(初值为0),表达式:sum=sum+n;例题变化:p=1*2*3*4*5*…*n;装乘积的变量p(初值为1),表达式:p=p*n;深化例题:s=1!+2!+3!+4!+5!+…+n!;引导学生分析并发现这是前两个循环的合并,得出循环体语句:p=p*n,s=s+p,[2][3]使学生掌握一题多变的思维模式,举一反三、触类旁通。

三、改变传统单一的教学方法

C语言和其他计算机专业课不同,它要求初学者要具备较好的数学和英语基本功,而数学和英语是职业中学学生普遍感到头疼的“老大难”课程。针对这种现状,我们要根据学科间的联系,以及学生的个性差异因材施教,要改变过去单一、乏味的以教师讲为主的传统教学方法,采用适应时代需求的符合学生客观规律的“项目教学”、“自主学习”、“任务驱动”、“案例学习”、“合作学习”[4]等多种方法。

例如:输入5个学生的3门课程成绩,求每个学生的平均成绩和每门课程的平均成绩。学生拿到题目感觉无从下手,我把题目拆分成两个任务:1.求每个学生的平均成绩;2.求每门课程的平均成绩。再将学生分成A、B两组,分别将任务1交给A组学生完成,将任务2交给B组学生完成。这样学生感觉轻松多了,轻而易举地完成了各自的任务。最后我把两个任务再组合在一起,此题就迎刃而解了。在教学过程中我改变了过去一个人讲的传统教学方式,采用项目教学和合作学习相结合的复合法使问题得以解决,学生对二维数组有了进一步的认识,加深了理解。

求学生平均成绩程序段如下:

For(i=0;i

Aves[i]=0

For(j=0;j

Aves[i]+=scor[i][j];

Aves[i]/=3;

求课程平均成绩程序段如下:

For(i=0;i

Aves[i]=0

For(j=0;j

Aves[i]+=scor[i][j];

Aves[i]/=5;

C语言程序设计课程本身要求培养学生的动手能力和综合运用知识解决实际问题的能力,这就要求学生要多动手上机练习。教师要采用多媒体技术,多形式地运用教学方法激发学生的学习兴趣,引导学生的发散性思维的形成。例如:打印杨辉三角形,由于学生对杨辉三角形不了解,教师可以借用Flas形象地打印出杨辉三角形,帮助学生找出其中的规律:第一列的数都是1,各行最后一个数也是1,从第3行第2个数起,为上行同列数与前一列数之和,例:a[i][j]=a[i-1][j-1]+a[i-1][j];(i>=3,j>=2)。教师借助动画,可使得原本抽象难懂的概念变成形象直观的动态模型,为学生在练习的过程中发现问题、探讨问题、解决问题,积累丰富的经验,使学生体会到成功的喜悦。

只要我们能从学生的实际出发,充分调动学生的学习积极性,运用科学有效的适应时代要求的教学方法,就一定能使学生学好这门课程。

参考文献:

[1]林东,陈琳.编程语言基础――C语言.高等教育出版社,2006.6,(2).

[2]黄煜编.程序设计语言课程教学方法探讨.山西农业大学学报,2006,(1).

第9篇

一、C语言程序设计课程教学现状

C语言程序设计课程在本校已开设多年,经过多年的教学改革和实践,取得了较好的教学效果,但在本课程的实际教学中,依然存在如下几方面的问题:(1)学生对该课程的学习目的和意义不甚了解。在实际教学工作中笔者等人发现,由于公共课课时一再压缩,教师在授课时急于追赶进度,按照教材的章节顺序将各个知识点逐一教授给学生。学生对于一些知识点似懂非懂,一知半解,许多学生并不明白其学习的目的和意义。学生只是机械地学习,而不是自主、有目的地学习,因而难以将整个知识体系融会贯通,导致应用计算机解决专业问题的能力较弱。(2)课程理论与实践脱节。传统的教学模式是先进行理论教学,后进行实践操作,让学生按照实验教材进行实践操作,二者不能互相融为一体。此外,学生的层次不一,对于理论知识难以内化,这必然使学生在理论课中感到语法句法的枯燥乏味,同时感觉算法的内容难度过大,难以对这门课程的学习产生兴趣。(3)教学方法单一。大部分教师在讲授C语言时,往往把C语法规则等相关理论知识的讲解作为教学重点,不太注重算法的分析和设计。在讲解例题时多关注语言的语法解析,和实际生活偏离太远,课程与学生专业背景结合不紧密,学生学习兴趣不高,学习积极性差。针对以上问题我们试图从增加辅导课时、举办竞赛等途径进行改善,但收效不明显。而计算思维的培养恰恰是解决这一问题的有效途径。

二、基于计算思维能力与信息应用能力培养的教学改革实践

计算思维能力培养的教学方法大体有问题启发式教学法、案例教学法和项目教学法。对于学生解决问题的能力和科学行动能力的培养,也常以案例教学法和项目教学法作为其教学方法。因此教师必须要认真研究和思考如何在教学中开展案例教学和项目教学。C语言程序设计课程中的许多知识点都适合培养学生的计算思维能力,特别是分析设计程序时如何科学分析问题并进行数学抽象,如何对问题进行符合逻辑的算法设计、编程与调试以及生成可执行的程序,都是对计算思维的很好的诠释。因此,在培养学生计算思维能力方面最理想的课程之一就是C语言程序设计。

(一)理论教学

(1)以案例为线索重新安排教学内容。认真分析学生的认知规律和专业背景,遵循“理论为辅,实践为主”的教学原则,通过教学案例重新设计教学内容和章节顺序。在课堂教学中应尽量淡化语法规则,通过实例应用一些实用的语法,让学生从实用的角度出发有选择性地学习语法规则,而不是死记硬背。通过案例尽早引入函数和指针等概念分散教学难点,符合学生的认知规律。在讲解具体程序时多采用单步调试执行程序的方式,让学生能清晰地体会程序的执行过程,为后续复杂程序的学习奠定良好的基础。(2)通过案例教学法培养学生解决问题的能力。在讲解案例时从计算思维的角度出发,引导学生体会分析、解决问题的基本思路,求解问题的已知信息、中间结果和最终结果,学会抽象化地描述问题,然后逐步明晰解决问题的方法和步骤,即算法的设计,最后利用C语言完成代码的编写、调试和执行,最终实现该算法,达到解决问题的目的。在这个问题的求解过程中,将解决问题的过程提升到培养计算思维的高度,让学生更深刻地理解计算思维的本质。(3)设计使用多种方式将程序与学生的专业领域内容相融合。比如以与专业相关的项目为出发点进行基础内容的介绍等。在具体的教学过程中只要求学生具备基本的编程素养和解决本专业应用问题的能力,不同专业的项目要以相关专业领域的应用为基础、以程序设计方法为主线,目的是培养学生的应用能力和提高学生的学习兴趣,让学生多从各种角度去了解和掌握C语言以及程序设计的精髓。例如,数学类、管理类专业的学生可以重点学习与数据库交互处理的技术。

(二)实践教学

实践教学是巩固理论知识、积累实践操作经验的重要环节。在此环节的教学中应重点训练学生运用计算思维方法去解决实际问题。在教学内容设计方面应注意由浅入深、循序渐进,因此笔者分别设置初级、中级和高级3种类型的实验项目。在初级和高级实验教学环节,我们着力做好以下几个方面的工作:(1)按步骤上机实践。教师在每次上机实践课前,给学生布置实验课的中级项目内容,要求学生利用课余时间分析问题并设计拟定好算法,画出流程图,写出代码。上课时教师适时抽查学生完成这部分工作的情况。上机课第一项工作是要求学生完成初级项目的测试,测试由无纸化考试系统支持,测试通过后,剩余时间让学生完成中级项目的程序调试工作,在调试过程中,教师及时对学生存在的疑问进行解答。规范化的上机实践工作让学生养成一个良好的学习和训练习惯,全面提高学生在遇到问题时独立分析问题和解决问题的能力。(2)教师上机指导。上机实践中程序的调试主要是排除代码的语法和逻辑错误。因此在每次上机过程中,对于程序编译链接时出现的错误,要求学生记录错误信息并分析原因,避免再犯同样的错误。教师对常见的错误集中进行讲解,教给学生规避错误的基本方法,逐步培养学生独立调试程序的能力。对学生算法方面的疑问,不直接为学生指出代码中的问题,而是逐步引导学生自己找出问题。这样有利于培养学生独立发现问题、分析问题的能力。(3)总结上机实践。每次上机实践课结束后,要求学生在课后对本次上机实践的工作进行及时归纳和总结,对各个环节出现的问题进行总结和反思。对于普遍存在的问题,教师集中讲解答疑。及时、有效的总结和反思可以有效地提升学生的计算思维能力。(4)高级实验项目驱动。通过高级项目的实际开发过程,引导学生创造性地运用知识发现问题、研究问题和解决问题,促使学生在这个过程中积累知识、培养和锻炼思维能力。建立学生学习互助小组,培养学生协作学习的能力。教师也可以在项目实践中真正了解教与学的缺陷,推进教学模式转变。[3](5)结合学生专业背景,维持学习积极性。将C语言融入专业应用中,可以有效地提升学生的学习积极性。教师在授课中应结合学生的专业应用方向,精心选择、准备与学生专业相关的项目案例进行教学设计。选择的项目要具备针对性、典型性和实践性的特点。[4]例如,对于信息类专业,可以选用各种信息系统的项目引导课程的教学。

(三)课程考核

本课程结合实际应用,引入企业项目化考核方式,更加注重对学习过程的考核。建立以自动评测系统和实践能力考核为主的多元化考核体系。期末总成绩由期末机试成绩(40%)、实验项目考核成绩(40%)和平时成绩(20%)组成。实验项目成绩由中级项目和高级项目两项实验成绩组成。即从项目的实施情况记录、小组项目的成果展示、实验报告的总结以及小组成员的合作态度等各个方面评定学生成绩。平时成绩依据课堂表现、考勤情况和小组协作三方面组成。这样做的目的是让学生的最终成绩能更客观地反映学生的学习过程和学习效果,突出能力培养目标,减轻学生的考试压力。四、结语培养科学行动能力,提升计算思维能力是应用型本科院校非计算机专业的计算机课程的教学目标。实践证明,在教学中应该有意识地在理论教学和实践教学的各个环节中融入计算思维的培养。在实践课的教学环节,通过分级项目的形式由易到难地把学生融入项目达标与设计实现的过程中,不仅仅有助于学生理解计算机分析解决实际问题的思想,更有助于提高学生利用计算思维方式来解决实际问题的能力与团队协作能力。

作者:刘红霞 单位:榆林学院

第10篇

关键词:C语言;指针;指针变量;地址

中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)02-0389-03

Discuss Application Of The Pointer in C Language Program

HU Xiao-yan,PANG Run-fang

(Engineering & Training Center Inner Mongolia University of Seicence and Technology, Baotou 014010, China)

Abstract: In this paper,the concept of pointer,pointer arithmetic,pointer of use, flexible application should pay attention to in terms of C language pointer analysis and discussion. Guide the students how to use the pointer.

Key words: C Langwage; Pointer; Pointer Variables; Address

《C语言程序设计》课程是我校理工科非计算机专业学生进入大学所接触的第一门计算机语言课程。实践证明,该门课程对于初学者来说难度比较大,这也是由于C语言的特点决定的。因为C语言功能强大,它既有高级语言的特点,也有低级语言的特点。而在这门课程中指针又是C语言的精华,因此灵活地应用指针,可有效地表示复杂的数据结构、动态分配内存、方便地引用字符串和数组;在进行函数调用时还可获得多个返回值,并可直接处理内存地址,实现其它高级语言难以实现的功能;运用指针编程是C语言最重要的风格之一。但指针比较难以掌握,使用时常犯一些错误,即使是熟练的程序员也很难发现和排除这些错误。为了设计出高效、简洁、紧凑的用户程序,正确理解和使用指针非常重要。因此如何引导学生学会C语言的指针在编程中应用是很重要的事情。

1指针的概念

计算机对信息的处理都由操作系统调入存储器存放并执行,存储器中有众多的存储单元,存储单元是用来存放数据的。存放在存储单元中的数据称为存储单元的内容(或值)。计算机为了对存储单元进行有效的管理,便为存储单元进行编号(以字节为单位),这个编号就是“地址”,这个“地址”又称为指针[1]。每个变量都有一个地址。不同数据类型的变量,占用的字节数不同,系统把变量占据存储单元的第一个字节的地址作为该变量的地址。有了地址我们就可以引入指针变量。指针变量是一种特殊的变量,变量中存放的不是某种数据类型的数据,而是存放另一个变量的地址。如果一个指针变量存放了另一个变量的地址,则形象地称指针变量指向那个变量。下面提供一个指针的例题,通过分析例题来理解指针的概念。

例:利用指针,求两个整数的和。main()

{ int i,j,sum;

int *p,*q;/*定义指针变量*/

p=&i;q=&j;/*建立关联*/

scanf(“%d,%d”,p,q);

sum=*p+*q;/*使用指针变量*/

printf (“%d,%d\n”,*p,*q);

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

}

在程序当中,首先定义两个普通变量i,j,再定义两个指针变量p,q,为了进行区分普通变量和指针变量,所以在指针变量名前加’*’号。不能引用没有赋值的指针变量,否则可能会造成系统瘫痪,所以将&i赋值给p,&j赋值给q,说明指针变量指向了普通变量。如图所示:

有了指向关系,在输出语句中就可以利用指针来访问普通变量i,j。

2指针的运算

指针变量和其他变量一样,也可以进行运算,由于指针的运算实际上是地址的运算,所以和其它变量的运算又有区别[1]。

1)间接访问运算

用变量名对其所对应的存储单元的内容进行读写称为直接访问,而通过存储单元的地址对其内容进行读写的则称为间接访问。尽管指针变量中保存的是存储单元的地址,而引入指针的目的主要是为了更方便快捷地访问存储单元的内容。

间接访问是在引用的指针变量前面加一个“*”号,用来表示指针所指向的存储单元的值或内容。例如:

int a=5, *p;

p=&a;

printf("%d",*p);

当指针p指向a后,若用指针p访问所指存储单元的内容时,可以写成*p,也就是说在这里*p与a是等价的。由于“&”与“*”两个运算符优先级别相同,且结合方向均为自右至左,又是一对互逆运算,所以有*&a=*p,&*p=&a。

2)指针变量加或减一个整型量,从而得到另一个地址,当然自增自减运算也是合法的。如先使p指向数组a的首地址(即p=a),则p+n表示的是下标为n的元素地址。p++表示:使p指向下一个元素a[1]。如果接着执行*p,则取出a[1]的值。*p++等价于*(p++)作用是:先得到p指向的变量的值(即*p),然后再将p+1=>p;*(p++)与*(++p)的作用不同,前者是先取*p的值,然后使p加1,而后者是先使p加1,再取*p;++ (*p)表示p所指向的元素的值加1。指针变量乘除一个整型量无意义,C语言也不允许此类语句出现。

3)由于指针变量中的地址也是一数值,所以指针变量间也可以进行关系运算。

4)两个类型相同的指针变量可以相减,例如指向同一数组的指针变量相减可以得到两个指针间元素的个数。相加或相乘则无意义[1]。

3指针的使用[3]

链表是数据结构的一种存储形式,能够实现动态分配存储空间。我们知道,用数组存放数据时,必须事先对数组定义固定的长度(即元素的个数)。例如,有的班级有100人,而有的班级有50人,如果要用同一数组先后存放不同班级的学生数据,则必须定义长度为100的数组。如果事先难以确定元素的个数,则必须把数组定义得足够大,以便够用;但实际若使用得很少,那样就造成了内存空间的浪费。定义小了又满足不了需求,为了解决这一矛盾,C语言提供了“需之则有,不需则无”的动态数据结构--链表,它根据需要开辟存储单元。

指针和结构体配合可以实现动态存储分配,用来实现对链表的建立、插入和删除等操作。

建立一个简单链表,结点类型定义的一般形式:

struct类型名

{数据域定义;

struct类型名*指针域名}

其中,数据域和指针域都可以不止一个,当指针域不止一个时,将构成比较复杂的链表。以4个结构体变量为结点建立一个简单链表并且输出。

#include

struct node

{int data;

struct node *next; };

main()

{struct node a,b,c,d,*head,*p;

head=&a;/*头指针指向a结点*/

a.data=10;a.next=&b;/*a结点指向b结点*/

b.data=20;b.next=&c;/*b结点指向c结点*/

c.data=30;c.next=&d;/*c结点指向d结点*/

d.data=40;d.next=NULL;/*d结点是尾结点*/

p=head;

while(p!=NULL)/*输出链表,p作为工作指针*/

{printf(“%d-->”,p-->data);

p=p-->next;/*工作指针后移*/}

printf(“NULL\n”);}

运行结果为:

10-->20-->30-->40-->NULL

建立一个简单链表很容易,只需将引用自身的结构体变量的地址赋给前驱的next即可。在后面需增加结点(即一个此类型的结构体变量)时,只要将原链尾结构体变量中的引用自身的指针指向新增加的结点即可。

4灵活应用指针还必须注意如下问题[2]

1)要注意指针变量的当前值。我们在做指针变量指向数组的练习时,经常会有这样的情况发生:

main()

{ int a[6],i,*p;

p=a;

for(i=0;i

scanf(“%d”,p++);

for(i=0;i

printf(“%d”,*p);}

当我们运行程序时,输出的6个数据和我们输入的不一致,就是由于指针变量进行了移动,已经移出了我们的数据区域,当再利用指针进行访问元素时必须把指针变量的当前值重新指向数组中的第一个元素a[0]才可以。所以上面的程序在第二个for循环的前面加一条p=a或p=&a[0];程序的结果才是正确的。

2)在一维数组a[10]中,有语句p=a,则p+i和a+i都表示地址相当于&a[i],p和a都是指针,但是它们有区别,p是变量,可以实现p++,a是常量,a的值不能改变。

3)当指针指向字符串时,字符指针变量和字符数组之间是有区别的。

A、字符数组由若干个元素组成,每个元素中存放一个字符,而字符指针变量中存放的是地址。

B、定义了字符数组之后,只能对各个数组元素赋值,不能用下面方法对字符数组赋值:char str[]; str=“I have a book!”;

而对指针变量,可以采用下面方法赋值:

char *a; a=“I have a book”;

赋给a的不是字符,是字符串的首地址。

C、对字符指针变量赋初值

char *a=“I have a book”等价于

char *a;

a=“I have a book”;

对数组初始化

char str[]=“I have a book”不等价

char str[20];

str[]=“I have a book”

5结束语

指针是C语言的难点,但也是精髓,只要我们掌握了其本质含义,也就不难了。上面所介绍的是C指针使用过程中的一些常用、重要的方法和规则。要达到熟练灵活应用,还需要在实践中不断积累、总结、提高。

参考文献:

[1]郝长胜.C语言程序设计[M].内蒙古:内蒙古大学出版社,2007.

第11篇

关键词: C语言程序设计;实践;案例教学;考核

中图分类号:G424文献标识码:A文章编号:1009-3044(2012)10-2309-02

Discussion of Practice Effect in Teaching of C Language Programming

SUN Hua, YU Jiong, QIAN Yu-rong, TIAN Sheng-wei

(School of Software, Xinjiang University, Urumqi 830008, China)

Abstract:The article simply introduces the aims of teaching and methods of teaching, and analyses case method in practice teaching. Through building interest groups and reasonable examine mechanism, it can real make students master key point and difficult point in C language programming. Practice teaching plays a key role in course studying and outside class studying, and it can also promote self-confidence of students in the process of programming.

Key words:C language programming, practice, case teaching, examine

《C语言程序设计》[1]是软件工程专业学生在大学一年级学习的第一门高级语言程序设计课程,属于计算机专业本科基础教学中第一层次的课程,也是一门必修的专业基础课程[2]。本课程的学习为后序程序设计类课程以及相关专业的其他课程的学习,起到至关重要的作用。采用何种教学方法和手段,保证学生能够把C语言程序设计课程学好,不仅为以后的学习打牢专业基础,而且可以培养学生的自信心学习其他的程序设计类课程。

程序设计课程是一门需要动手实践的课程,每一章节都需要学生编写简单的小程序以掌握所学的知识点,在全部课程结束后,要求学生能够独立地设计、编写和测试具有一定难度的程序。但是由于本课程的课时相对比较少,教学中的知识和难点又相对比较多。如何掌握课时,既能够完成教学大纲的要求,又能在较大程度上提高学生的编程水平,是一个非常有价值的研究课题。

该文将从实践的角度,重点分析实践教学在C语言程序设计课程学习过程中发挥的作用,并介绍实践教学的效果。

1课程的教学目标和教学方法

1.1教学目标

在《C语言程序设计》教学大纲中,对教学目标做出了明确的规定,要求学生通过该课程的学习,一方面,学生具备利用计算机处理问题的思维方式和程序设计的基本方法,另一方面,课程的学习能够启发学生主动将计算机引入到其它基础课和专业课。

1.2教学方法

1)针对C语言程序设计课程中技术点比较多的特点,教学形式以手把手实践方式为主。提高学生的实践动手能力。

2)为加强和落实动手能力的培养,每堂课都预留一定的时间给学生进行实践练习,对于每一个大章节,结束后都安排一个阶段性的项目实践,以巩固章节中所包括的技术点,同时通过实践,使学生深入掌握知识点的应用范围,应用方式。

3)充分利用网络资源进行答疑、讨论及分享。

为了充分调动学生的实践动手能力,还将实践结果与考核相挂钩,督促学生在实践过程中端正态度,认真学习。

2实践教学的方法

在教学目标和教学方法中,反复强调了实践教学,采用各处教学方法,通过实践、实践、再实践的路线,使学生能够达到教学目标的要求。我们在《C语言程序设计》课程中采用了各种实践活动,使实践教学作用在课程学习过程中得到充分的发挥。

2.1案例教学

案例教学是实践教学的一个很觉的教学方法[3],它不仅可以启发学生,使学生快速理解所学的知识,而且通过案例教学,也能帮助学生了解各知识点的用法,帮助学生快速入门。《C语言程序设计》课程的实践课时并不是无限的,如何利用有限的课时,使学生能够掌握重点和难点部分,需要一定的技巧和手段来完成。作为主讲该课程的老师,应该巧妙地安排,根据学生的特点,设计出一些经典同时又非常符合学生实情的案例。可以利用教研室的团队,形成一个《C语言程序设计》的研究小组,计论并安排适合本专业学生特点的案例。

2.2建立兴趣开发小组

在实践过程中,应该充分调动学生的自我管理能力。让学生相互帮助,有时候学生的讲解比老师的答疑更容易让学生接受。开发小组既可以让学生自己建立,小组成员由小组的组长自己指定,也可以由老师安排。最后需要老师把关,尽量保证每个小组在学期结束时,都能完成一定数量的教学案例的设计、开发和测试任务,每个小组成员在小组设计开发过程中,都有所为,有所收获。

每个兴趣开发小组完成的实践教学任务,都是由老师精心挑选的程序。有时需要根据学生的特点,有针对性地采取不同的案例,分不同的难易程度。避免有些学生觉得过于简单,有些学生又无法完成实践教学要求的矛盾。同时,还需要对学生的最终完成效果安排考核,对做的非常好的学生给予鼓励与帮助,同时考核也能激励学生认真完成,深刻掌握程序设计思想的思维模式。

兴趣开发小组之间也可以互相学习,取长补短。这种建立开发小组的模式,让学生在大学一年级就能体会到项目经理的职责与作用。同时培养学生的合作沟通技能,为以后的职业发展奠定了基础。

2.3合理的考核机制

实践的最终成绩,是由任课教师、学院安排相关的教师和从公司邀请的专家共同完成。在考核过程中,综合考虑各方面的因素。

1)由任课教师决定过程的考核。[4]

学习是一个循序渐进的过程,不同的学生,在分析问题、解决问题的能力上各有不同。由任课教师在实践过程中,发现进步比较大的学习,发现关于思考以及敢干大胆尝试的学生。而不是采用一刀切的方法,用统一的衡量方法考核学生。

2)由学院教师进行横向比较。

通过本届学生与历届学生的对比,发现不同层面上的优秀的学,在全院范围内给予表彰。

3)由校外专家进行纵向比较。

学生在实践过程中所设计开发的课程设计,考核时要求提交代码及文档,并要求完全按照规范撰写实习报告,并由校外专业审核。整个课程设计与软件开发的过程一致,从编写第一个课程开始,就让学生了解软件开发过程中所涉及的各个环节,使学生从大一开始就做到规范,并形成职业习惯。这必将终身受益。

最终对于设计开发优秀的、进步比较大的学生,都要给予一定的奖励。通过这种方式引导学生主动积极地参与到实践学习过程中。

2.4在实践中领悟

在实践过程中,老师的作用只是引导和指导学生完成课程学习过程中的实践中比较难的部分,主要还是依靠学生自己在动手实践过程中领悟。仔细体会程序设计过程,包括构思,设计,调试,运行,实现。这是一个不断反复的过程,有时候,即使是很小的错误,可能也需要花费较多的时间发能发现。虽然目前看来,浪费了比较多的时间,但是今后再犯相同错误的可能性会降低。以后再分析他人写的程序,也很容易发现同类的错误。这显然比老师直接参与讲解的效果要好许多。因此,在实践中领悟,一方面,可以加深印象;另一方面,也可以磨炼学生的毅力以及面对挑战的勇气。在学校中经过反复实践的锻炼后,走出校门,才能满足行业的需求,成为优秀的工程师。

3实践教学的作用

3.1在课程学习过程中的作用

根据教学大纲的要求,《C语言程序设计》课程是实践性非常强的课程,因此,如何完成教学大纲中规定的要求,完成实践教学,达到强化学生的动手能力、培养学生的学习兴趣和启发学生的程序设计思维的作用,实践教学在这一系列的活动过程中发挥的不要替代的作用。

3.2对课外实践的指导作用

《C语言程序设计》课程的教学过程是,学习-实践-再实践。一次实践难以达到效果[5],需要反复实践。高校培养软件专业的人才的培养目标是专业的工程师。学校学习实践的结束,也是社会实践的开始。经过四年实践锻炼培养的大学生,走出校门后,企业不需再培训或者只需经过简单的职业培训,就可以上岗。因此,在校期间实践教学就显得格外重要,更加需要学生们珍惜和利用实践机会,把在校期间的实践经验直接应用于职业生涯中。真正实现从实践中来,到实践中去的过程。

3.3提升自信心过程中的作用

在教学实践过程中,通过将所学的知识运用于实践,最终能让学生对知识点如何应用有一个感性的认识,尤其是经过反复调试,最终程序的运行结果显示在屏幕上,这种成功的喜悦之情是对学生的最大的肯定,能够极大的提升了学生的自信心。这对于学生如何克服本课程后序的难点以及其它课程学习的畏难情绪也能起到很大的帮助作用。

4结束语

《C语言程序设计》课程中采用实践教学是可行而且非常有必要的,该文简要介绍了实践教学的方法,重要分析了《C语言程序设计》课程中,实践教学活动发挥的重要作用。今后需要继续探索教学方法和手段,促使实践教学的作用发挥极致,使学生达到教学大纲的要求,实现教学目标,为社会输送高级专业人才。

参考文献:

[1]谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005.7.

[2]新疆大学软件学院.C程序设计教学大纲[Z].2009.3.

[3]余恒芳.《C#高级程序设计》课程改革与实践之完善[J].福建电脑,2011(8):201-202.

第12篇

关键词:C 语言;教学内容;教学方法与手段;教学改革

1.引言

我院开设的“C语言程序设计”课程不但是计算机专业的必修课,而且也是非计算机专业的公共计算机基础课。但在“C语言程序设计”课程教学中,许多学生都认为C语言涉及的概念比较复杂,规则繁多,使用灵活,容易出错,且程序设计课程逻辑性又很强,[1]学生不能很好地理解算法,编写程序也很困难,教师教学和学生学习都感到困难,并在不同程度上产生畏难心理。特别是我院将C 语言作为理工科学生进校后首先接触的第一门计算机基础课,这种现象尤为明显,而C语言基础打不牢会直接影响后续专业课程的学习。因此如何改革“C语言程序设计”课程,进一步提高教学效果成为一个紧迫任务。本文根据多年的程序设计课程的教学实践,对“C语言程序设计”课程从教学内容、教学手段、教学方法等方面提出几点建议。

2.教学内容的改革

2.1课堂教学内容的改革

传统的《C 语言程序设计》教学内容主要包括C语言语法基础、数据类型、程序控制结构、函数、指针、文件等。教材在内容组织上,在语法上讲解过细、过多。在各章节的编程例子中,多数难度较大,分析较少;不够形象,学生较难理解,且适用性不强。笔者本着“以任务为驱动”的指导思想,在课堂教学过程中,对教学内容重新进行了归纳,将难点再次分散,以缩小台阶,达到循序渐进。

2.2 实验教学内容的改革

“C语言程序设计”是一门实践性很强的课程,既要掌握概念,更要动手编写程序。其主要任务就是培养学生具有一定的阅读程序、设计编写程序的能力,分析问题、解决问题的能力和逻辑思维的能力。因此,上机实验是学习程序设计课程必不可少的实践环节,特别是C语言灵活、简洁,更需要通过编程的实践来真正掌握它。我院为非计算机系理工科学生开设的“C语言程序设计”课程的实验学时是32 学时,共8个实验。由于实验课时较少,在实验内容的安排上就显得十分重要。实验的总体要求,强调上机实验要经历三个步骤:

(1) 上机前的准备让学生写出实验预习报告。内容包括对实验题目的理解和分析,选择适当算法,画出流程图并编写程序。分析可能遇到的问题及解决的对策。准备几组测试程序的数据和预期的正确结果,以便发现程序中可能存在的错误。

(2) 上机输入和编辑程序,并调试运行程序。首先调用C语言集成开发环境,输入并编辑事先准备好的源程序;然后进行调式。在调试过程中,要充分利用C语言集成开发环境提供的调试手段和工具,例如单步跟踪、设置断点、监视变量值的变化等。整个过程应自己独立完成。

(3)每次上机结束时老师都逐一检查学生编写的程序并打分评定。

3.教学方法与手段

在教学方法上,从以教师为主体的的方式转向以学生为主体、教师为主导的教学方法。有效地培养学生的分析问题与解决问题的能力。以“递归函数”为例,笔者先给出问题:王小二自夸刀工不错,有人放一张大的煎饼在案板上,问他:“饼不许离开案板,切100刀最多能切多少块?”。[2]通过引导学生分析问题,建立数学模型q(n)=q(n-1)+n,q(0)=1(一刀都不切当然只有1块)。再通过与或节点图分析数学模型的含义。最后给出递归算法程序。整个讲解过中结合板书,逐步引导,层层深入,取得了很好的教学效果。

在教学手段上,积极采用现代化的教学手段,如多媒体教学这样有利于激发学生的学习兴趣,发展学生的主体能力;同时由于多媒体信息量大,也能够优化教学过程。但对于案例分析或程序的编写过程,就发挥传统教学的优势,进行课堂讨论、板书讲解、结合提问,将问题层层剖析、层层深入,达到师生互动的效果,学生的想象力也会得到充分的发挥,对问题的理解也变得更容易。

4.课程考核办法的改革

建立一个服务于课程目标的学生学习评价方法是一项非常重要的工作,考核不是目的,“以考促学”才是考核的本质。传统的期末“笔试”这种单一的、“一考定终身”式的考核方式,已远远不能满足课程的需要。为使考核真正发挥“以考促学”的作用,要重视对学生学习过程的考核,重视实际动手能力的考核,侧重考核学生对知识的融会贯通和灵活运用能力,而不仅仅是基本理论、基本知识的掌握。具体的改革措施如下:

(1) 变单一考核为复合考核,从多个方面对学生进行考核。课程总成绩由平时成绩、实验成绩、期中成绩、期末成绩四个部分构成。其中,平时成绩考核包括对出勤、随堂实训、课堂提问、作业等部分;实验成绩考核是针对课程的8 次实验成绩。

(2) 衡量这门课学习的好坏,不是看学生“知不知道”,而是“会不会干”。期末试题考核的方法不用是非题和选择题,把重点放在读程序、编制程序和调试程序。实践表明,这种考核方法不但能更客观地反映学生的学习情况,同时也能促进学生学习,起到良好的教学效果。

5.结束语

本文教学内容、教学方法与手段的改革,是根据实际教学过程中学生存在的问题提出的,并已经在“C语言程序设计”课程教学实践中加以运用,得到大部分学生的认可,取得了较好的教学效果。只要我们不断探索教学改革,我校的C语言程序设计课程的教学必会取得长足的进步。

参考文献: