c程序设计范文
时间:2023-04-06 18:59:59
导语:如何才能写好一篇c程序设计,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
对于引用的定义可以归纳为符号的类型和符号的使用方式,在符号的类型中就符号的使用标示:标示符号&+引用名称=代码的名称;例如:printc;if&chart=if;标示出不同的定义,if就是标示符号的引用,也就是所谓的名称改变。符号的分析图为(图1)所示。在这里必须要以下的说明:&符号在标示中只是以标示名称的形式存在,不作为任何的含义;&符号在引用的过程中,对于初始的代码变化不会起到改变的作用,也不会促使代码发生任何性质上的变化;在引用过程中,对于引用前和引用后&符号使用的两个名称在作用上是相同的,也就是说名称只是一个代号,在程序使用中也是为了区分代码改变的标准,这就不能再进行代码的改名;代码的重新命名不是定义上发生任何的变化,所以在数据库当中的代码性质不会进行更新,只有在程序顺利运行后以及程序出现了调试过程后,新定义的使用&符号的代码才能被列入新的程序数据库当中。
2、程序设计中&符号的使用
C++程序中&符号出现的情况是标示为引用,对于函数的变化中会起到一定的作用,虽然不改变代码的性质,但是对于函数的定义还是会出现一定的影响。&符号改变的数学函数的参数变化,对于参数的定义域起到了重要的作用。在C语言中的函数值的变化,其中关于main函数的变化之最多,也是在程序研究中使用&符号最多、最为关键的因素之一。在对于main函数的&符号使用中,首先要弄清楚函数的最初原型,对于函数的表达意义要有初步的了解,并且能够合理的使用程序的改变方程式,对于main中的函数参数中&符号也有着不同的规范要求。在main可编辑函数中,agent是表示函数中参数的含义,&符号是表示为函数的变化地址,同时&符号也表达出函数中参数的个数,把agent最为函数参数的指导性参数值进行分析判断,统计&符号可以得到函数相关数组的即时数组信息。在操作系统中,函数中&符号的配置启动中,完全取决于操作系统的函数变化,对于操作中函数的初始变化值有着严格的要求,并在运行初始阶段进行函数的归零处理,后期在每个不同函数变换的模块当中,提取出不同数值的数据参数,来指导计算机程序的有效运行状态。通过改变符号的方式可以对于程序的效率有一定的提升。由上述例子看出,在函数中传引用和传指针的效果是相同的。这样,被调函数中的形参实际上就是主调函数中的实参或目标变量的别名,因此被调函数中所有对形参的操作实际上就是对相应的主调函数中目标变量的操作,一般传递的数据较多时,采用引用时程序的效率较高。虽然使用指针传递地址也能达到相同的效果,但因为在被调函数中还要为形参分配存储单元,而且在主调函数的实参必须使用变量的地址,这种方式必将导致程序阅读性较差,而使用引用便显得简单易懂,而且程序结构也更清晰。常引用声明方式:const类型标识符&引用名=目标变量名;在这种引用方式中,由于目标变量的值的修改不能通过引用来间接修改,因此可以很好地保护目标变量的值,使得引用有了很好的安全性,即相当于目标为const型的变量。当参数需要定义为引用型是,如果实际需要容许尽可能定义为const,这样可以保证代码的健壮性,同时也能带来其它的好处。在函数的定义过程中对于代码的变量指标在初始定义之后,在对变量的变化值进行记录,该代码指针变量便指向初始化指针变量的目标变量。通常情况下规定,具体操作过程时,对代码的指针的操作实际是对其所指向变量的间接操作。程序设计过程中使用指针可以让系统的程序的可读性降低,在操作起来也相对的困难。而由于引用本身就是目标变量的别名,编程中对引用的操作就是对目标变量的直接操作。引用其实也是一种指针,只不过其操作方式与指针不相同,指针可以一对多进行映射,而引用却只能一对一的进行,也就是一个参数对应一个代码指针数值,即&符号中的数字不能被改变,因此在对于符号的使用中,鉴于引用比指针更容易进行操控和编辑。
3、结语
篇2
关键词:C/S模式;考试系统;题库;自动组卷;C#
中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)30-7344-03
Design of Program Language Course Examination System Based on C/S model
HAN Yan1,2
(1.College of Computer Science & Information of Guizhou University, Guiyang 550025, China; Guizhou Commercial College, Guiyang 550004, China)
Abstract: According to the characteristics of the Program Language Course Examination, Analyzed the Examination System, introduced the design of 3-tier structure, the design of database, the design of the function module, and the environment of the system,development tools, as well as the key technology.
Key words: C/S model; examination system; exercise library;auto generating test paper; C#
1 绪论
随着计算机的普及,目前在各所高校中,普遍开设有程序设计类课程。对这类课程目前的考试方式主要有两种:1)笔试:题型包括单选题、判断题、程序填空题和编程题四大类;2)作品考试。学生或独立或分组完成某个系统的设计和实现。以上两种方式各有优缺点。第一种方式对学生编程能力的考核存在不足;第二种方式对学生理论知识的考核有缺陷。网络环境下的计算机考试系统来实现程序设计类课程考试,可以结合两种考试方式的优点,通过考试系统既能实现对理论知识的考核,又能提供编程环境,使学生上机完成程序设计题的编写和调试。
2 考试系统的需求分析
计算机程序设计课程要求考生掌握程序设计的基础知识,应用程序设计语言编写小程序的能力。考试系统涉及到四种题型,选择题、判断题、程序填空题和程序设计题。考试系统在试题库中随机抽取试题组卷,考试结束后,提交试卷就能自动评分并保存试卷,既方便教师阅卷,也提高了试卷批改的准确度和速度。教师所要做的工作只是精心设计题目、维护题库。
本系统应该具备以下功能:
1)题库管理功能。教师可以对题库的题目及题型进行录入、修改、删除等相关功能。
2)组卷功能。系统可按考试出题要求为学生自动随机抽取试题库中的题目组成试卷。
3)评分系统。系统可对客观题进行逐个批改。主观题提供老师阅卷界面,显示学生的操作结果与本题的标准答案,老师进行评分。
4)交卷功能。考生开始考试后,系统将自动计时,考生考完可选择交卷功能。在考试时间剩余5分钟时,系统会提示考生,到达规定的考试时间时,系统关闭答题窗口,提示考生交卷并结束考试。
5)断点续考功能。所有考试结果自动保存在网络考试服务器上,并具有二次登陆功能,防止断电和死机等原因导致考试失败的功能。
3 计算机应用基础考试系统的设计
3.1 系统的体系结构
本系统采用三层C/S结构,在三层C/S结构中,业务逻辑与客户端分离,这样在一定程度上减轻了客户端的负担。三层C/S结构是将整个业务应用划分为表现层(VI)、业务逻辑层(BLL)和数据访问层(DAL)。其解决方案是:对这三层进行明确分割,并在逻辑上使其独立。三层C/S架构区分层次的目的是为了“高内聚,低耦合”的思想。
表现层:通俗地讲,就是展现给用户的界面,即用户在使用一个系统时他的所见所得。表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。为使用户能直观地进行操作,一般要使用图形用户接口(GUI),操作简单。
业务逻辑层:针对具体问题的操作,也可以说就是对数据层的操作,对数据业务的逻辑处理。它是应用的本体,它将具体的业务处理逻辑地编入程序中。处理所需的数据则要从表示层或数据层取得。表示层与功能层之间的数据交往要尽可能简洁。而由功能层处理过的检索结果数据也一次传送给表示层。
数据访问层:数据层就是DBMS,负责管理对数据库数据的读写。该层所做事务直接操作数据库,针对数据的增加、删除、修改、查询。
三层C/S结构的优点如下:1)具有灵活的硬件系统构成;2)提高程序的可维护性;3)利于变更和维护应用技术规范;4)进行严密的安全管理。
本系统的三层C/S架构设计,如图1所示。
在图1中将整个系统划分为如图所示的逻辑结构,同时还给出了解决方案中对应的程序结构。
其中表现层即考试系统界面层,是考试系统的用户接口部分。本考试系统用户由三类:管理员、老师和学生,根据用户的性质,将管理员和老师从服务器端登录,学生从客户端登录。因此,对应的将系统的表示层分为客户端和服务器端两个项目来完成,并分别命名为SysServer和SysClient,作为两个独立的项目,用于用户操作;业务逻辑层主要实现考试系统处理业务,命名为SysBll,作为一个单独的类库,包含所有系统需要处理业务的类的集合;数据访问层用于考试系统数据访问,命名为SysDal,也是一个类库项目,主要用于操作数据库,实现对数据库的增加、删除、修改、查询等操作。
除此之外,还用SysDal项目来定义数据访问层接口,其作用是定义一种系列“功能”的声明或名单,没有实现细节;用SysModels项目用来定义类,是对各个实体的抽象,包含各个实体的属性已经设置和获取的方法,最终用于建立实体对象。[1]
3.2 系统功能设计
考试系统主要分为以下模块:人员管理、试题管理、考试管理、评卷管理、成绩管理、考生登录、试题生成、开始考试和试卷提交。
3.3 系统功能描述
1) 人员管理:实现后台登陆,管理员、教师、考生的增删改和人员权限的设置。
2) 试题管理:对试题的类型进行管理,并定义各种试题的操作,添加和管理各种试题。
3) 考试管理:对考试进行管理,设置和修改考试、考场的相关信息。
4) 评卷管理:对于客观题进行自动评卷记分;对于主观题进行手动评分题。
5) 成绩管理:进行成绩统计分析
6) 考生登陆:考生登陆考试系统。
7) 试题生成:根据试题库,随机生成学生考试题。
8) 开始考试:学生进入系统进行考试答题,并且开始记时。实时保存学生考试进度,以免异常造成考试信息丢失。
9) 试卷提交:学生提交答案,系统自动将答案提交服务器。[2]
3.4 数据库设计
3.4.1 数据库的需求分析
在设计数据库结构时,既要考虑到尽可能地满足系统应该实现的各项功能需求,同时又要避免冗余数据的产生。根据考试系统的特点,考试系统在实现过程中,主要采集以下方面的信息:管理员信息表、考生信息表、试题知识点表、试题类型表、试题表、考生考试信息等。
管理员信息表:包括系统管理员和老师的人员编号、人员名称、登陆名、密码、人员类型等相关信息。
考生信息表:包括考号、身份证号、姓名、班级、年龄、性别、状态、考场号、得分等。
试题知识点表:包括知识点编号、知识点名称、所在章、所在节等知识点。
试题类型表:包括试题类型编号、名称、备注。
试题表:包括题目编号、知识点编号、试题类型、题目内容、选项A、选项B、选项C、选项D、标准答案、标准答案文件等相关信息。
考生考试信息表:包括考生编号、试题编号、得分、答案、答案文件等。[3]
4 实现的关键技术
4.1 实现的环境
4.1.1 硬件环境
服务器一台,客户机80台组成的局域网硬件环境。
4.1.2 软件环境
服务器端:操作系统Windows 2003 Server;数据库:SQL SERVER2005。
用户端:操作系统: windows xp;数据库:Access。
网络协议:TCP/IP。
4.2 开发工具选择
根据本系统要实现的功能,需要选择两种工具,即前台开发语言和后台网络数据库系统。
本系统选择C#作为前台开发语言,SQL Server 2005作为后台数据库系统,并选择Visual Studio 2005作为C#的开发环境。
4.3 实现的关键技术
1)题库的设计
根据课程要求,将本考试系统的试题类型分为:单项选择题、判断题、程序填空题和程序设计题。因此,在题库中必须要包含上述类型的试题信息,其中包括题目文本和标准答案。
本系统将所有题目类型建立了一个试题类型表来记录每一种题型的编号及名称,试题知识点表来记录每道题的知识点名称、所在章、所在节等信息。用试题表来保存所有题目,由于各种题型的题目保存在一个表中,其中用字段TypeID来说明每一道题目的类型,Content记录题目描述,Score字段记录每道题的分值。对于选择题部分的题目,用A、B、C、D四个字段记录答案选项。选择题和判断题是自动评分,且用Answer字段记录标准答案;程序填空题和程序设计题采用人工评分,程序填空题用Answer字段记录标准答案,程序设计题用AnswerFileName保存标准答案文件名。
2)组卷的实现
考生上机考试登录成功后,系统在试题库中随机抽取试题组卷。在生成题库时,已将题型信息记录在试题表,以便抽题时使用。
组卷时,系统更新考生考试信息表,在表中记录该考生的考生号,抽取的试题号。抽题时按不同题型、不同的知识点抽取题目。为了避免抽到重复题,每抽一个题将与该考生已抽题进行比对,如果题目已抽取为该考生题目,将不放入考生试卷,重复抽取直到生成所有的不一样的题目。抽题后,直接在服务器上生成一个考生文件夹,所有程序填空题和程序设计题的答案文件放入考生文件夹中。
3)评分
目前对于选择题和判断题的评分方法都简单,即将考生的答案与标准答案比对,答案一致就等分,答案不一致就不得分。而对于程序填空题和程序设计题答案存在不唯一性。因此,本系统认为合理的评分方法是,对于客观题(即选择题和判断题,选择答案是唯一的),把标准答案均设置成题库中的字段,可以完全由机器阅卷;而非客观题(即程序填空题和程序设计题),可以采用计算机辅助人工阅卷方法,在阅卷时,调出标准答案和考生答案,进行比较,权衡后给出符合实际的评分。这种批阅方式虽然在速度上比不上完全自动批阅,然而能确保其公正性。
4)二次登录
如果考试期间发生突发事件,导致考生无法继续考试,那么在考生二次登录后,需要还原考生的考试环境;本系统通过数据库记录考生信息,出现故障时通过此数据库恢复考生信息。
5)程序的移植
为了方便程序移植,本系统采用了配置文件来进行程序的移植。也就是将与数据库的连接写在app.config文件里面更方便,并且易于修改。
5 结论
网络环境下的计算机考试系统进行考试,具有以下优点:减少重复劳动,提高考试效率;保证考试公平性、公正性;方便教学管理、实现节能环保,同时也能够实现其他科目的考试,是考试发展的必然趋势。本系统采用C/S三层结构设计,具有较好的维护性、扩展性、安全性和可移植性。
参考文献:
[1] 王国胜.C#基础与安全开发详解[M].北京:清华大学出版社,2009.
篇3
钟 实
(江西科技学院)
[摘 要]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毕业于浙江大学
篇4
关键词:C# 教学内容;教学方法;教学改革
中图分类号:TP312.1-4
学习计算机程序设计是提高学生计算机知识和能力水平的重要步骤,C#语言作为当今最为流行的计算机语言之一,其兼顾了Visual Basic和C++的优点――即具有Visual Basic语言简便易学的特点又具有C++语言的强大的功能。因此,正受到越来越多的用户的喜爱。但事物都是具有两个方面的,C#既然继承了C++语言的强大功能,其必然就会存在一定的教学难点。笔者在教学过程中发现,许多学生认为C#与Visual Basic相比而言其概念比较复杂、使用灵活(虽然其取消了指针的概念)、规则繁杂、比较容易出错。这也直接导致了教师的教学和学生学习均感到较为困难。尤其现今,很多学校均将C#语言作为计算机学生入校后的第一门计算机语言类课程,这种现象就显得成为突出。笔者根据多年的计算机程序语言方面课程教学的经验,对《C#程序设计》课程从教学内容、教学手段等方面进行研究和创新,取得了一定的教学成果,现对其介绍如下:
1. 教学内容的改革
1.1 课堂教学内容的改革。以清华大学出版社出版的《C#程序设计基础教程与实验指导》(孙晓非、牛小平、冯冠、李乃文等编著)为例,C#程序设计的主要内容包括:.NET开发基础、C#基础语法、函数、面向对象的编程、数组与集合、处理字符串、处理异常、Windows窗体控件、可视化界面设计、文件存取、数据库编程、应用案例(超市管理系统)等十二个部分。一般而言,《C#语言程序设计》的相关教材或参考基本以上述内容展开。大多数教材在教学内容的上进行了分类的组织,但在讲解过程中还是发现了相关教学的难点过于集中。虽然一些教材也在渗透着案例教学的方法,然而仍然存在着适用性不强、内容的难度跨度过大,使学生感到无从下手,甚至是不知所从。笔者在教学过程中本着“深入浅出、实用为主”的指导思想,在课堂教学的过程中对相关的教学内容进行整合,以使学生能够更好的领悟计算机语言的实质。
在此,笔者认为,计算机程序设计不论使用什么语言,其本质都是模拟人的手工操作。因此,对于《C#程序设计》而言,其首先并不是要向学生讲解其语法的构成,而是要向学生阐述C#能做什么和应该如何去做,这样才能使学生提升起学习的兴趣。如果仅仅是向学生灌输C#的各种符号、函数、文件存储等方面的知识,就容易使学生陷入到细节的“大海”,而失去了“航行”的方向。而按照笔者的思路,首先向学生介绍案例――包括案例背景、要求及人工操作的流程;然后,再向学生介绍用C#语言开发的相关流程;最后向学生介绍使用C#开发的具体函数和文件等相关的知识。这样做就比较容易在学生中产生共鸣,使学生更早地了解相关C#的基础知识对其有什么样的作用,也就能更早地喜欢上C#语言了。
另外,在《C#程序设计》的教学过程中,笔者还认为应该更早地向学生渗透Windows的工作机制。不论是哪种程序设计语言,其基础的平台都是Windows。因此,更好地了解Windows的工作机制对于程序开发来说是至关重要的。C#本身“脱胎”于C++,这就更需要对Windows的工作机制进行一定的了解。笔者在学习C++编程时,曾经认真听过孙鑫老师所讲的《Visual C++深入详解》课程。孙老师在此课程中的第一讲就是讨论的Windows的工作机制,在听过该课程中,曾经使笔者有茅塞顿开的感觉,真真切切的感觉到计算机语言的代码其实真的“不那么重要”,最重要的是要能够建立起一种程序设计的思维和意识。
1.2 实验教学内容的改革。计算机语言程序设计的主要任务是要使学生能够具有分析问题、解决问题;阅读程序、和设计程序的能力。同样C#语言也是一门实践性非常强的课程。既要求学生能够看懂程序,又要求其能够上机对程序进行调试和修改。当然不同层次的学校,对学生相关的能力的要求有所不同。就笔者所授课对象而言,首先要求的就是其能够看得懂别人编写的程序;其次是能够对其进行修改,使其符合自己的需要;最后,也是最高的要求就是能够对在修改原程序的基础上进行创新。
基于上述的考虑,笔者在实验教学过程中刻意舍去了一些比较简单和枯燥的实验,而是有浅入深地采用了一些学生比较感兴趣的实验。比如,笔者在实验课的教学过程中引入了用C#语言编写模拟小球的抛物线运动的程序。通过这个实验,不仅提升了学生的兴趣(高中物理实验的内容),更使学生对计算机图论方面的知识有了初步的认识。
另外,笔者在实验教学的过程中,还让学生编写了一些具备一定难度的程序――例如冒泡排序和二叉树等与数据结构有关的程序。虽然,有部分学生对上述程序的编写感到有一些茫然,但经过一定的时间后,大多数的同学都能够编写出能够完成部分上述功能的程序。更为重要的是,通过这种锻炼,使同学们领悟到了数据库中所涉及到的排序和查找是如何实现的。
2 教学方法的改革
在《C#程序设计》的教学过程中,一方面要求教师能够将知识准确、生动的“传输”给学生。另一方面,也要求老师更新教学方法,以提高教学质量。以下是笔者在几年的《C#程序设计》课程的教学中所采取的一些教学方法。
2.1 问题探究教学方法。对于C#程序设计而言,笔者认为最重要的方面不在于学生对C#语言有多熟,而在于其能否提出问题。也就是为什么要做这个项目、做这个项目的关键是什么、关键的关键是什么。其实不论是程序设计还是其他的任何事情,能够提出问题,就将是一个好的开始。
所以,笔者在课堂教学中,一直非常注重问题探究的教学方法,就是要不断地让学生提出问题、分析问题和解决问题。
2.2 归类教学方法。学生毕业后从事计算机编程工作,其一定会遇到各种类型的编程工作。因此,笔者认为在校期间就应当让学生学会对已经接触过的程序进行分类,找出其共性和不同之处,比较其不同之处发生和存在的原因。只有这样,才能使在应对将来的工作中不至于“手忙脚乱”。因此,笔者在教学的过程中,经常使用归类的教学方法,使学生更加了解程序的类型,以期不断提高程序代码的重用性和程序编写的效率。
2.3 讨论教学法。笔者在《C#程序设计》的教学过程中发现,许多同学只愿意听老师讲,而不喜欢动脑思考,这也直接限制了学生思维的拓展。笔者始终认为,《C#程序设计》课程能否学好,其关键因素就是能不能打开思维的窗口。而要打开这个窗口,一个非常关键的因素,就是要让学生主动参与讨论。因此,笔者在教学的过程中一直努力使学生积极、主动地参与到专题讨论中来,使C#能够逐渐的融入到其思维当中去。
2.4 因材施教法。由于不同的学生,所处的环境和所经历的学习过程均不尽相同。如果一味地按照一定的模式对学生进行课程的讲授,势必会引起学生的反感和教学质量的下降。因此,笔者在教学过程中,注重对不同学生采取不同的教学方法,根据不同学生的兴趣特点,引导其进行不同方面的编程研究。
2.5 综合考评法。衡量学生对《C#程序设计》课程掌握的好与不好,不能够只从期未的卷面成绩入手,应该着重看学生会不会答(对学生理论知识掌握的考察)、会不会做(对学生实践能力的考察)。所以笔者对学生学习成绩的评定,采用综合考核法,将平时的实践成绩与期末卷面成绩进行综合,得出本课程综合考评分。这种教学法,不但能更客观地反映学生的学习情况,同时也能促进学生学习,起到很好的教学效果。
3 结束语
上述的教学内容与教学方法的改革是笔者在多年教学过程中总结出来的,并已经将其应用于《C#程序设计》课程的教学中,且取得了一定的效果。当然相同教学方法不可能应用到不同类型的学生中去,当然教学方法还需要学生的配合和认可才能取得应有的效果。笔者将在今后的教学工作中,继续探索《C#程序设计》课程教学方法的改革,以期使这门课程取得更好的教学效果。
参考文献
[1]孙晓非.C#程序设计基础教程与实验指导[M].北京:清华大学出版社,2012.
[2]谭浩强.C#项目导向与实训程序设计教程[M].北京:清华大学出版社,2010.
[3]陈东.计算机多媒体教学改革的一些尝试[J].福建师范大学学报(自然版),2004,20(3):98.
篇5
【关键词】程序设计课程 教学方案 能力培养
【中图分类号】G642 【文献标识码】A 【文章编号】1006-9682(2012)06-0010-03
程序设计类课程是计算机科学与技术及相关专业的基础课程,在计算机专业课程体系建设中占有十分重要的地位。目前大部分高校在程序设计教学中多采用传统的讲授法和系统的学习,同时结合一些上机实践操作来巩固和熟悉课堂上所讲的一些知识点,但对于计算机程序设计课程而言,其特点是更新更快、内容多、课时少。所以,在授课内容处理上既要讲授大量的基础知识、基本概念,而且还要讲授具体的应用甚至操作,要让学生掌握计算机的应用能力;既不能抛弃传统的、经典的内容,又要介绍当前最新的成果。传统的系统学习和讲授有许多缺点,它偏重知识的灌输,重理论轻实践,以教师为中心,以单项讲授为主,是式的学习方法,培养出的学生实践能力不强,不能满足当前社会对人才的需要。[2~4]教育的目标是培养、提高学生的科学素质,科学素质教育的核心是培养学生的实际动手能力与创新精神。[5]所以,我们提倡把程序设计课程的重点放在学生的能力培养上,即如何从计算机解决实际问题的角度,以解决实际问题的程序设计思想作为切入点进行教学,培养学生具有利用软件开发环境解决实际问题的能力。
在上述教学理念的指导之下,为了使程序设计课程达到上述的目标,提出以下教学方案,包括课程设置、教学内容与教材建设、教学方法、教学手段等。
一、课程设置
在课程设置上,我们应采用《程序设计基础C++》+可视化开发环境介绍的方式,并配备集中课程实践的方式。通过《程序设计基础C++》的学习,学生可以掌握基本的编程技能,但不能具备利用软件开发工具进行高级编程的能力,不能满足社会对计算机专业学生的编程要求,甚至出现大四毕业生连一门开发工具都不掌握的情况。通过这两门课程的学习,学生能较深入全面地掌握程序设计的思想和技能,并可以使用软件开发工具进行高级编程。
学习程序设计的目标是利用计算机这个智力工具来分析和解决问题,对现实问题进行建模并编程解决的能力的培养是程序设计类课程的首要任务。知识、能力和素养三者具有辩证关系,一个具有较强能力和良好素养的人,必须掌握丰富的知识。程序设计基础领域的知识是由程序设计的基本概念和程序设计艺术(技巧)组成的,要掌握这些基本概念和设计艺术,必须立足于理性化的学习和理性化的实践。能力是技能化的知识,是知识的综合体现,程序设计能力的培养必须通过动手实践来培养,同时程序设计需要以扎实的理论基础、学科方法以及思维方法来指导实践。为此,程序设计的课程应在加强课堂教学的同时,更注重上机实践环节,学生通过上课掌握了丰富的知识,通过实践锻炼了个人能力,与此同时个人素养也得到提高。[1] 程序设计基础C++的语法和语义介绍以及开发工具的介绍,可以帮助学生掌握基本的程序设计概念,只有通过两门课程大量的上机实践才能帮助学生把所学的理论知识用于解决实际问题,促进学生程序设计能力的提高。以我校为例,程序设计基础共96学时(60学时课堂教学+36学时上机实验),在大一开设,课程结束后紧接着是两周的程序设计课程设计。目前该课程实践教学环节由两部分组成:与课堂教学同步安排的实验上机和集中安排的课程设计。实验上机注重学生理解和消化课堂讲授的知识,偏重于如何编写功能单一的“小”算法,局限于一个或两个知识点,运用这些知识解决一些具体的算法设计问题,培养学生的动手能力,并培养良好的程序设计风格。课程设计是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养,对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的、必不可少的一个教学环节。但是,课程设计的效果不尽人意,绝大部分同学只是在DOS环境下实现了一个算法,演示效果缺乏美观,尽管我们一再要求学生自学可视化开发工具如Visual C++,但是只有极少数同学进行这项工作,很多同学反映,看不懂,太难了。所以,根据实际教学经验,应该开设可视化开发环境介绍这门课,帮助学生掌握一门实际的开发工具。学习完这门课以后,开设课程设计,这样,在课程设计阶段综合运用所学知识,提高学生用软件开发环境解决实际问题的能力。
二、教学内容与教材建设
教学内容的组织与实施是程序设计课程改革的重要内容。教学内容在组织上应该与时俱进,不与实际的程序设计发展脱节,比如,STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。应该作为程序设计课程的必不可少的组成部分,程序设计内容体系结构应分为三个部分:第一部分简述程序设计的基本概念和思想,以C++语言面向语法和语义为背景,讲述一般程序设计语言所具有的基本内容:数据(类型)、操作、程序控制结构、数据控制,这部分内容重点介绍如何进行结构化程序设计及计算机解题的思路和方法,使学生理解算法结构与解题过程,同时掌握程序调试与测试的初步技术。第二部分以C++面向对象机制为背景,介绍面向对象的基本概念:类、对象、消息、方法、封装、继承、多态,使学生初步掌握面向对象程序设计开发技术的基本方法,为后继课程打下基础。第二部分以标准模板库和Visual C++开发工具为背景,介绍容器、算法、迭代子、开发环境、MFC、视图等知识,使学生进一步掌握面向对象的程序设计方法,以及用高效的工具进行软件开发的能力。
教材的质量直接影响教学的质量,以注重学生的程序设计思想和能力的培养为指导,组织编写具有特色的、高水平的教材。此外,随着教育信息化进程的推进,仅提供一本平面纸质教材,已无法满足高校的教学需求。为了教学的需要,我们给学生提供了立体化的教材,主要包括:主教材、学习指导书(实验和课程设计指导书)、主要参考书目、电子教案、多媒体课件、习题库和试题库等。这些资料,学生都可以通过网站获得。
三、教学方法
教学方法是程序设计教学的核心,有了合理的课程设置和教学内容,把程序设计的知识传授给学生,这是决定教学成功与否的关键因素。
在目前普遍采用的教育模式中,学生处于一种较单纯的接受式学习方式中,学生所学知识,基本上是由教师以定论的形式传授给学生的,学生不需要进行独立发现,而只需接受或理解。教师则更多注重知识的传授,重视教学内容的选择和讲授的技巧和方法的研究,而往往不重视对学生的自主学习能力和创新思维的培养。因此,在对传统教学方法分析的基础上,继续保持传教法研究的优势,改变以教师为中心的状况,注重学生多方面的能力和素质的培养,特别要重视学生思维能力、思维方法和创新能力的培养,应采用探究式教学方法。
1.采用探究式教学培养学生的创新能力
“探究式教学”,是指教学过程在教师的启发诱导下,以学生自主学习和合作讨论为基础,为学生提供充分自由表达、质疑、探究、讨论问题的机会,让学生通过个人、小组、集体等多种解难释疑尝试活动,将所学知识应用于解决实际问题的一种教学形式,[6]探究式教学方法通过“探究—创新”的过程,在培养创新型人才上起了明显的作用,强调通过在教师引导下的学生自主或合作进行探索而获得知识,特别适宜于思维能力的锻炼和自主学习能力和团队合作精神的培养,它在启发和培养学生创新能力方面呈现着明显的优点,受到教育学界的重视并得到了逐步推广。
2.采用案例教学法提高学生的兴趣
案例教学法(Case Method),在1870年由哈佛法学院院长蓝德尔(C.C.Langdell)首倡,案例教学法已被大学很多专业及中小学教学广泛应用。它是培养和提高学习者知识能力的一种教学方法,即将已经发生或将来可能发生的问题作为个案形式让学习者去分析和研究,并提出各种解决问题的方案,从而提高学习者解决实际问题能力的一种教学方法。案例教学法是一种启发学生研究实际问题,注重学生智力开发及能力培养的现代教学方法,它有着传统教学方法所不具备的特殊功能。和传统的“满堂灌”、“注入式”教学法相比,案例教学侧重实践和案例的讲解分析,启迪学生积极思维,强调在教学过程中学生主动参与,引导学生动用科学的理论知识,去分析、归纳、演绎、推理、总结,从而达到巩固知识的目的。案例教学的实施一般包括三个步骤,案例的选择,作为教师可以选择一些经典案例课题,如程序设计课程中的“学生管理系统”案例,接下来是案例教学的开展。案例教学的一般流程是教师介绍案例背景给出任务目标,学生开展现场讨论提出初步意见,之后就是在教师的指导下不断讨论与实践直至最终完成任务目标。案例教学的最后一步是评价,对学生提交的案例实施报告和案例解决方案根据案例任务目标进行评价,这里案例的评价通常由教师与学生共同完成,让学生介入评价更有利于加强学生对案例的认识提高案例教学效果。古语云:“授人以鱼,三餐之需;授人以渔,终生之用。”在案例选择及实施阶段强调学生的自学能力是非常有必要的。那么如何做到这点呢?首先逐步削弱学生对老师的依赖,即老师不再是学生学习知识的唯一途径,告知学生如何提高各种途径获得解决问题的方法是一种很有效的手段。在课堂中经常告知学生获取知识的三种途径:互联网、书籍或者编程软件的帮助文档、他人。其次是对学生独立解决的任何问题给予鼓励及肯定,这必将进一步促进其独立解决问题的兴趣。最后是在案例中刻意制造一些未学习过的问题,促使学生必须通过各种途径找到解决方法。[7~8]
3.采用任务驱动式教学法增强学生的综合能力
任务驱动教学法是一种建立在建构主义教学理论基础上的教学法。所谓任务驱动教学法,就是让学生在一个典型的信息处理“任务”的驱动下,展开教学活动,引导学生由简到繁、由易到难、循序渐进地完成一系列“任务”,从而得到清晰的思路、方法和知识的脉络,在完成“任务”的过程中,培养分析问题、解决问题以及用计算机处理信息的能力,为学生创造良好的学习环境,让学生通过努力,能顺利完成每个具体的任务,掌握学习内容,获得成功的体验。任务驱动式教学在形式上是:提出任务师生共同分析完成任务的方法和步骤适当讲解或自学或协作学习完成任务实践归纳和研讨。比如我们在上运算符重载时,在没进入主题以前,先给学生布置一个任务,实现两个复数的运算,可能学生会用以前的知识完成任务,也有的学生可能会有比较超前的想法,然后通过研讨的方式对问题进行分析并提出解决方案,最终完成任务,学生在完成任务的同时既学会了运用以前的知识点分析解决问题,又学会了运算符重载这一知识点。采用任务驱动教学法进行教学,教师的教和学生的学都是围绕如何完成一个具体的任务进行。教师教学思路清晰,学生学习目的明确,学习变成了学生的主动行为,可以充分调动学生的主观能动性,在用的需求下学,学以致用,更容易掌握学习内容,增强学生的综合能力。[1、7]
四、教学手段
在教学手段上,采用多媒体(黑板辅助)+实验室环境+网络课堂的方式。多媒体教学已经是一种非常重要的教学手段,但单纯使用多媒体进行教学,老师的即兴发挥以及与学生的交互将受到限制,所以,我们采用黑板进行辅助的方式。对于识记性的内容可以通过多媒体展示,对于理解性的内容,为了理清学生的思路则通过黑板给学生讲解。此外,对于一些例题,我们采用在集成开发环境下进行现场调试和制作例题的多媒体动态演示课件等方法来加深学生的理解。当前,程序设计的课堂教学一般在教室里采用“计算机+大屏幕投影”的方式,实验课在实验室环境下人手一机练习。该模式缺点是理论与实践相脱节、以教师为中心、束缚学生的思维,最终直接影响到教学效果。[9]在实验室环境下,老师讲课时,锁住所有的机器,使学生机和教师机保持同步,在学生练习时,再给机器解锁,让学生自由练习,通过这种方式,边讲边练,可以通过实际动手编程加深对新知识的理解。为了使所有的教学资源能被有效地利用,要建立一个网络辅助教学环境,即建立程序设计网络课堂,将现实教学中的课堂教授、作业、答疑、测试、课程设计、讨论等全部在网络课堂中予以实现,提供课程的教学大纲、教学日历、参考资料等。这样,为学生提供了一个很好的学习氛围。学生可以进入程序设计网络课堂进行在线学习、在线讨论和答疑、在线测试等。
五、结束语
总之,程序设计是计算机专业的核心课程,合理的课程内容设置配以科学的教学方法,充分利用科技发展带来的教学方式的革新,定能促进学生能力的提高,但是,还有很多方面有待进一步摸索。
参考文献
1 杨静、王浩、胡学钢、方宝富、张晶.程序设计课程教学改革探讨[J].吉林大学学报(信息科学版),2005(S2)
2詹自胜.案例教学法在计算机程序设计教学中探索与实践. 省略/lunwen/2008/200811/270935.shtml
3 方宝富、王浩、胡学钢.机器人足球赛程序设计教学研究——大学生创新能力培养实践第七届全国计算机系主任论坛论文集[C].北京:清华大学出版社,2004
4 何炎祥、伍春香.现代教学理论指导下的“编译原理”教学综合改革[J].计算机教育,2005(3)
5 刘传平.《C++语言程序设计》课程教学改革的探讨[J].中国科技信息,2005(11)
6 戴挺、童蔚苹.探究式教学法在计算机程序设计教学中的应用[J].电气电子教学学报,2005(4)
7 崔艳莉、张敏、王重英.浅谈“案例+任务”驱动教学法在VB程序设计语言教学中的应用[J].中国农业银行武汉培训学院学报,2009(1)
篇6
关键词:C#程序设计;迭代;项目驱动
中图分类号:TP393.092
C#程序设计课程是计算机专业的一门重要的专业基础课,课程要求学生能够熟练运用面向对象程序设计的各类方法,实现开发实际运用的各种应用程序。但是在面向对象概念和思想的学习,对于学生是一个十分抽象的知识学习,很多学校在该问题的课堂讲授中,也采用了大量的例子来灌输该部分的学习,但是大部分效果都不理想。为此,能否采用软件开发中经常使用迭代式开发[1]作为课堂教学改革的方法,将一个大案例分解若干个功能,按照知识的学习进度,不断使用新知识来迭代设计每个功能,从而使学生能在实际项目实践动手能力上进行融会贯通。
1 迭代法教学方法概述
在数学上为了求解方程不断重复某一过程,利用不同结果作为初值的方法叫迭代。当今的计算机软件开发中引用了该方法,将一个任务分为若干个功能,采用多次重复开发,每次增加功能模块开发。在由简到繁的迭代过程中,实现系统的各个功能的实现。
在程序设计教学中,可以采用软件开发[2]中的这种迭代开发方法,以任务驱动进行组织教学,将任务分解为相关联的独立功能,由浅到深、由易到难地进行知识点的贯穿和螺旋上升的教学,最终实现教学的知识目标[3]和教学任务。在这种迭代项目的学习中,学生不仅能够不断地巩固程序设计的基础知识,同时也能够设计出功能完整的系统,学生的积极性和实际动手能力能够得到很好地提升,并有助于实现课堂到企业的无缝对接。
2 迭代法在教学中的运用
2.1 迭代教学的设计
通过分析现有C#程序设计课程内容,我们细化了实验教学的方式和内容。整个实验教学过程中,我们采用两个原则作为实验教学主线。
(1)教学内容迭代贯穿始终。将关联的知识系统化,把实验任务及内容采用迭代的方式依次分解之各个实验中,使学生能够从浅入深、从易到难地完成。我们全程采用计算器和学生信息管理系统两个不同角度的案例进行知识的分解和迭代,把系统功能分阶段在各次实验中迭代完成,把其具体实现的功能也采用新的知识迭代实现。
(2)任务驱动方式教学。每次项目的分解,均采用任务驱动式教学,明确任务需求,并讲解任务实现所需关键知识。学生按照规范的软件开发过程进行实现,并提交任务清单及实现代码。任课教师会将学生优秀作品在下一次的讲授中进行展示和点评。
2.2 迭代教学实施
依据C#程序设计课程的教学目标,本文以学生最难理解的面向对象的类封装及继承的教学为例,选取“计算器”作为迭代式项目教学法的程序设计项目,来说明该课程教学中迭代教学法的具体实施过程。
计算器软件实现模拟Windows计算器功能,系统功能分解为算术运算、公式计算、科学计算、进制计算四大功能任务,四个功能均可采用迭代式教学法进行教学。为了实现类的封装、类的继承教学目标,下面就以算术运算的实现解释迭代式教学过程。
(1)第一次迭代。该环节教学围绕着掌握基本的C#语言基本结构,熟练运用各种运算符、表达式以及常用流程控制语句使用,注重培养学生分析问题、解决问题的能力。因此,第一次迭代的教学内容为使用C#语言的基本控制语句设计简单计算器的算术运算功能,能够现输入两个数和运算符号得出结果。涉及知识点主要包括输入输出语句的使用,if选择结构的使用及f语句嵌套使用的程序设计基础。
(2)第二次迭代。该环节教学围绕着学习C#语言的控制结构的应用技巧,学习运用程序结构的调整来提升程序的执行效率,并让学生养成程序的行业命名规则和程序代码的编写规范。为此,第二次迭代具体的教学主要采用功能上增加和调整、代码上进行编码规范修改。
功能上进行了修改和新增内容主要为:将原使用if时,出现每个条件都要做判断的多次无用执行过程进行修改,改为switch判断分支;新增异常处理try―catch语句,解决数据输入有效性判断处理,比如增加用户输入的是字符符号而不是数字、用户输入除数为0等情况。代码的编写规范内容主要为:规范变量名、代码缩进、注释的使用及其它命名规范的使用。
(3)第三次迭代。该环节教学围绕着掌握基本的C#语言基本结构,熟练运用各种运算符、表达式以及常用流程控制语句使用,注重培养学生分析问题、解决问题的能力,养成良好的编程规范。为了解决代码耦合度过高,重复率高的问题,实现可复用、可扩展的程序设计思想,需要将业务逻辑与界面逻辑分开。涉及知识点主要为:类的建立,类的封装及使用等。从而将运算过程单独提取出来,从而实现易复用。
(4)第四次迭代。使用类的继承知识,把加减乘除等运算分离,修改其中一个不影响另外的几个,增加运算算法也不影响其它代码。首先定义一个运算类,它有两个Number属性,主要用于计算器的前后数;然后有一个虚方法GetResult(),用于得到结果;然后把加减乘除都写成了运算类的子类,继承它后,重写了GetResult()方法。这样如果要修改任何一个算法,都不需要提供其它算法的代码了。整个程序将类的继承、类的虚方法的使用、方法的重写等知识点的灵活融合起来。
(5)第五次迭代。在本次迭代过程中,使用简单工厂的设计模式来重新整合程序,用一个单独的类来做这个创造实例的过程,从而解决让计算器精确实例化各种对象的问题。这样,不管是控制台程序、Windows程序、Web程序,PDA或手机程序,都可以用统一代码来实现计算器的功能。实现了面向对象的可复用及可维护的特性。
3 结束语
C#程序设计引入迭代式教学方法后,内容紧紧围绕着项目的迭代案例开发逐步展开,每一个迭代不仅使学生复习以前掌握的知识点,而且使学生在不断开发新功能过程中激发了其求知欲和创新意识。学生的程序设计能力均得到了大幅提高,不仅基础技能扎实,而且掌握了理论和实践相辅相成的学习方法和技巧。
教学实践证明,迭代式项目教学能够有效激发学生的学习兴趣,调动学生的学习积极性,潜移默化地滋养了学生的编程逻辑思维,有效提高学生学习效果。使学生的学习、技术和设计方法循序渐进、环环相扣,形成了一条合理的认知链。同时对后继课程包括整个专业课程的学习都产生了非常重要的影响。
参考文献:
[1]王艳娟,崔敏,宋建敏.案例式教学在 动态网页设计中的应用[J].科技创新导报,2009(14).
[2]曾爱民,蒋丽波,于顺达.采用项目教学法培养学生职业能力的研究与实践[J].职业技术,2009(09):37.
[3]蒋庆斌,徐国庆.基于工作任务的职业教育项目课程研究[J].职业技术教育,2005(22):46-50.
[4]王艳娟,崔敏,宋建敏.案例式教学在动态网页设计中的应用[J].科技创新导报,2009(14).
篇7
【关键词】C++程序设计 分层教学
【中图分类号】G642 【文献标识码】A 【文章编号】1674-4810(2014)21-0084-02
C++程序设计是计算机专业的理论、实践性都很强的专业基础课,是陕西职业技术学院计算机科学系大一新生进入编程世界的入门课,它语法丰富、算法灵活,不仅要掌握基本语法语句的使用,还要掌握编程的技巧,除结构化程序设计的方法还有面向对象的设计思想和技巧等,是新生眼中难学的课和教师眼中难教的课,提高其教学效果一直是C++课程教师的追求目标。
传统教学模式下,基础好、能力强的学生“吃不够”,而基础差、能力弱的学生“吃不消”的现象普遍存在,尤其随着高校的扩招、职业院校数量的增加及办学规模的扩大,高职学生的整体素质呈下降趋势。而且学生来源多元化,既有普通高中中下水平的学生,又有职业高中的学生和中考后录取的五年制学生。学生水平参差不齐,差异程度加大,这些差异主要表现在学生文化知识的基础上、学生学习能力、学习习惯、行为与心理等多个方面上,传统的教学方法已不适应当前教学的需要。面对学生个体差异的客观存在,如何使全体学生C++程序设计课程的学习水平普遍有所提高,提高该课程的整体教学效果,是该课程老师研究的重要课题。
学生的学习能力、知识水平、接受能力等素质直接影响着C++课程的教学质量,此外,学生对知识的内在需求也存在层次上的差别,对该课程推行分层教学很有必要。
一 分层教学概述
分层教学是因材施教教育思想的具体体现,是指教师要在尊重个体差异、需求的基础上,根据学生的知识基础、智力水平、学习能力、兴趣等因素,设计不同的教学目标、制订教学内容、确定教学方法,有针对性地对不同类型的学生进行学习指导,激发每个学生的潜质和能力,使每个学生都能学有所获。
二 分层教学的实施
1.学生分层
实施分层教学首先要将学生进行分层,分层方法的合理与否是决定分层教学效果的关键。老师在实际执行过程中,应充分了解、研究学生,根据学生的基础情况、学习能力、学习态度、操作能力等差异,可将班中学生分为A、B、C三个层次:A层为优秀层,该层学生的基础知识好,学习能力、操作能力强,有很强的求知欲,思维活跃,对编程兴趣浓厚,有很强的学习自觉性;B层为中等层,该层学生基础知识一般,有一定的学习兴趣,能理解老师讲授内容,实践操作能力较A层学生差,学习较自觉;C层为欠缺层,该层学生基础知识掌握差,基本无学习兴趣,学习不认真,学习能力、实践操作能力差,学习积极性不高。值得一提的是,对学生进行分层是任课老师自己的内在行为,老师自己心中有数即可,这样做就不会伤害学生们的自尊心。此外,层次的划分可动态调整,这是因为学生的可塑性较强,应根据学生的学习情况不断调整分层,以保护学生的学习积极性,提高教学效果。
2.教学目标分层
在对学生分层的基础上,以面向各层学生为原则,根据课程标准、教材的知识结构、各层次学生的认知能力,将知识能力、思想方法融为一体,合理地制订各层学生的教学目标,再将层次目标贯穿于教学的各个环节。最终目标是使每个学生的学习潜能都能得到发挥,尽可能地取得更大收获和进步。
3.课堂教学分层
在课堂教学中,老师针对不同层次的学生开展不同的教学活动,按照由浅入深、由易到难的原则及具体的教学内容和目标,不断变换教学方法,运用启发式、探究式、讨论式、多媒体课件辅助教学、网络平台教学等,激发学生学习的兴趣,使每层的学生只要努力,在每节课上都能学有所获,激发各层次学生进一步学习和探索的欲望。
4.实训内容分层
根据不同层次的学生及实训内容的难易程度,对实训内容进行分层,有助于大面积提高教学质量。具体分层如下:基础验证性实训:主要使学生及时牢固掌握C++的语法、语句要素、基本算法等基本知识点,重点是基础知识的掌握,是针对基础知识训练学生的基本技能,属于知识的直接运用,是全体学生的必做题,要求学生在课堂上独立完成。较简单的综合性实训:主要以B层学生能达到的水平为准,通常是在一章内容的基础性实训的基础上,对指定的实训内容附加一些思考题让学生去实现。如在学完控制语句后,要求学生实现2012年的工信部举办的蓝桥杯软件设计大赛决赛真题:素数就是不能再进行等分的整数。比如:7,11。而9不是素数,因它可以平分为3等份。一般认为最小的素数是2,接着是3,5,……请问,第100002(十万零二)个素数是多少?综合性或探索性实训:主要面向A层学生,它常覆盖多个章节的知识点,重在考查学生运用所学知识解决问题的能力,突出学生分析问题、解决问题思路的培养。在学生完成课程标准基本要求的基础上,可适当增加一些拔高的内容,如蓝桥杯软件大赛的题目或ACM中的题目,以培养这些学生的创新能力及解决实际问题的能力。如在学完结构体、函数、数组、经典的排序算法后,让学生试着完成一个综合性的题目:在选美比赛的现场,有一批选手参加比赛,比赛的规则是最后得分越高,名次越低。当比赛结束时,要在现场按照选手的出场顺序宣布最后得分和最后名次,获得相同分数的选手具有相同的名次,名次连续编号,不考虑同名次的选手人数:如选手序号为:1,2,3,4,5,6,7,选手得分为:5,3,4,7,3,5,6,则输出名次为:3,1,2,5,1,3,4,请编程帮助大赛组委会完成比赛的评分和排名工作。此外,教师应对那些能积极思考、正确完成选做题的学生及时给予肯定的眼神或由衷的微笑或赞许,这将给他们带来极大的鼓励,有助于提高其学习积极性。
5.辅导分层
在进行学习内容、方法辅导时,实行因人而异。对C层学生加强检查督促,进行面对面地指正、演示,也可让A、B层学生参与对该层学生的辅导;对B层学生着重进行启发、提示,也可让A层学生参与对该层学生的辅导;对A层学生进行知识拓展、提高性辅导,主要引导其进行自主地解决问题。
三 成效
分层教学尊重个性差异,强调以学生为中心,充分调动了各层次学生的学习积极性、主动性,这样不仅提高了该课程的教学效果,而且近三年来学生参与系上举办的软件设计竞赛及蓝桥杯软件设计大赛的积极性及成绩都得到明显提高,值得其他专业课程借鉴。
四 结束语
从高职教育人才培养的目标、生源质量现状及教学中存在的现实问题,在C++程序设计课程中实行分层教学,它体现了因材施教的原则,是面向全体学生的学习要求,调动了学生学习的积极性、减轻了心理压力,是全面提高教育教学质量、增强学生就业竞争力的有效途径。当然,分层教学在具体的实施过程中还面临各种问题、阻碍,有待在以后的工作中进一步进行探索和实践。
篇8
关键词:程序设计;教学方法;教学手段
中图分类号:G642 文献标识码:B
“C语言程序设计”作为一门公共基础课程,是高校理工科非计算机专业学生的一门必修课程。通过该课程的学习,学生不仅要掌握C程序设计语言的知识,更重要的是要学会分析问题的方法,提高解决基本问题的能力和程序语言的应用能力,并为今后的继续学习打下良好的基础。
由于“C语言程序设计”这门课程的实践性较强,必须通过大量的编程训练,才能逐步理解和掌握程序设计的思想和方法,因此,怎样激发学生自主学习的兴趣,培养学生的实际编程能力是这门课教学改革应解决的问题。
1教材适合教师的“教”和学生的“学”
教学有两个方面,一个是教师的“教”,另一个是学生的“学”。“教”是为了学生能独立地去“学”,就像叶圣陶先生说的那样:教,是为了最后达到不需要教。教师不仅要研究怎么教,更重要的是要研究学生怎么学。教师备课一定是要“背”学生的,首先要看学生的基础是什么?学生要达到的目标是什么?其评价的标准也是以学生能够掌握为评判标准。
其实,学生都想学好“C语言程序设计”这门课,也想掌握一门真本领到社会上去竞争。但很多学生一遇到问题就退缩了,不愿意费太大的力气,而这门课恰恰又是需要通过大量练习才能入门的一门课。
感谢由谭浩强教授编著的《C 程序设计》这本书,为教师进行该课程的教学改革提供了一个很好的平台。该书不仅将复杂问题简单化了,而且可使教师根据不同程度的学生对内容进行取舍而不影响整个程序设计的思想和方法。该书符合学生的任知规律,将学习的每一个台阶变“矮”,并能够使人理性认识C语言。
我们在教学中考虑到学生学习的难度,分解讲解,从而使学生克服了畏难心理,觉得C语言并不难学。有些课上没有讲到的内容,学生也可利用教材自学。同时,根据该教材,我们制作了适合学生自学的助学系统。考虑到学生基础的差异,我们结合教材,编写了《C语言程序设计上机指导》,从而给学生提供了一个自主学习的平台,受到学生们的好评。
2培养学生的抽象思维能力
在进行“C语言程序设计”的教学改革中,我们思考了这样的问题:如果教师只是钻研教材,并让学生理解、记住其结果,那么,学生就会失去独立钻研和获取新知识的能力;每个学习“C语言程序设计”的学生将来未必都从事计算机编程;因此,我们把砥砺学生的抽象思维能力作为了改革“C语言程序设计”教学的方法之一。
首先,我们根据“C语言程序设计”这门课的特点,研究了谭浩强教授编著的《C程序设计》这本书是怎样引导学生完成抽象的认知过程并逐步提升的;怎样通过简单的举例和进一步的讲解,使学生理解抽象的数据类型、函数以及指针在构造抽象程序中的意义;并将研究成果应用在教学中,从而使学生学会算法抽象的基本方法,掌握程序抽象的思考方法。
实践中,我们采用程序设计和语言讲解并行的方法。首先提出用程序要解决的一个问题,找出解决问题的方法,讲解要引入的新的语法知识,给出算法并解释,最后编写出完整的程序,再上机实践。
3激发学生的学习兴趣,培养学生解决实际问题的能力
教学与科研在研究目的等很多方面一样,其本质都是为了实际应用,并且科研的有些方法也同样适用于教学研究,因此,如何强调实践教学都不为过,并把培养学生解决实际问题的能力作为“C语言程序设计”教学改革追求的主要目标,这也与谭浩强教授编著的《C程序设计》这本书的初衷相一致。至于采用哪种方法好,笔者认为,主要看是否适合学生。在这个问题上,只有适合不适合,而没有好坏之分。
对于所要解决的问题,首先引导学生仔细进行分析、对各功能模块进行抽象描述、画出解决方案的流程图、讨论并修改算法、最后再进行编程、调试,并得出正确结论,这是培养学生创造性地解决实际问题能力的必由之路。我们在教授“C语言程序设计”这门课开始时,就把本学期要做一个实用作品、期末要进行上机编程考试、作品及上机考试占期末成绩的比例、要求写实验报告等信息告知给学生,并在期中将所要做的内容确定下来。有的是老师指定内容,有的是让学生自己选题。有的教师采取一对一辅导,有的分成小组让学生讨论,教师在适当的时候给予指导。对于做得比较好的同学及时给予表扬,并让学生将思路讲给教师听;同时要求写出详细的注释,并在小组或班上讲解。这样做,可使部分学生的编程能力明显提高,并带动了很多同学积极参与讨论,激发了同学们编程的热情,课上和课下都有学生在讨论编程的事,班里出现了良好的学习编程的氛围。
但是,我们清楚地认识到:要普遍提高学生的实际编程能力目前还存在着很大的困难。教师在有限的学时内不仅要完成授课计划,还要利用很多的课余时间完成类似于课程设计的作品辅导,教师在肩负科研和教学双重任务,所教学生多的情况下,也只是尽力而为。因此,在实际实施的过程中,采取“先让少部分人富起来”的做法,教师对部分编程爱好者多进行辅导,让好一点的学生去帮助其他同学。虽然取得了一定的效果,但距离我们良好的愿望还相差很远,需要我们在今后的教学中不断地探索,找出普遍提高学生实际编程能力更好的方法。
4 “C语言程序设计”的教学改革
C++是从C语言发展演变而来的一种面向对象的程序设计语言,其主要特点表现在全面兼容C,并且支持面向对象的方法。目前,C++程序设计语言已经成为应用最广泛的面向对象的程序设计语言之一,全国计算机等级考试(二级)也已把它作为主要考查的语种之一。很多学生考虑到就业,也希望我们开设这门课。鉴于上述等原因,我们从教学改革的角度出发,在我校部分班级开设C++程序设计课程,先在部分班级试点,待积累一定的经验,时机成熟时再向全院推进。
“程序设计方法是不可选择或不可抗拒的时代潮流,只能在应用中领悟和熟悉,算法则需要比较深入的理论知识,必须经过严格的科学训练。” 我们在教学实践中,本着一个原则:不论是C程序设计还是C++程序设计,均把培养学生的实际编程能力作为教学目标。对于非计算机专业的在校大学生来说,学习C++程序设计是为了让学生了解面向对象程序设计方法,能够利用C++编写较大并相对简单的程序,为以后进一步的学习和应用打下良好的基础。
通过对所教学生进行实事求是的分析和估计,我们选用了谭浩强教授编著的《C ++程序设计》作为教材。之所以选用这本教材,主要还是想用容易理解的方法讲清楚有关的基本概念和基本方法。该教材前7章的内容是C++从C语言继承来的部分。由于教师都是初上该门课,感到完成整个教材,课时有些紧张,如果再加上实用作品设计,学生负担会太重。因此,我们在教学上着力于使学生对C++的全貌和作用有基本的认识,而不是注重语法中的细节,同时引导学生阅读实用程序,指导学生在学完课程后,编写完成一个较大的应用程序。
5结束语
“C语言程序设计”的教学改革是一项长期的任务,无论怎样改,都要从学生的实际出发,发挥教师的主导作用,调动学生学习的积极性,使学生有收获。教学千古事,得失寸心知。在今后的教学实践中我们还要不断地完善教学内容和方法,做到既有“法”而又无“定法”,真正提高教学质量。
参考文献:
篇9
[关键词]C语言 程序设计 实践教学
一、前言
上个世纪70年代以来,C语言在以其目标代码质量高,使用灵活,数据类型丰富,可移植性好等特点而得到广泛的普及和迅速发展,成为一种在系统软件开发、科学计算、自动控制等各个领域广泛应用的程序设计语言。在众多高级程序设计语言竞显风流的当今社会,C语言以其强大的功能仍在高级程序设计领域占据着重要的地位。
C语言作为计算机类专业的一门专业课,是学生学习程序设计的开端,学生分析问题、解决问题的能力和程序设计过程理念的形成都与C语言有着密切的联系。C语言有着其它高级程序设计语言不可比拟的优点,同时也有其较难学习的一面。由于现行教学过程中存在着一些弊端和学生自身因素的原因,所以在学习中普遍反映“难学”、“不懂“,这也是学生普遍遇到的问题。
二、现行教学和学习中存在的问题
1.现行教学中理论课与实践课完全分离,不能相互促进。理论课中往往只注重对教材知识的分析和灌输,在广度上对知识没有拓展和延伸,必定会影响对知识深度的剖析,也会造成学生理解的困难。而实践课程通常被放到了次要的地位,很多时候是在走形式:一方面,学生对知识一知半解、往往用上网来对付实践课;另一方面,老师很难监控到每个学生,了解他们是否都在认真编写、调试程序。这就造成理论课没有起到为实践课打基础的作用,实践课也没有起到巩固、应用理论课的作用。
2.学生对计算机基础的学习不深入,严重影响了C语言的学习。因为C语言程序设计课程的延续性和拓展性非常的强,包含了算法、数据结构、计算机基础等相关专业课程和基础课程的课程的知识。在C语言教学中涉及到进制转换、取值范围和顺序存储等基础知识时,发现很多学生还没掌握这些基础知识,甚至根本不理解。在这样薄弱的基础上,C语言教学很难顺利进行。
3.学生在学习中处于被动的接受知识的地位,没有机会主动参与到学习中来,导致学习兴趣不浓、学习停留在表面、对知识学的一知半解。由于接受的多是课本知识,所以动手能力差、应用能力差,导致不能把自己所学的知识应用到实践中去。这样培养出来的学生不能满足社会的需要,也没有达到教学的目的。
三、探索新的教学方法
在多年的教学过程中,尝试多种教学方式,不断总结教学经验,探索新的教学方法。
1.上好第一堂课,引起学生的学习兴趣。第一堂课是最基础的理论知识课,如介绍C语言的发展、特点、优点等内容,往往不被教师所重视,认为应该把精力放到程序设计部分。其实恰恰相反,上好第一堂课至关重要,它关系着学生是否会对学习产生兴趣,渴望进行后继内容的学习问题,所以绝对不能照本喧科。而对C语言的发展追本溯源,将C语言领域的开发投入、研发过程、遇到的问题进行详细的分析,对C语言在现实中的应用以及C++、VC++进行介绍,往往能够引起学生学习C语言程序设计的兴趣、推动后续知识的学习。
2.详细讲解基础知识,深度剖析与后继课程相关的内容,激发学生学习动力。C语言程序设计教学中涉及的数据类型、取值范围、运算符、优先级、表达式等内容虽是基础知识,但对学生来说却是迈入程序设计大门的第一步。没有坚实的基础知识,便无从谈及程序设计,所以对基础知识的讲解一定要详细。比如遇到整型数据的取值范围问题时,可以适当拓展一些原码和反码的知识,让学生知其然,更知其所以然;链表知识是C语言的难点,这部分内容和数据结构联系密切,所以要深度剖析,尤其是对带表头结点的单、双链表更要讲解的清晰、透彻,为数据结构、JAVA语言等后继课程打下坚实基础。这样继往开来,不仅可以巩固以前的计算机基础知识,更能激发学生的学习动力。
3.重点分析程序设计过程,培养学生良好的编程习惯,逐步提高学生编程能力。很多学生认为,进行程序设计就是用计算机语言编写源代码,这其实是学习程序设计的一个误区,编写源代码仅仅是完成了程序的编码,而程序设计从问题分析就开始了,它包括分析问题、选择算法、绘制流程图、编写源代码、调试并测试程序,直到取得正确结果这样一个完整的过程。其中绘制流程图能使程序员在编程时思路清晰,减少编程错误。利用流程图来分析、查找、解决程序设计中的问题能够一目了然。例如:下面这一简单的while循环结构,用流程图便可以轻易发现错误所在。图1是错误代码的流程图,它使程序陷入了死循环,图2是正确的流程图。所以绘制正确的流程图,是减少代码错误的有效手段。
Main(0
{int i,sum;
i=sum=0;
While(i
Sum+=i;
i++;
Printf(“1+2+3+…+100=%d’,sum);
}
在C语言程序设计教学过程中,即使对简单的程序设计的讲解也严格的按照程序设计的过程一步步的进行分析和引导,培养学生良好的编程习惯。
4.通过实践教学,让学生亲自体会程序设计全过程,巩固所学知识。学生通常在C语言的学习上投入了很多的精力与时间,但却离实际要求相差很远。因为缺乏了实践经验和能力,不能满足社会的需求,这也是计算机类学生的通病。为此,在教学中一定要注重理论与实践相结合。案例实验可以说是学习C程序设计最有效的方法之一,在教学过程中我们故意将赋值符号“=”和等号“= =”互换、漏写分号“;”和大括号“{}“,设置一些待解决的错误,引导学生在编程和调试过程中逐一解决这些问题,不仅能够巩固理论知识、养成编程的好习惯,更能调动学生思考问题和解决问题的积极性。同时在解决问题的过程中使学生有一种成就感,这对学习能力的提高和积极性的培养有很好的作用。
5.多种教学手段相结合,提高教学效果。理论教学与实践教学相结合,适当减少理论课、增加实践课,将理论教学融入实践教学中来,逐渐模糊两者之间的界限;传统教学与丰富多彩的多媒体教学相结合、教师讲解与学生课堂讨论相结合,以便调动学习的主动性和积极性。
6.注重对知识的归纳和总结,让学生温故而知新。在教学过程中,按章节、按阶段对相关重点知识进行归纳总结,让学生把模块化的知识连接起来,系统、全面的掌握所学内容。
四、结束语
目前C语言程序设计教学中仍然有很多需要改进的地方,如何提高实践教学质量,使理论与实践相结合,仍需要在教学过程中不断的探索和改革。
参考文献
[1]杨路明等.C/C++程序设计教程.长沙:湖南科学技术出版社, 2003.
[2]谭浩强. C语言程序设计教程.北京:高等教育出版社,1997.
篇10
关键词 C语言 实验教学 任务驱动式
中图分类号:G424 文献标识码:A
C语言是通用的计算机程序设计语言。其数据类型丰富、表达能力强、使用灵活方便、生成目标程序设计代码质量比较高,对硬件也能直接进行操作,因此C语言将作为大部分高校的普遍程序设计的首选课程,也是其编程的基础性课程。学习程序设计必须具有语法规则、算法思想、数据结构和程序设计等方面的知识,C语言比较复杂,教学内容理论性较强,较难掌握,学生易产生厌烦情绪。以前C语言运行环境是以Turbo C2.0为主,现在虽然可以在VC++6.0运行环境下进行编程与调试,但是它的程序运行还不能完全可视化。就对我校高职计算机专业学生的具体调查发现:学完C语言后能熟练掌握、灵活运用的学生为10%左右,基本掌握的学生为45%左右,大部分学生还是不能掌握其编程技巧。为了提高和改善学生学习C语言的教学现状,根据C语言自身特点,探讨新的教学模式和教学方法。以促使提高该课程的教学效果。
1 根据人才培养方案,合理调整其教学内容
高职院校教育的目的是培养生产一线应用型和技能性人才,着重培养学生的学习能力、就业能力、工作转换能力和创业能力。高职学生的学习基础较差,逻辑思维能力较弱,想象空间较窄,因此,在学习C语言程序设计课程时,必须考虑学生的学习能力和基础能力,适当降低理论知识的难度和深度,力求教学内容浅显易懂。在本门课程的教学过程中一般要求学生掌握程序设计的三种程序设计的基本结构、数组、函数、指针等教学内容,对于其中过繁过深的知识,例如指针,结构体等,我们则可以进行取舍,使学生知道它们即可。对于重点、难点的教学内容必须进行详细讲解,使学生不仅掌握它们的理论知识,更能灵活编写类似程序以求解决生活中的实际问题。总之,教学目的是使学生真正掌握并力求能熟练灵活运用C语言进行编程。
2 重视培养模式,培养学生学习兴趣
传统模式下,C语言程序设计课程的教学内容一般则采用黑板式的教学方式来实现。大部分理论知识都要在教室来进行学习,很少在机房来进行程序的编写。C语言程序设计运行环境一般以Turbo C2.0为主,但Turbo C2.0的调试环境采用DOS模式,调试不是很直观,且操作采用命令和键盘来实现,界面不可视化操作使学生很不理解,因此会使学生失去学习的动力和学习的积极性。尽管C语言实用价值很高,但理论性很强的教学内容,很难引起学生的学习兴趣,如果我们再不讲究其教学方法,则难以达到本课程的培养目标。为了改变目前的教学现状,教师必须利用学院现有的教学资源对教学内容进行重新整合,改进以往单一、枯燥乏味的教学模式和教学方式,让知识变得有趣而生动化,从面提高学生的学习兴趣、学习的积极性、学习的动力和学以致用的能力。
3 合理利用多媒体技术,提高教学效果
传统的教学模式是利用黑板式教学手段在教室进行讲授C语言程序设计课程。特别是在讲解如何利用运行环境进行上机步骤、程序调试方法,程序运行过程和程序运行结果的查看等内容时,课堂教学则显得枯燥无味、不够清楚,也不直观,在这种教学方式下,大部分学生则会对C语言这门课程失去学习兴趣、学习的积极性、学习的动力和学习信念。高职院校多年来进教学改革和更新教学设施,基本上来讲,教学设备都比较齐全。先进的多媒体教学手段出现后,被广泛使用在许多课程的教学上,多媒体教学具有直观生动、图文并茂的优势,能够把枯燥无味的理论知识变得生动形象化。但先进的教学手段并不完全代表一定会收到良好的教学效果,教师则必需精心制作出适合自己课程的教学课件,把传统教学不能很好表达的教学重点和教学难点进行重新设计,并与传统教学有机结合,从而达到满意的教学效果。合理利用多媒体技术不仅可以加强学生的学习兴趣,也能激发学生的学习动力和求知欲,使学生真正体会到学习的快乐和满足。
4 加强实践环节,培养学生的编程能力
C语言程序设计是一门实践性很强的课程,学生不仅要掌握C语言的概念,语法规则,又要动手编写程序,并进行上机调试运行得出结果。所以培养学生的实际操作能力则显得尤为重要。在实践课的教学过程中教师必须做到:教师必须为每次上机习题做到精心挑选,认真对待,在实验内容上应做到有较容易的题目,也要有综合性较强的题目,题目要求不仅要顾全验证性、综合性和设计性实验的比例,也要做到使所学的知识内容进行整合,达到学习的系统化。学生在进行实验时,根据学生的学习能力和操作能力,将其分组来进行实验。实验过程中,要求学生根据实验内容再进行分解,教师正确引导学生学会运用正确的思维方法,由易到难,自顶向下,逐步求精,找出解题的关健,并且鼓励他们互相学习、大胆讨论,这样不仅能调动每一位学生的学习动力,也能加强团队精神的培养。
5 考试考核制度的改革
C语言程序设计课程的培养目标是学生的思维能力和实践能力,学生最终成绩评定也是体现学生在整个学习过程的主要评价,采用单一的试卷考试方式已经不能体现出学生的实际能力水平。我们对学生的要求不仅要考学生的知识水平,更注重考核学生的学习能力、知识应用能力、对问题的分析能力和解决实际问题的操作能力综合考评。即要更多地通过关注学生的学习过程,用可持续发展的方略去评价每一位学生,更好地体现评价的激励功能,使其做到促进学生学习的主动性和积极性。建议的考评标准为:理论占40%,实践技能占60%,或进行全国计算机等级二级C语言考试,凡通过者可获得一定奖励。
在目前信息社会中,计算机的应用越来越广,因此,高职院校的责任重大,学院在进行计算机教育中应依据培养目标提出不同的教学要求。使每一位学生在学习C语言时,都能由浅逐深、循序渐进地进行教学培养,教师在学生学习的过程中必须激发学生的兴趣,更新教学理念,充分利用、整合各种教学资源,注重教学模式和教学方法的探索,真正使C语言程序设计这门课程成为学生学习其他计算机编程知识的基石。
参考文献
[1] 张长海.以程序设计为主线为主线讲授“高级语言程序设计”课.计算机教育.2005(5).
[2] 谭浩强.C语言程序设计.清华大学出版社.2002(6).