前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的二级c语言程序设计主题范文,仅供参考,欢迎阅读并收藏。
关键词:问题驱动;案例教学;AHP算法
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)28-0160-03
Application and Discussion about the Teaching Reform on the C Language Programming
XU Ping1, GONG Li-hua2
(1.Department of Information Science and Technology, Taishan University, Tai'an 271021, China; 2. Further Reeducation College, Taishan University, Tai'an 271021, China)
Abstract: Case teaching, as a new approach, is widely used in various teaching fields. The paper mainly introduces this kind of teaching approach, which is inspired by the programming and leads in the contents by specific cases in the course of C Language Programming and makes evaluation to the approach by teaching effect evaluation method on the basis of AHP algorithm.
Key words: question inspiration; Case Teaching; AHP algorithm
1 引言
《C语言程序设计》是一门实践性很强的课程,该课程的学习有其自身的特点。学习者必须通过大量的编程练习,在实践中掌握语言知识,培养程序设计的基本能力,并逐步理解和掌握程序设计的思想和方法。因此,《C语言程序设计》课程的教学重点是培养学生的实践编程能力。
在传统的教学方法中,采用“点―线―面”的教学模式,即先介绍变量定义,再介绍指令的语法规则,最后例子讲解。这种教学模式不利于将知识转化为能力。为此,笔者从理论和实践上探索了《C语言程序设计》这门课程新的教学方法,并收到了良好的教学效果。
2 问题驱动,案例教学
案例教学法最早于1870年在哈佛法学院创立。后来,案例教学法为哈佛商学院所采纳,被引用在工商管理教育中。经过近百年的积累和发展,案例教学法已成为西方国家工商管理教育的重要手段之一。所谓案例教学法是在教师的指导下,对案例提出的问题,运用所学的理论知识进行分析研究,提出自己的见解,做出判断和决策,达到提高学生分析问题、解决问题能力的一种理论联系实际的启发式教学方法。
案例教学法的教学过程包括案例引入、案例学习、案例总结三个阶段。在《C语言程序设计》课程的教学过程中,以编程应用为驱动,通过案例引入内容,重点讲解算法设计,并穿插介绍相关的语言知识。
2.1 案例引入
在讲C语言基本语法时,如果从数据类型、变量、常量、表达式开始,学生觉得特别抽象,不好理解。而我们用案例教学法,首先引入案例,并给出程序源代码,让学生进行编辑并调试。
案例:求摄氏温度40℃对应的华氏温度。计算公式如下:
f=9c/5+32
式中:f表示华氏温度,c表示摄氏温度。
源程序:
/* 将摄氏温度转换为华氏温度 */
# include
int main(void)
{
int c, f;
c=40;
printf("c=%d, f=%d \n", c,f);
Return 0;
}
运行结果:c=40, f=104
2.2 案例学习
通过案例提出问题:在案例中使用了哪些数据?它们的类型是什么?
讲解相关知识:在C语言中,数据有常量和变量之分。在程序运行过程中,其值不能改变的量称为常量,其值可以改变的量称为变量。在案例中,整数40是常量,c和f是变量。
常量和变量都有类型,常量的类型通常由书写格式决定。例如,40是整型常量,40.12是实型常量。而变量的类型在定义时指定。
变量定义的一般形式:类型名 变量表;
例如:
int c, f;/* 定义两个整型变量c和f,用于存放整数*/
char a;/* 定义一个字符型变量a,用于存放字符型数据*/
C语言中常用的数据类型包括int(整型)、char(字符型)、float(单精度浮点型)、double(双精度浮点型)。其中,float和double都是浮点型(实型),用于存放浮点数(实数),区别在于double型数据占用空间更大,精度更高,取值范围更大。
2.3 案例总结
通过案例学习,让学生很轻松的掌握了数据类型,以及常量、变量的使用方法。并且提出几点注意的问题:
1) C语言中变量的含义和数学中变量的含义不同。C语言中的变量代表保存数据的存储单元,而数学中的变量代表未知数;
2) C语言区分大小写字母,它认为Ca和ca是不一样的;
3) 算法是程序的灵魂,良好的算法设计,不仅可以提高程序的执行效率,起到事半功倍的效果,而且可以以算法设计为基础,通过寻求不同问题存在的相互联系,从计算机角度对不同问题的共性进行算法设计,实现程序编写的举一反三。
根据案例提出:
思考题1:求摄氏温度30℃对应的华氏温度。
思考题2:求华氏温度100℃对应的摄氏温度。
3 课程教学改革效果的评价
在课程改革实践中,如何评价课程教学改革的效果至关重要。同时,教学效果的评价结果在实践过程中可以指导课程改革。本文参考AHP算法,从学生评教、教师评学两个因素建立教学效果评价指标体系和多级模糊评判模型,实现课程教学效果的多指标评价。
3.1 基于AHP的教学效果评价算法
AHP算法是一种有效地处理那些难以抽象为解析形式数学模型的问题(即非结构化问题)或难以完全用定量方法来分析的复杂问题的手段,其主要思想是将一个复杂的多因素评价问题分解为具有递阶结构的评价指标和评价对象。二级模糊层次分析决策模型的步骤如下:
1) 根据实际需要建立评价指标因素集U={u1,u2,…un},将U分成若干组U={u1,u2,…,uk},使得■,称U={u1,u2,…,uk}为第一级因素集。■ (i=1,1,…k),其中nl+n2+…+nk=■称为第二级因素集。
2) 选择模糊评判集V={v1,v2,…,vm},其中vj(1
■
设■的权重为■,求得综合评判为■。
3) 再对第一级因素集U={u1,u2,…,uk}作综合评判,设U={u1,u2,…,uk}的权重为A=(al,a2,…,ak),总评判矩阵为:
■
得一级模型的综合评判为A・R=B∈Γ(v)。最后,根据评判结果B进行排序,确定该教学年度的教学效果,其值越大,教学效果越好。
3.2 教学效果评价指标体系的构建
由于评价对象的某些评价因素往往带有一定程度的模糊性,即具有非线性特征,所以进行教学效果评价时采用了模糊综合评判模型。调查问卷中除需要给出各评价项目的权重外,还需给出各评价项目的得分。结合教学改革的实际情况,我们给出如下的评价准则,包括学生评教、教师评学两个一级指标,并建立相应的二级评价指标(如图1)。我们在构建教学改革效果评价指标体系时,着重考虑的是通过《C语言程序设计》课程的教学改革,是否能达到改革的目标。
3.3 教学效果评价
我们从2006年开始对本学院计算机系C语言程序设计课程进行教学改革。在课程结束后采用问卷调查的方式随机抽取部分学生进行学生评教,并由任课教师完成教师评学(如表1)。
表1 教学改革效果评价表
■
利用本文提出的基于AHP的教学效果评价算法,得综合评判为:B=A×R=(82.375,86.625)。数据表明,在2006、2007级学生《C语言程序设计》课程的教学效果评价中,2007级学生的评价值最高。
4 结束语
由此可见,随着教学改革和课程建设的深入,《C语言程序设计》课程的教学效果得到了显著提高,也增加了学生学习《C语言程序设计》课程的兴趣。并且培养了学生可以用C语言很好的解决实际问题的能力,为以后进一步学习其它高难度的编程语言打下了良好的基础。
参考文献:
关键词:C语言程序设计 民办高校 实践能力 实验教学改革
中图分类号:G642 文献标识码:B DOI:10.3969/j.issn.1672-8181.2013.19.128
C语言因为具有良好的计算机硬件编程能力,能够编写系统软件和应用程序,有着广泛的应用领域[1]。C语言还是数据结构、数据库等课程的先修课程,也是国家计算机二级考试的科目之一。因此,很多院校都把C语言作为程序设计的入门课程。相比于传统的研究性大学,民办高校更注重自身办学特色[2]。我校的办学理念是“走进校园的目的是为了更好地走上社会”。具体到C语言这门课,就是要更加注重学生动手实践能力和实验教学,着力推进应用型C语言实验教学改革。具体有以下几个方面。
1 实验教学改革方法
我校C语言实验教学改革的目标是:通过C语言实验教学的改革,培养出具有综合分析和解决问题的能力、熟练的编程调试能力、持续的自学能力的应用型人才。需解决三个关键性问题:一是实验指导书的编制;二是实验教学和培养方式的改革方法和手段;三是实验教学全过程规范制度的建立。具体实施方法如下。
1.1 C语言实训指导书的整理编制
结合我校育人理念和计算机类学生的特点,针对性地编写相关实验内容。实训指导书分为三个部分:实训总要求、实训模块和项目拓展实例。第一部分为实训总要求,目的是让学生编写规范的代码,从开始程序设计就进行规范练习,为以后工作打下良好的基础。第二部分为实训模块,有三个:①基础部分,为随堂实训;②深化部分,为综合实训;③课程设计,为期末的课程设计,是对整个内容的一个综合设计,可以使学生从软件开发的角度开始思考问题、解决问题。第三部分为案例拓展实例:学生成绩管理系统。本书具有基础性、实用性和系统性,可以指导学生按照从浅入深,从低到高的训练过程,逐步提高他们的编程和动手能力。
1.2 实验教学和培养方式的改革
改变实验教学方法,启发学生思考,引导学生成为学习主体。具体体现在:①课前针对性提问,促使学生应用所学理论知识积极思考,并通过实验来验证解决;②少讲多练,开头5-10分钟讲述实验内容和重点,中间大段时间留给学生操作,最后5分钟时间实验总结;③注意学生操作过程中的实际效果,学生如遇问题并不直接告知答案,而是引导学生自己分析,养成独立思考解决问题的习惯。相比于传统教学方法,启发式教学,引导学生成为学习主体,更能激发学生的学习兴趣[3]。
1.3 对实验教学规范制度建立的探索
为了保证实验教学达到最佳效果,针对部分学生学习主动性差和缺乏持续学习动力的特点[4],一定要进行严格的考勤制度和每次实验现场的考评,加大实验表现在最终期末成绩中所占的比重。规定实验课无正当理由缺勤2次以上,直接取消期末考试资格。设计现场考评成绩表,每次实验后给出所有学生当次实验得分,并累积到期末,作为该课程的平时成绩。增加C语言程序设计大赛等比赛的指导,提高学生学习的兴趣,参加比赛,获得证书。
2 对应用型C语言实验教学改革的反馈
2.1 应用效果
本实验教学改革方案首先在2012级软件班进行实验,取得了不错的效果,有多名学生在2012年“蓝桥杯”全国软件专业人才设计与创业大赛中获奖,下一步,将尽快投入到理工学院大一其他专业的C语言程序设计的实验课程教学中。同时,进一步探索C语言课程的整体教学模式与后续专业课程的结合,力求将应用范围扩大到各年级和各专业。
2.2 评价与反馈
2.2.1 同行评价
《C语言程序设计》实验教学,其教师队伍合理,教学目标定位合理,实验教学内容设计有层次感,教学方法科学,有良好的教学效果。《数据结构》及《java语言程序设计》教师也对本门给予了很好的评价,综合体现出了该课程的教学效果良好。
2.2.2 学生评教
在学生座谈与学生问卷调查评比满意度高达90%以上,其中有80%的学生认为是优良。学生反映指导内容充实,设计有层次性,与实际结合密切,学完之后有成就感,教师责任心强、能激发学生的学习积极性、与学生互动良好。
3 后续研究工作和展望
一是实训指导书还需进一步完善,可考虑将课前预习环节加入到指导书中。在课堂教学方法的实施中,问问题的人数较多时,需要教师有极强的责任心,考虑是否可以预先录制相关疑难问题解答的视频,直观地“程序演示”,来增强学生们对程序的理解,提高教师指导效率;二是可以考虑构建集考勤、教学、评价一体化的实验教学网站,构建自主学习平台;三是改革C语言这门课程的考评体系,建议引进无忧二级C语言考试系统,以二级考试的难度要求学生,促进学生C语言二级过级率的提升。
4 结语
上述方法在我校的计算机类专业的课程运用实践中取得了良好的教学效果,增强了学生的编程能力和逻辑思维能力,为培养计算机方面应用型人才迈出了重要一步。当然,C语言实验教学改革也不是一蹴而就的,还有许多内容需要进一步去探究。
参考文献:
[1]廖建华.任务驱动型案例教学在“C语言”课程教学中的实施[J].教育与职业,2011,(5):157-158.
[2]夏季亭,王蕾.民办高校构建现代大学制度的优势与挑战[J].中国成人教育,2012,(1):20-22.
[3]白灵,韩莹,鹿玉红等.C语言程序设计课程考试改革实施方案[J].时代教育,2013,(9):39-40.
[4]程传鹏.基于大学生心理特点的C语言教学方法[J].计算机教育,2012,(1):68-71.
关键词 教学改革 C语言 微平台
中图分类号:G434;TP311.52 文献标识码:A
教学改革和提高教学质量是高校教育的永恒研究课题。《C 语言程序设计》是理工科各专业,尤其是计算机相关专业学生必修的一门非常重要的专业基础课。在近几年的教学实践中发现,学生们普遍认为这门课难度大、不易,学许多学生还要参加全国计算机等级考试,通过率不高。网络自主学习平台采用“教师导学+学生自主学习”教学和学习方式,以及“教考分离”的考试制度,突破了传统课堂中教学受到时间和空间限制的困境。但传统的教学模式和原来的网络自主学习平台模式,存在一个普遍的的弊端: 时间长、重点分散。微课程的概念是由戴维・ 彭罗斯( David Penorse ) 于2008年秋首创的。它按照新课程标准及教学实践要求,以教学多媒体为主要方式,以探究某个知识点或教学重点难点而展开的整合各种教学资源的活动。主题突出、内容精炼、终端载体多样化、应用方便灵活是微课鲜明的特征。因此,本文以《C语言程序设计》课程为研究对象,自主学习与微课程相结合,研究高校辅助教学的一种新模式。
1微课程
现今热议的微课程概念是2008 年由美国新墨西哥州圣胡安学院的高级教学设计师、学院在线服务经理David Penrose 提出的。
1.1微课程的含义和特征
微课程并不是一个孤立的教学环节,而是一个完整的教学系统。它不是传统课堂教学的截屏,而是围绕某个知识点进行教学设计后开展的教学活动。微课程包括课堂教学的全部因素(教学目标、教学策略、师生互动、教学资源等),将这些教学因素以高度凝练的方式融合形成短小精悍的视频即形成微课程。微课程有两个显著特征:一是以视频为呈现方式;二是凸显微课程的“微”。
1.2微课程的设计开发研究
微课程的开发主要有两种形式:一是对现有的优秀完整课例或视频课例进行加工改造完成;二是原创开发,即设计开发一节全新的微课程。
1.3微课程的应用研究
许多学者分别是从教师专业成长和学生个性化学习角度阐述微课程的应用。如何将这种教学资源整合到具体学科的常规课堂教学,吸引学生注意力,激发学生思考,借此提高课堂教学效率。
2 网络自主学习平台的构建
利用学校网络,搭建“C语言程序设计”课程自主学习平台。搭建的自主学习平台将是教师与学生进行交流的平台。它将集学习、辅导、测试、评价、交流、计算机应用等功能于一体的网上课程学习平台,如图1所示。
(1)微课程学习平台:它提供视频为主要载体,记录教师在教育教学过程中围绕某个知识点或教学环节而开展的精彩教与学活动的全过程.
(2)C语言校考测试平台:C语言程序设计课程考试现在是以机试方式进行,我们开发一个测试平台,在考试之前提供学生测试练习,熟悉考试题型、知识点、考试环境和考试注意事项。
(3)二级C省考测试平台:现在我们学校学生参与湖南省计算机水平等级考试的学生越来越多,但省考没有像国考一样,在考试之前提供一个模拟考试的机会,学生对考试环境、知识点、题型和考试注意事项等都不熟悉,因此开发类似测试平台,以便学生练习。
(4)二级C国考测试平台:全国计算机等级考试影响力越来越大,报名参加学生多。但其难度比省考要难得多,通过率不高。我们开发二级C国考测试平台,能使学生有机会多训练,提高学生通过率,真正掌握该课程。
(5)计算机应用竞赛平台:对于基础较好、有潜力的优秀学生而言,需要一个能培养和锻炼他们利用计算机技术解决各类学习工作中的专业问题、实际问题的创新教育平台,从而激发他们进一步学习计算机的激情。我们将开发此平台,在平台上能实现计算机程序设计大赛、Web网页设计大赛等。
(6)C语言成绩查询平台:开发一个平台,使学生能方便查询C语言程序设计课程校考成绩、湖南省计算机水平考试成绩、全国计算机等级考试成绩。
(7)C语言反馈平台:通过三个测试平台和竞赛平台,分析和评价C语言程序设计课程中学生难掌握的知识、易出错的知识点,为微课程的设计提供信息。通过设计留言模块,掌握学生在课堂中没有理解清楚的知识点。
3 《C语言》微课资源库设计
微课主要目的是满足于学生开展自主、个性化学习,提高教师教学能力的需要。因此设计《C语言程序》微课资源时,设计为两种类型, 一种是教师讲解型,另一种是学生学习过程展示型。前者是将过去教师一言堂的讲解,颠覆为学生根据需要自主选择有针对性的讲解,主要是颠覆课堂统一讲解方式;后者是让学生观摩并学会别人如何通过自主、协作学习开展相关知识的学习活动的。主要资源,一般以不超过10分钟的视频方式设计,包括:
(1)每一章节主要知识点和难点;
(2)课程综合知识点,如函数参数传递、算法等;
(3)针对该课程的期末考试、湖南省计算机水平考试和全国计算机等级考试的知识点的讲解;
(4)《C语言程序设计》上机调试程序过程中学生常出现的问题,以及解决方案。
资源库配套相关文本资料:
(1)课程教学大纲、三种考试的考试大纲和课程教学PPT;
(2)每一章节的微练习题和测试题;
(3)三种考试的模拟考试试题及分析;
(4)计算机程序设计大赛题库。
资源库凸显微课程的特点:知识点精,主题突出;微视频一般在5~10分钟内,短小精悍,以微教学视频为核心。
4学习效果
开发平台后,笔者以所教学的班级进行了推广,教学过程融入微课程的教学,让学生形成课前预习,课后提问和自主学习的习惯。效果良好,学生主动学习的积极性提高,学习过程中有针对性的问题增多,上机调试程序的积极性和编程能力增强,相应的《C语言程序设计》的课程设计效果明显增强,与其他班级相比,课程考试的及格率和优秀率也大幅度提高。基于LAMP平台上开发HUSTOJ在线测试平台,并投入到学生程序设计大赛训练中,学生竞赛取得好成绩。
5结语
本文仅以《C语言程序设计》课程为例,引入微课,对该课程的教学和改革进行了研究和探讨。构建了基于网络的自主学习式教学平台的,将被动授课式的教学过程变为自主学习式过程,实现传统与自主学习两种方式的有机融合,优势互补;建设了以自主学习为方式的“C语言程序设计”课程资源库,学生通过计算机网络,甚至手机实现网络资源的共享,形成一个开放共创、共生的学习资源。但微课的研究是一个长期过程,今后微课程的实证研究将更多关注具体科目、具体内容的微课程设计,并将其充分运用于常规课堂教学中,以检验微课程的应用范围和效果。微课程不只注重数量,还要是提高质量,提高利用率。教师要能把握微课程的基本核心理念以及制作技能,使微课程成为每个教师都能创作的教学资源。
基金项目:湖南省教育厅普通高等学校教学改革研究项目(湘教通[2014]247号,序号414)。
参考文献
[1] 罗晓.国内外微课资源管理平台对比分析[J].中国医学教育技术,2015(6):626-630.
关键词:网络课程;教育软件;网络教学
随着计算机技术、网络技术和多媒体技术的发展与深化,教学手段不断改进,经历了从板书、教具、多媒体课件到网络课程的发展阶段。网络课程是建立在网络技术、多媒体技术等现代信息平台上的一种新型教学模式,与普通的多媒体课件不同,网络课程是通过计算机网络来表现教学内容和实施教学活动的教学模式。通过网络课程的构建可以整合丰富的教育资源,突破了学习的时空限制,实现了自主化学习、个性化学习和远程交互途径,学习模式由传统的基于课堂的教师讲授转变为立体化、多元化学习,因此网络课程是实现教育信息化的重要体现和手段。
1“高级语言程序设计”网络课程的意义
高级语言程序设计是计算机专业的一门核心基础课程,是学生从事软件开发的必备技能。这门课程概念繁多、抽象难懂,逻辑性和实践性极强,学习容易枯燥,如何利用开放式网络教学环境,创建生动的、个性化、研究型教育模式,是现代教育在观念、内容、方法、手段和结构上的一次全方位变革,“高级语言程序设计”网络课程的构建与实施,变静态的、形式单一的教学模式为动态的、多元化的网络多媒体教学模式[1],是高校教育改革的重要举措和内容。其意义体现在以下几方面:
1) 转变学生的学习方式。网络多媒体课程的自主学习方式使学生变被动接受为主动构建者,有利于培养学生的主动性和创造性思维。学生从课程中不仅学到了专业知识,更重要的是通过检索和利用各种信息资源,获得了信息素养能力的训练,为工作和科研培养了良好的信息能力[2]。
2) 学习资源突破了时间和空间的限制、使得课程资源的交流和共享成为可能,使学习更加便利,有利于培养学习的自主性和积极性。
3) 提供了丰富的教学资源,突破了课堂教学内容的狭隘性,扩展了学习范围,开阔了思维,使学生科研能力和创新能力得以提高。
4) 强大的多媒体功能可以提供实验和实践的模拟和仿真,化抽象概念为生动具体的情景,使得学习更加轻松和容易。
5) 网络的及时性、开放性和交互性也是普通课堂教学无法比拟的,留言簿、论坛、电子邮件、及时通信等方式使学生之间、师生之间的交流更加轻松。
6) 在线考试为学生检查学习效果,减轻教师阅卷负担提供了可能。
2 “高级语言程序设计”网络课程的目标
基于传统多媒体课件的“课堂演示型”教学方式给学生带来了图文并茂的生动效果,但这远远没有发挥多媒体的交互性特点,课件只不过成为了电子版的板书,学生只能够被动地接受知识而不能主动参与教学活动。要实现教学的开放性、交互性和自主性,就需要把网络技术和多媒体技术结合起来,构建网络课程正是实现这一目标的途径。
因此,“高级语言程序设计”网络课程的总体目标是:构建一个导航清晰、界面生动友好、教学内容充实、教学主线设计合理,具有教学、个性化学习、网上答疑及讨论、自测等功能的教学系统平台。具体表现在:
1) 教师可以整合丰富的教学资源,各类教学资源、提供教学大纲、周历、课后作业、实验作业、电子教材、软件下载、试题下载、源程序下载、相关论文等。
2) 学生通过留言本、论坛、邮件等方式与教师或同学之间进行交流,轻松实现互动和远程交流。
3) 课程的实践性要求课后要加强编程练习,网络课程要围绕课后习题这一重要教学环节,使学生最大限度地参与练习与实习,达到理想的教学目标。
4) 采用以章节为单元的折叠式树型目录导航结构,循序渐进,合理的信息分类与链接使自主学习得以顺利进行。
5) 整合大量教学资源和素材,弥补教材内容的不足和课堂讲授时间的不足,创造并提供自主学习环境,提供全国计算机等级考试介绍、全国软件水平考试介绍、二级C语言考试大纲和试题、二级C语言模拟考试软件等。提供C语言的论文和相关科研训练,提高理论水平和扩展思维。
3网络课程特色栏目设计
网络课程建设就是要按照学科知识体系以及网络教学要求,对各种教学资源进行集成和综合[3]。教学内容是网络课程设计的主体,在网络课程中教师是组织者、设计者、指导者,在教学内容的设计上应按照网络环境的需要和教学目标进行合理分解与重组,并根据不同内容的知识特点选择不同的媒体表征形式。以便使教学内容适于以网络化形式和手段表现出来。
以“高级语言程序设计”网络课程的需求为例,为了让学生了解课程内容、方便学生选课需要进行课程介绍,为了实施教学内容需要对每一章节进行讲解,为学生提供课件、源代码、论文等大量学习资源,为了实现教学的互动还要实现在线的师生交流和答疑,为了配合国家计算机等级考试、加强练习还需要提供二级考试大纲、模拟软件和试题等。
根据以上需求分析,本网络课程采用以章节为教学单元的模块化结构,采用纵向树型目录导航结构组织知识点和章节,根据具体的知识要求采用文本、图片、音频、动画、视频等多种形式。共分为5个栏目。
1) 课程简介:包括课程介绍、理论课和实验课教学大纲、周历、考试方式、教师信息等方面的内容。
2) 教学内容:共分10章,是网络课程的核心模块,按照C语言知识体系的结构循序渐进行详细讲解,分别介绍预备知识,C语言基础,顺序结构,选择结构,循环结构,数组、函数和编译预处理,结构体与共用体和文件。课件采用PDF格式,单击每一章的标题链接,即可打开相应的PDF文件。
3) 学习资源:提供上机习题、教材源程序、课件下载、C语言运行软件下载、参考论文和电子书等。
4) 交流平台:有留言本和论坛两种方式,留言本针对师生之间,学生提问留言,教师作为管理员可以回复和删除某个学生的留言。而用户在论坛中注册后就可以发贴,并且无论是学生还是教师都可以回复贴子,轻松实现开放式答疑和交流。教师还可以定期地创建不同主题的讨论组,引导学生进行讨论、分析和思考问题,开扩编程思路。
5) 计算机二级考试:提供全国计算机C语言二级考试大纲、C语言二级考试模拟软件下载和历年真题。网络课程的整体结构框图如图1所示。
4网络课程开发流程
4.1教学素材收集
教学素材是网络课程的基础,是需要规范的重点和核心。教学资源主要分8类:试题库、试卷素材、媒体素材、文献素材、课件素材、案例素材、常见问题素材和教育资源索引[3]。学习资源包含了大量支持学习的材料,除了课程本身的专业知识点以外,还可以链接到互联网上的其他参考资料,如视频、软件、国内外优秀教学网站、全国计算机等级考试、计算机水平考试等。教师是学习资源的组织者和设计者,通常要经过搜集、筛选、分类、整理、组织与数字化等工作过程,同时还要考虑方便学习者的使用[4]。因此我们按照教学大纲将每一章的知识点制作成图文并茂的多媒体课件或PDF文件。课后习题和上机实验习题制作成网页文件,试卷和二级考试真题制作成网页或Word文档。教材源程序制作成压缩文件以供下载。C语言论文和电子教材使用PDF格式。搜集相关软件,包括C语言集成开发软件,如TurboC、Visual C++、WinTC、C语言二级考试模拟软件等。
4.2动画制作
为使页面生动友好,迅速引起学生的注意力并激发其学习兴趣,在首页应用Flash MX制作了动画和标题滚动字幕;为使学生能够更好地理解和掌握C语言中比较抽象难懂的概念,如函数的递归调用、冒泡排序、选择排序等,制作了递归曲线的生成动画,递归调用的汉诺塔动画、显示回溯搜索过程的八皇后动画、显示广度优先搜索过程华容道动画等,这些动画形象地展示了算法实现的过程,化静态的思维过程为动态的实现,有利于学生更好地掌握这些知识点。汉诺塔动画如图2所示。
4.3开发实现
网络课程的开发技术分为前台开发技术和后台开发技术两部分[2]。前台开发技术是指网页的设计与制作技术,利用DreamweavMX、Flash、Fireworks等软件来实现,教学网站导航清晰是关键,因此首页采用嵌套框架布局,上面是标题,左边是按模块组织的树型目录,每个链接单击后目标文件显示在右边,下面是版权、制作者信息和日期时间。在页面中使用了文本、图像、表格、超链接,Flash 动画和视频动画等。后台开发技术使用了Web服务器编程技术ASP(Active Server Pages)。本网络课程的论坛模块、留言本模块通过ASP编程实现与网络数据库的连接和动态交互访问,能够对各种数据资源不断地更新和维护。
4.4编写脚本程序
为了实现生动的动画效果,脚本的编写是网络课程制作过程中重要的一环,运用JavaScript脚本程序和HTML代码可以实现以下特效:1)折叠式树型目录,可以展开和折叠每个栏目。2)滚动字幕,显示在首页标题上,用C语言程序设计代码实现。3)当前的日期和时间,以下脚本代码仅在网页底部输出年月日和时分秒(其余代码略)。
document.write( year + "年" + month + myweekday + "日" + day);
document.write( myhours + myminutes);
4.5引用层叠样式表
层叠样式表(CSS)是一系列格式设置规则,CSS样式是对HTML语言的一种扩展,主要用于控制Web页面内容的外观和页面风格设计,在网页制作过程中起着非常重要的作用,掌握CSS能够有效地提高制作网页效率。CSS扩充了HTML各标记的属性设置,丰富了网页视觉效果,而且CSS样式可通过脚本程序来控制,这样便可以有效地对网页的外观和布局进行精确的控制,从而使网页的表现方式更加灵活和美观[5]。为了统一网站页面的风格,在页面中定义了大量的样式来统一的页面背景图片、字体大小等,部分样式定义如下所示。
.STYLE1 {font-size: 18px}
.STYLE2 {font-size: 18px; font-weight: bold; }
body {background-image: url(../image/ back1.JPG);}
5结语
随着计算机网络技术的迅猛发展和信息化的逐步深入,网络课程在高校的应用也日趋广泛,为了更好地配合课堂教学,笔者将先进的信息技术与教学内容相结合,创建了“高级语言程序设计”网络课程,获2009年云南省多媒体教育软件大赛二等奖。网络课程提供了丰富的教学资源,将课堂延伸到课外,为学生创造了获取资源、评价学习效果和师生互动的环境。将课堂教学与网络课程相结合,使学生不仅学到了专业知识,还能更多地进行信息检索和独立思考。“高级语言程序设计”网络课程为教学提供了一种全新的教学手段,对于推动高校教学改革具有参考价值。
参考文献:
[1] 杜文,曹旭斌,庞先伟. 高校体育网络(教程)的构建与应用[J]. 北京体育大学学报,2007,30(1):104-106.
[2] 熊鹰. “信息检索与利用”网络课程的教学设计与实现[J]. 图书馆论坛,2006,26(2):23-25.
[3] 程晓旭. 高校网络教学研究[J]. 中国成人教育,2007(19):118-119.
[4] 董飞,王广新. 成人教育网络课程开发的关键问题分析[J]. 中国成人教育,2005(12):64-64.
[5] 玲. CSS层叠样式表在DHTML中的应用[J]. 鞍山师范学院学报,2006,8(2):63-65.
Research and Development of High-level Language Programming Network Course
DING Hai-yan, ZHAO Zheng-peng, LI Wei-hua
(Information Institute, Yunnan University, Kunming 650091, China)
关键词:程序设计;教学方法;教学手段
中图分类号: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语言程序设计”的教学改革是一项长期的任务,无论怎样改,都要从学生的实际出发,发挥教师的主导作用,调动学生学习的积极性,使学生有收获。教学千古事,得失寸心知。在今后的教学实践中我们还要不断地完善教学内容和方法,做到既有“法”而又无“定法”,真正提高教学质量。
参考文献:
一、注重教育方式,努力培养学生兴趣
“兴趣是最好的老师”。如何激发每一位学生学习C语言的兴趣,使他们在兴趣中自主地去学习、去探究,这是每一位教师在教学中都要面对的问题。是学生学习一门课程的关键。那么,教师应该如何培养学生对于《C语言程序设计》这门课程的学习兴趣呢?
首先,教师应该激发学生的学习兴趣。教师在讲授每一节课以前,必须清楚、明白这堂课的目的要求,通过形象生动地操作或有目的的激趣提问,诱发学生的求知欲;也可根据内容讲明教材在程序设计当中的作用和意义,以及它在知识体系中的地位,引起学生对知识的重视,并形成掌握的动机。例如,在讲授《函数的递归调用》这部分内容时,可以首先对学生讲讲汉诺塔的传说:传说在古印度的寺庙里流传着这样一个游戏,当游戏结束的时候也就意味着世界末日的到来。说到这里,学生就会好奇,纷纷猜测这是个怎样的游戏。等学生知道了汉诺塔的问题后,再慢慢给他们讲述了这个问题的解决方法——函数的递归调用。
其次,在教学过程中,要让学生成为教学的主体。教师在教学中,要积极调动学生学习的主动性和能动性,让学生勤于思考,善于思考,而不是一味被动地接受老师讲授的内容。在教学中,教师要善于给学生制造一点小小的困难,让学生体验到克服困难获取成功的乐趣,这是保持学生学习兴趣的必要条件。尤其是在学生上机操作的过程中,当学生遇到问题后,教师不要立刻去解决,而是鼓励学生自己动手解决问题,让学生不断地去“试错”,只有这样学生才能在学习中有所收获。
最后,教师应能正确地评价学生、适当地鼓励和表扬学生。正确评价,适当表扬和鼓励,是对学生学习成绩和态度的肯定或否定,可以激发学生的上进心、自尊心。评价必须客观、公正,注重学生心理的发展水平与特点。对于学习较差和信心不足的学生,要挖掘他们学习中的积极因素,及时表扬和鼓励;而对自信的学生应该更多地提出要求,在表扬的同时指出不足之处。对学生在编程中取得的每一次微小的进步,教师都不应该吝啬自己的表扬。久而久之,学生的学习兴趣就会越来越浓。
二、加强实践环节
《C语言程序设计》是一门实践性很强的课程,学生在学习C语言程序设计的过程中不仅要掌握C语言的概念、规则,还要动手编程、上机调试和运行。衡量学生学习这门课程的好坏,不是看学生“知不知道”,而是看学生“会不会干”。在C语言教学过程中笔者发现边学边练是学好C语言最快的方法。这种学习方法注重实践,在程序练习中学习C语言的基础知识。学以致用,掌握起来比较快。不仅如此,在练习的过程中,学生也会体验到成功的喜悦。
实验教学是学生实践的重要环节,在实验教学中必须做到循序渐进,对所学的每一部分内容都应该要求学生完成一定数量的实验内容。每部分的上机习题必须精心挑选,既要有基本的、较简单的题目,又要有一些具有挑战性的新颖有趣的题目。在这里,教师也可以尝试分级教学的方法。学生的水平不同,进度不同,教师布置的作业和上机题目也可以不同。将3~5位同学分为一组,鼓励他们互相学习、大胆讨论。
实践证明,通过这些方面的改革,实验教学效果比过去有了明显改善。通过结合每一部分的理论学习由浅入深的布置实验练习的方法,学生学习的主动性和兴趣有了很大的提高。
三、突出重点和难点
由于C语言牵涉到的概念比较复杂,规则繁多,而学习C语言的课时十分有限,因此教师在教学过程中应该结合学生学习实际和以往的教学经验,对课程内容进行科学分析,确立课程学习上的重点、难点。对于重点内容,对于简单的问题或C语言语法规则规定的内容,教师则可以采用引导式的教学方法,通过特定的题目和练习,使学生掌握这些知识点。
对于难点和重点,象循环语句、函数调用、指针等内容,教师应突出其对整个课程体系内容掌握的重要性,以重点内容为突破口,带动相关知识点的掌握。运用现代教学手段,借助于演示、实例分析等功能,简化教学过程,突出重点、突破难点,达到化繁为简、化难为易、化抽象为具体的目的。避免了学生因无法深入知难而退、甚至丧失学习信心的现象,从而唤起学生学习的兴趣,提高学生创新激情。
四、强调教师的言传身教
关键词:程序设计;教学探讨
中图分类号:G642文献标识码:A文章编号:1009-3044(2009)27-7720-03
Teaching Discussion on Computer Program Design Curriculum of College
YU Jiu-jiu
(AnHui Sanlian University, Hefei 230601, China)
Abstract: Computer program design curriculums are required curriculums for computer specialty which opened in colleges, the teaching effect will affects the capability on computer program coding for students directly. The article is about the characters on program design language contacted with the teaching practice of several years for author, and discusses the teaching process for this kind of curriculums.
Key words: program design; teaching discussion
计算机程序设计类课程(如C/C++、VB、VFP、Jave课程等)是高等院校计算机及相关专业开设的必修专业课程。高校计算机专业学生须掌握除C语言之外的至少一门计算机编程语言。通过学习,学生更好的运用计算机高级语言编写程序,解决实际问题,提高思维能力。但是近几年笔者在从事计算机程序设计类课程的教学过程中,却发现了一些问题,也总结了一些经验。现就结合本人的教学实践进行探讨,仅供大家借鉴。
1 准确定位教材,合理取舍教学内容,淡化程序设计算法思想
在教学伊始选好一本合适的教材是十分重要的。教师首先要明确学生学习程序设计类课程的目的,应当学到什么程度。具体的教学深度及难度要根据具体专业方向的实际情况加以取舍。大学生在校学习期间学习程序设计类课程的目的主要是了解该语言程序设计方法,能够利用它编写相对简单的程序,为今后工作中进一步学习及运用打下良好的基础。不可能设想该门课程经过一学期的学习,就能使一个没有编程基础的初学者变成一个熟练的程序开发人员,教师应当有一个实事求是的分析与估计。教师所选教材应着眼于近几年出版的,用容易理解的方法讲清楚有关程序设计的基本概念,不宜选择篇幅过大、内容主次不分的培训类教程手册。否则在教学时会冲淡重点,学生学习时感到枯燥无味。
任何语言程序在组织结构上都遵循一定的算法,算法是程序设计的灵魂。好的算法能使程序运行高效。但是算法在讲授该语言程序设计课程中所占地位如何却是有争议的。根据笔者的教学体会,认为程序设计类课程的教学过程中应该强调程序语法,淡化程序算法。当然,淡化算法并非忽视算法,只是在完成某一程序的同时不必过分强调其算法的实现。因为计算机程序设计类课程的教学重点是要放在语法的使用上,及如何运用该语言编写简单程序。至于有关程序算法的研究和实现,可以放在《数据结构》、《算法设计》、《计算方法》等课程中。加之大多数学生在学习之初是没有算法设计基础的,教学中淡化算法可以使学生集中精力消化该课程语法本身,从而取得不错的听课效果。当然,在讲授某一具体程序实例时,教师最好要给出实现程序的算法流程图(这一块让学生完成是不适宜的),然后着重强调程序的语法组织结构,至于程序所采用的算法思想可以简单介绍一下,不必作过多研究,也不必讨论有关该算法所实现程序的效率。对于课后布置学生完成的程序,教师一定要事先给出算法流程图,以程序最终能否调试运行为考核标准,不宜追求程序算法实现的难易程度。
2 激发学生的学习兴趣,树立程序设计类课程的教学核心
兴趣是最好的老师,它对培养学生实际编程能力以及提高教师的教学效果具有重要的作用。但是从实际教学效果来看,制约高校学生学习程序设计类课程的兴趣主要有以下三点:
1) 逻辑思维能力不足。程序设计类课程主要的教学目标是培养学生的程序分析、设计和调试能力,这要求学生具有较强的逻辑思维能力。许多学生在中学阶段对这方面的能力训练不足,造成编程时逻辑不够严密。
2) 数学底子薄。程序设计的核心主要是将现实中的数学问题转化为具体的高级语言源程序,并调试实现。大多数语言程序设计类教程编排和例题分析与数学知识有着紧密联系,导致学生感觉抽象难学。
3) 英语基础差。由于计算机高级语言普遍使用英文代码,运行平台也基本上以英文为主,所以部分英语基础差的学生往往望而生畏。
因此,要培养语言程序设计的能力,学生首先必须克服上述三个因素。
计算机及相关专业的学生在校期间一般要学习两门以上的程序设计类课程,通常很多高校都采用理论教学2周后开始上机实践,从介绍语言的语法算法开始,然后讲书写程序,最后进入程序调试的教学过程。由于程序设计语言贯穿于由设计算法到书写程序与调试运行的一连串过程,复杂且抽象,再加上有些学生的逻辑思维能力不强,这也就是导致部分学生在学习伊始便感到程序设计语言类课程难懂、难学的主要原因。
在学习之初,教师应注意教学的方式方法,要设法调动学生的学习兴趣,教学过程才不会枯燥无味。程序设计类课程的核心是将现实中的数学问题转化为具体的源程序,并调试实现,因此第一次课最好定为实验课。通过给出几个简单且学生熟悉的数学问题以及它们所对应的程序源代码,边介绍程序运行平台(如C\C++ 程序运行的Visual 平台、Jave程序运行的Eclipse平台等)的操作边指导学生自己编辑调试,观察运行结果。当程序成功的输出结果时,学生对这门课的学习兴趣自然产生了。在此基础上,教师可对程序进行一些简单的修改,使程序输出不同的结果,并解释原因,然后提出新问题,让学生参与思考。第一堂课通过实验教学,使学生明白如何分析并解决实际问题,完成从数学逻辑到计算机语言程序的转变,从而逐渐培养学生对程序设计的兴趣。
3 采用阶梯法的实例教学
为培养学生的学习兴趣,大部分教师在高级语言教学过程中,都不一味地按书本去讲,而通过多举些实际的例子来巩固学生所学习的知识点。但是教师对所教授的知识点如何举例,例子的难度如何,学生能否从所举的例子中更好的掌握相应的理论知识等一系列问题却摆在教师面前。笔者在这类课程的教学中采用阶梯法的实例教学方式,取得了不错的教学效果。
阶梯法实例教学是指在课堂上把同类型问题归结出来,将这些问题按难易程度排列举例,让学生从理解最简单的例子开始,按照由易到难的顺序依次理解所学知识点。例如以C语言程序设计课程教学为例,在讲述C语言中求若干数中最小值方法时,可以举出:
第一层问题:2个数的最小值求法;
第二层问题:3个数的最小值求法;
第三层问题:4个数的最小值求法;
第四层问题:n个数(4个数以上)的最小值求法。
第一层问题的解决:采用简单if语句
main()
{int a,b,min;
scanf("%d%d\n",&a,&b);
if(a
printf("min=%d\n",min);}
第二层问题的解决:采用简单if-else复合语句
main()
{int a,b,c,min;
scanf("%d%d%d\n",&a,&b,&c);
if(a
else if(c
else min=b;
printf("min=%d\n",min);}
第三层问题的解决:采用条件语句加上if语句
main()
{int a,b,c,d,min;
scanf("%d%d%d%d",&a,&b,&c,&d);
min=(a
if(min
if(min
printf("min=%d\n",min);}
第四层问题的解决:采用一维数组比较方式
main()
{int a[4],min, i;
for(i=0;i
scanf("%d",&a[i]);
min=a[0];
for(i=1;i
if(a[i]
printf("min=%d\n",min);}
这样通过阶梯法实例教学,学生对同类问题的解决有了比较深刻的认识。这样使不同程度的学生,尤其是学习有困难和问题较多的学生,都能够得到提高和发展。阶梯法实例教学的主要特点是目标具体,升级适度,符合学生的心态,使学生有成就感,形成积极向上的学习态度。
4 培养学生独立调试程序的能力, 养成良好的编程规范
任何一种程序设计语言都是一门实践性相当强的课程,上机实验是语言课程教学的重要组成部分,针对不同的学习对象和学习要求布置好上机作业是教学成功的重要保证。教学中,教师应该传授学生一些编程技巧,例如一些典型数学问题的运用等,让学生学会如何熟练应用该语言行为编程。由于高级语言语句书写灵活,教师在实验课上应重视学生书写程序规范问题。例如,强调变量命名应顾名思义,一行只书写一条语句,每一小段程序要有中文注释等。养成这些良好的编程规范对学生今后从事软件开发工作是大有裨益的。此外还应引导学生多读程序,多编程序,多上机调试程序。当然,教师光教会学生如何编写程序还远远不够,教会学生如何高效地调试程序也是很重要的一点。由于学生第一次接触语言设计课程,编写一个程序,无论大小,最初不可能一点错误都没有,无论是出现语法错误还是逻辑错误,哪怕是一点笔误,编译器都会报错。在这里,教师应发挥学生的自主能力,指导学生如何根据编译器所报错误的类型找到程序中出错的地方,并加以改正。而非学生在编写程序时一发生错误教师就越俎代庖,帮学生解决问题。“授之以渔,则享其生”,这个环节尤其重要,否则让学生养成了依赖心理,对学生今后的职业发展是不利的。
5 加强阶段性实训
阶段性实训是实验课的巩固与提高。教师在所授课程每一章结束之后要安排一次规模较大的实训。在实训中采取分组的形式,五人左右为一组,使每位学生都可充分参与。教师根据所学课程选择合适的课题,课题大小要适中,使学生在实训中发扬团队合作精神,以便调动学生的积极性,有利于培养学生与人共事的能力。
在阶段性实习的过程中,教师要重申本次实训的目的与要求,指明每个小组实训要点和注意事项,对实训中的疑难之处或容易出现的问题要进行必要的分析、提示或说明,对学生随时用到的软件工具教师要进行演示与讲解。在巡回指导中,教师应把握好各实训小组的整个实训进程,注意观察学生的情况,及时回答学生的疑难问题,对一些共性问题要集中讲解。实训结束后,教师要对本次实训作归纳总结,明确撰写实训报告的有关要求。这样通过学生平时独立实验和分组实训相结合,全面巩固和提高了学生计算机程序设计能力。
6 采取多元化的考核方式
为了保证课程的教学质量,培养学生编程的能力。课程的考核方式也很重要。要想真正科学全面的考查学生是否建立了严谨的程序设计思想,是否具备一定的上机编程能力,可以考虑采用多元化的考核方式,针对程序语言中不同的知识类型采取不同的考试形式。如:考查程序语言中常识性的知识可以采用闭卷考试形式;考查学生知识转化能力、应用能力等可以采用开卷考试形式;考查学生的程序调试、改错等可以采用上机考试。当然在课程教学的同时,鼓励学生积极参加与所学课程内容相关的全国计算机等级考试(二级C/C++、VB、Jave、VFP等),获取证书,并宣布通过二级考试可以代替该课程的学期总成绩,以激发学生们的学习兴趣。这样,学生们为了能为今后就业增加筹码,在学习过程中逐步培养了程序设计能力。
7 结束语
由于程序设计语言本身概念比较复杂,使用又灵活,要很好掌握它是有一定难度的。以上是笔者近几年来从事该类课程教学中的一点心得体会,在教学过程中应注意的问题还是有很多的,但是关键在于对教学内容(教什么)和教学方法(如何教)的合理组合,是否能调动学生学习的积极性。但现实中由于不同专业方向教学目的、教学内容及学生情况等因素千差万别,没有哪一种教学方法是普遍适用的,唯一的原则就是根据实际情况采用合适的教学方法,既要充分发挥教师的主导作用,又要充分发挥学生的能动性。在具体的教学过程中,只要教师能理解程序设计语言本身的特点,有比较丰富的实践经验,并在教学中采取相应的措施与教学手段,一定能取得理想的
教学效果。
参考文献:
[1] 谭浩强. C+ +面向对象程序设计[M]. 北京:清华大学出版社,2006.
关键词:C语言教学 内存模型 三步实践
1、引言
《C语言程序设计》是各大高校理工类专业的一门重要的必修课程,由于C语言使用灵活,数据类型繁多,结构复杂,因此学生在学习该课程时都或多或少的感觉头疼,学习不得要领。这就要求教师在教学中需要贯穿先进的教学理念,采用适合的教学方法。本文针对C语言教学中存在的问题,结合多年的教学经验,提出几点教学方法和体会。
2、C语言教学中存在的问题
2.1 学生学习热情不高
C语言课程的开设对象一般为大一学生,想让他们马上接受程序设计的思想几乎是不可能的。另外他们从高年级同学那里得知C语言学习难度大,就会产生学习C语言这门课程的惧怕心理。还有一部分学生认为学习C语言对自身的专业没有什么用处,因此产生了厌学的情绪。
2.2 传统教学方式存在弊端
以教师为中心的灌输式教学方法忽视了学生的“学”,学生处于被动接受状态,缺少教师和学生的互动,学生学习的主动性、积极性难以发挥。虽然近年来C语言程序设计课程多媒体课件教学得到广泛普及,在某种程度上激发了学生的学习兴趣,但仍然没有脱离传统教学方式,缺少教学目标的针对性,由“照本宣科”变为“照片(幻灯片)宣科”,没有从根本上解决师生交互匮乏的现实[1]。
2.3 学生学习方法不得当
由于大一学生还不是很适应大学的学习方式,很多时候还沿用高中时候学数学、英语等科目的方法来学习C语言,一些学生只重视理论知识,以为光靠背一背、做做题就能学好,忽视了实践环节的重要性,从而导致了一部分学生学不得法,效率极低。
3、几点教学体会
针对上述存在的问题,分别提出几点体会,可以归纳为:“一个目标”、“两个关键”、“三步实践”。
3.1 树立一个目标
这是针对学生的学习态度提出的。做一件事情如果没有一个明确的目标。就很难提起兴趣,遇到困难也很容易放弃,当然也无法做好。学习C语言也不例外。如果想激发学生的学习兴趣,让学生喜欢学、主动学,就必须让学生明确为什么要学习C语言,明确一个学习的目标。事实上,学习C语言对于任何专业的学生都有莫大的好处,可以锻炼逻辑思维能力,对以后的专业课的学习有很好的辅助作用,也会对以后学习其他编程语言打下良好的基础,正所谓”万变不离其宗”,如果真正掌握精了程序设计思想,具备了真正解决实际问题的能力,语言再更新可程序设计的本质不会变[2]。当然,从更实用的角度来看,可以把“通过国家二级考试”作为一个为之努力实现的目标,不仅对以后就业很有帮助,让学习有了兴趣和动力,有了克服困难的决心,取得事半功倍的效果。
3.2 把握两个关键
这是针对教师的教学方法提出的。为了克服传统教学方式的弊端,教师可以在课堂教学中把握两个关键点,从而把抽象难讲的C语言变的形象而简单。
第一个关键:注重“内存模型”的建立。C语言之所以难学,一大部分是难在对内存的理解。可以说,内存的概念贯穿了整个C语言的整个学习过程。让学生建立“内存模型”,可以让抽象的问题具体化。例如:变量,可以理解成是在内存空间中一个存放数据的“小盒子”,不同类型的小盒子容量大小不同(字节数不同);数组则是相同数据类型的一组连续的小盒子,它们的位置是相临的(顺序存储);指针变量是一种特殊类型的小盒子,它只能存放另外一种类型小盒子的地址,即,指针变量是指向另外一个存放具体数据的小盒子的小盒子,通过指针这个小盒子,可以访问到它指向的小盒子里的内容。除了这几个重要的概念之外,函数、结构体和共用体等知识点都需要理解内存,可以说,理解了内存,就理解了C语言的精髓。教师在讲解内存模型时,可以结合画图来使讲解过程更加形象。
第二个关键:举例要生动形象。C语言多数知识点非常抽象,需要把抽象的问题形象化,举例要生动形象,简单易理解,要符合学生的认知规律才行[3]。例如,在讲解循环结构时,可以用运动会长跑比赛作为实例,如果要跑10圈,则循环执行10次;跑完1圈,则循环变量减1,离终点近了一步;跑满10圈,则循环结束;如果计数器出现问题,跑完1圈后没有减1,即每次执行完一次循环后循环变量不变,则永远无法结束需要一直跑下去,这就是“死循环”;如果跑完一大圈要再跑若干小圈才能跑第二大圈,就是“嵌套循环”。如果教师能多设计出这样的实例,一定能让学生的学习过程变得轻松有趣,收到良好的教学效果。
3.3 强化三步实践
这是针对学生的学习方法提出的。体现在注重实验的环节,具体可以归纳为以下三步实践:
第一步:敲程序。“敲程序”是指把教材上的例题原样敲入电脑然后加以调试。这是学习任何编程语言都要经过的阶段,多敲程序,不仅可以逐步培养出对程序语句的“语感”,还可以逐步掌握C语言的各个关键字和基本语法。
第二步:改程序。“改程序”是把我们敲过的程序修改成自己需要的新的程序。例如:敲过“判断整数m是否为素数”,就可以通过修改编出“输出100到500所有的素数”。借鉴别人编写的优秀程序,学以致用,这也是一种应该培养的能力。
第三步:编程序。“编程序”是自己独立来编写程序。经过前两个阶段的训练,C语言的关键字和语法已经不再陌生,常用的算法也了然于胸,那么,自己编写程序也就“水到渠成”了。
实践证明,学生采用这三步实践法收到了非常好的效果。
4、结语
本文针对目前C语言教学中存在的问题,并结合多年的教学经验,从增强学生的学习热情、改进教师的教学方法以及提高学生的学习效率几个方面入手提出几点C语言教学的经验体会,希望能够对C语言的教学带来一些新的理念,对教师和学生都提供一些帮助。
参考文献
[1]王红纪.C语言程序设计课程教学探讨[J].数字技术与应用,2011(02):147.
【关键词】非计算机专业;学习潜能;学习兴趣;创新
众所周知,全国计算机等级考试二级考试中之一就是C语言,而且随着时代的发展,在许多高校中计算机专业都开设了C语言课程,C语言的教学是计算机教学中的重点和难点,能够体现学生的逻辑思维能力和推导能力,提高学生的分析问题和解决问题的能力。那么应该如何讲课才能让学生爱学并去轻松掌握知识呢,以下是笔者的一些见解。
一、激发学生学习兴趣
很多学生认为C语言这门课难学,没有什么用处,学习没有动力,这些问题不容回避。所以在讲课开始时应该让学生明确学习C语言的重要性和实用性:C语言在高级语言中有着举足轻重的作用,与C++、C#、VC关系极为密切,可以开发学生的逻辑思维并提高其推导能力为学习其专业课程打下良好的基础。通过学习程序设计,学会进一步了解计算机的工作原理,更好地理解和应用计算机;掌握用计算机处理问题的方法;培养分析问题和解决问题的能力;具有编制程序的初步能力。即使将来不是计算机专业人员,由于学过程序设计,理解软件生产的特点和生产过程,就能与程序开发人员更好地沟通与合作,开展本领域中的计算机应用,开发与本领域有关的应用程序。另外在讲课的时候可以用学生比较熟悉,比较感兴趣的问题去讲解内容。比如说,讲课的时候把函数的首部比作人的“头”,把函数的函数体比作人的“身体”,学生就比较容易接受。再有讲解经典实例―Fibonacci数列时,引用“兔子的繁殖问题”,学生就比较感兴趣,从而喜欢学了。还可以在学一个新的知识体系前,用这些新知识设计一些可以吸引学生的实际例子。比如在讲授选择和循环结构时,可以让学生做一个“猜数”游戏,学生觉得有趣,听课的兴趣明显提高。学生对C 语言课感兴趣了,学起来就有了动力,教起来才能事半功倍。实践表明,在学习C语言的过程中有的学生反映学习C语言比学习计算机基础要简单,可见激发学生的学习兴趣是多么的重要。
二、激发学生学习的潜能
在教学过程中,通过各种教学方式和手段激发学生的学习欲望,使其积极投入到学习活动中,发现问题,提出问题,并逐步解决问题。例如,在讲解实例时,不是简单地给出程序清单,而是从分析问题入手,找出解决问题的方法,再给出算法,最后编写出完整的程序,经过编译、链接、运行从而得出最后的结果。而在这一过程中,较关键的是每一步都采用与学生一起探讨的方式,让学生在启发下思考,在思考中解决问题,也让其在解题过程中体验到自己的成功感受,从而掌握独立分析问题、解决问题的方法。为培养学生综合应用知识的能力,通过对完整的项目的系统分析,培养学生良好的编程习惯,善于获取他人经验的能力以及掌握综合运用所学知识的能力,从而真正提高编程水平。
三、培养学生的算法思想
C语言教学的目的,不仅要使学生掌握语言的基本规则,更要切实提高其编程解决实际问题的能力和实现算法的能力。在学习C语言这门课的过程中,算法的培养尤为重要,算法即为了解决某一个特定的问题而采取的方法或步骤。算法是灵魂,不掌握算法就是无米之炊。因为程序代码的编写过程实际上就是将事先的求解思路用C语言的语句来加以实现的过程。没有求解思路,那么得到的肯定是一个错综混乱的程序代码。所以正确的求解思路就是必要的,如果求解思路不正确,那么必将得到一个错误的程序,所有的一切必将付之东流。所以在讲C程序语言课时一定要强调算法思想,并且贯穿整个讲课的始终。
四、培养学生的创新意识
C语言是一门理论加实践的课,只有满腹经纶,不能解决实际问题,必须上机实践,只有通过上机操作让学生将书写的程序代码上机运行调试并得到预期的结果才算真正解决问题,才算是真正掌握了一门技巧,也才能使学生真正理解、真正消化课堂上的理论知识,因此要以应用、实践为目的,注重培养应用能力,大力加强实践环节,激励学生创新意识。教学中坚持上机实验课与理论教学课相结合,使上机实验与理论教学协调同步,特别是时间、内容上要衔接好,讲完课要及时上机并保证上机效果,需要特别强调的是,要先讲课后实践,而且两者相隔时间不能太长,时间长学生早已把课上听到的内容忘记,所以要及时上机实践,多实践是学习掌握C语言的必经之路。对于同一个问题,可以让学生分组进行思考,让其考虑不同的方法来解决,最后通过讲解评比,让学生互补所长,互补所学,从而提高了学生的学习动力、培养了学生的创新意识。
五、运用丰富的教学方法
为了让学生更好的学习好C语言,培养学生逻辑思维和创新能力,在教学过程中,要通过各种教学方式和手段激发学生的学习欲望,使其积极投入到学习活动中。例如,在讲解程序设计举例时,不是简单地给出程序清单,而是从分析问题入手,继而找出解决问题的方法,再给出算法,最后编写出完整的程序,编译、链接、运行到测试的整个过程,特别是调试中增加输出,变难为易,环环紧扣。而在这一过程中,较关键的是每一步都采用与学生一起探讨的方式,让学生在启发下思考,在思考中解决问题,从而掌握独立分析问题、解决问题的方法。而对于比较简单的问题,我们可以提出问题,以学生独立完成为主,教师只提供必要的辅导,培养学生探索问题和解决问题的能力,更有利于创新能力的培养,也充分调动了学生学习的主动性和积极性。
再有充分合理地利用多媒体课件,也可以达到事半功倍的效果:课件上要合理选择教学内容,制作要突出中心,避免从书本上摘抄大量文字或图片。课件中可适当加入Flas等,吸引学生注意力,让学生对课件上的内容产生兴趣,有利于知识的掌握。
总之,我们在C语言教学中,一定要把它上好,通过讲解这门课让学生掌握求解问题的方法,锻炼学生的思维,不仅让他们在学习上有收获,而且在处理问题、解决问题上也是受益匪浅。
参考文献
[1]谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2010.
[2]谭浩强.C程序设计(第四版)[M].北京:清华大学出版社,2005.
[3]张海玉.C语言程序设计教学方法探析[J].太原:财政税务专科学校学报,2006(8):
72-74.
[4]程奎文.C语言教学方法探析[J].科学时代,2006(12):111-112