语言课程设计总结范文

时间:2023-10-24 11:39:34

语言课程设计总结

语言课程设计总结篇1

关键词:算法设计;能力培养;实践教学

中图分类号:G424 文献标识码:A 文章编号:1009-3044(2016)15-0170-01

1 概述

作为信息类专业重要的专业基础课程,C语言程序设计课程为学生打下坚实的语言及算法设计基础具有非常重要的意义,各高校也非常重视本课程的建设。但是,在本门课程的教学中,也普遍存在着一些问题:

1)教学目标不明确;

2)算法分析与设计能力培养偏弱;

3)面向实际应用的综合性设计性实践动手能力培养偏弱。

针对上述问题,本人在本课程的长期教学实践过程中,在教学理念设计、教学内容设置、实践教学体系建设等方面做了大量的研究与实践,并取得了良好的教学效果。

2 教学理念设计

在C语言课程的学习中,学生普遍存在“看得懂、不会写”的情况,主要是由于在课程的教学理念上定位不明确,存在“重语法结构,轻语言运用”的问题。

C语言程序设计课程,在本质上和中文、英文等语言类课程一样,也是一门语言类课程。语言类课程的教学,既要重视语法结构的讲授,但更为重要的如何培养学生运用语言的能力。

经过多年的探索与实践,本人在本课程教学上,形成了如下的教学理念:以“语言应用”目标,遵循“程序”(语法结构)和“设计”(算法思想)并重的原则,科学合理地设置课程教学内容,重点建设实践教学环节。

3 教学内容设置

课程建设的重点是教学内容设置。基于上述教学理念,本人分别在“程序”层面与“设计”层面的教学内容设置上做了如下的探索。

在“程序”层面,注重“知识体系的整体性”。在本课程的教学中,教师一般都注重每个知识点的讲授,但较少涉及“知识点设置的原因”及“各知识点之间的内在联系”,因而造成学生“知识体系零散化”,从而进一步削弱了学生语言运用的能力。针对这一问题,本人从语言的角度,将各知识点划分为两个层次:程序结构及程序控制结构,不同层次突出不同的教学目标。

1)程序结构包括“数据类型、运算符和表达式、数组、函数、指针、结构体和共用体、文件”这些知识点,重点突出对语法及上述 知识点相互之间层次递进的关系的掌握。具体方法是:针对一个问题,从知识发现者的角度,引导学生从“能否用已学的知识解决、解决过程有什么问题、应该怎么做”这一个循序渐进的过程,从一个已学的知识点过渡到另一个知识点,使学生理解并掌握相关知识点之间的内在联系,对分散的知识点形成一个整体性的认知,从而使学生碰到具体问题时,具备选择最合适的知识点或知识点的组合的能力,这对提高学生的实践动手能力至关重要。2)程序控制结构的知识点包括“顺序结构、选择结构、循环结构”,重点突出对语法和语义的掌握,尤其是分析不同语法结构的异同点。

在“设计”层面,注重对如下的算法设计能力的培养:1)在循环、数组及函数等知识点中,加强对常见的经典算法思想的训练,如枚举、递归、递归、迭代、排序等。2)针对学习或工作中的实际应用问题,注重包括建模在内的计算思维能力的训练。3)逐步培养学生求解最优解的算法设计能力。4)引入部分ACM或程序设计大赛题目作为案例,引导学生尽早接触学科竞赛,激发学习兴趣,促进教学和竞赛的良好融合。

4 实践教学环节建设

C语言课程,是一门动手能力极强的课程,因此实践教学环节尤其重要。本课程的实践教学环节,一般分为实验和课程实习。由于难度及学时限制,实验环节基本以验证性实验为主,使学生欠缺综合性、设计性实践动手能力的训练;当进入课程实习环节,学生突然面临综合性、设计性的项目时很难适应,项目完成质量总体不高。

为了解决上述问题,本人采取了如下的措施:

1)实验环节分为基础层次和提高层次两个类别的实验项目。基础层次为验证性实验项目,在课内完成;提高层次为综合性实验项目,采取课内和课外相结合的方式。为了向第二个环节课程实习更好地过渡,对于每次实验课程中的综合性实验项目,采用“总分总”的方式:即首先设计与课程实习类似的综合性的案例,然后将它科学合理地划分为若干模块,并切分到每次实验中;学生在每次实验时,完成该项目的一个模块,循序渐进地完成所有实验后,学生就可以完成这个完整的综合性的实验项目。

如:设计一个经典的学生成绩管理系统,并科学合理地切分至每次的实验中。在顺序结构实验中,实现输入一个学生的各门课程的分数并求出该学生的平均分;在选择结构实验中,判断学生的登录信息是否正确;在循环结构实验中,对于输入的错误的登陆,限定重新登陆的次数;在数组实验中,实现全班每个学生的平均分、单科及平均分的排序;在函数实验中,将输入、登陆、求平均分、排序等功能用函数实现;在指针实验中,采用动态数组实现函数实验中的各项功能;在结构体实验中,用一个结构体数组改写前面的若干个数组,并重新实现前述的各项功能;在文件实验中,将第一次输入的数据写入文件中,并实现从文件中读取数据到结构体数组中。

通过上述训练,既夯实了学生的基础,同时,在有限的学时内,也极大地提高了学生综合性的实践动手能力,并为第二阶段的课程实习奠定了良好的基础。

2)在课程实习环节,设计一个与实验环节类似的面向实际应用的项目,从设计到实现,全部由学生自主完成。同时,为了更好地激发优秀学生的学习兴趣,适当增加项目的难度及复杂度。

通过上述的方法,极大地增强了学生的综合性、设计性的C语言程序的实践动手能力。

5 总结

在C语言程序设计课程教学中,围绕“语言应用”这一目标,在教学内容设置上突出“知识整体性”以及“算法设计”,在实践教学环节建设上突出“面向应用的综合性、设计性能力培养”,经过多轮的教学研究与实践,取得了较好的教学效果。但是,目前面向应用的综合性、设计性实验项目案例资源库尚待进一步丰富与完善,在今后还需加强上述资源库的建设,以期更好地提升学生的实践动手能力,提高专业人才的培养质量。

参考文献:

[1] 王颖,杨文莲,刘丽娟. C 语言教学中不容小觑的思维能力培养[J]. 中国科技信息,2011(2):212-213.

[2] 吴永芬,陈卫卫. 面向创新实践能力培养的 C语言程序设计实践教学改革[J]. 计算机教育,2014(3):88-91.

[3] 李倩. C语言程序设计课程中计算思维能力的培养[J]. 网络安全技术与应用,2013(5).

语言课程设计总结篇2

C语言是目前应用最广泛的结构化程序设计语言之一,既具有高级语言的特点,也具备低级语言能够访问计算机底层的能力。C语言的应用非常广泛,C语言可以应用在电子技术、计算机控制、嵌入式系统、单片机应用和通信技术等相关学科。通过本课程的教学,可以让学生学习C语言的基本知识,掌握基本的程序设计能力,既可以为后续相关课程的学习打下坚实基础,也可以运用C语言来解决以后岗位工作中出现的实际问题。

1C语言教学现状

C语言具有较强的实践性和应用性。对于高职非计算机专业,一般于大二第一学期开设本门课程,先修课程是“信息技术基础”,后续课程是“单片机原理及应用”、“嵌入式系统”等。“C语言程序设计”要求学生掌握微机的硬件和软件的基本知识,培养学生微机的逻辑思维能力,要求掌握编程思想,具备基本的阅读程序和程序编写的素质。

在实际教学过程中教学组织者发现,C语言语法烦琐,知识点复杂,并且高职学生计算机专业知识水平较低,学习积极性欠缺,如果采用传统的以教师讲课为中心的教学方式,将不能实现很好的教学效果。除此之外,传统的以笔试成绩占总评成绩的70%的考核方式,体现不出实践的重要性。[1]

2改革措施

21优化教学内容

高职高专学生对感兴趣的东西学习积极性较高,而对相对枯燥的内容则学习效率较低。又由于非计算机专业学生计算机相关知识薄弱,因此在“C语言程序设计”这门课的教学中,不能盲目地照本宣科,教学内容的传授应考虑学生的接受程度和接受能力。树立因材施教的指导思想,遵循“理论够用,注重实践”原则,选择既具有基础性、典型性的内容。应降低对算法的要求,选择典型的、浅显易懂的算法。例如讲解指针部分,重点应放在指针的概念和简单应用,其余内容可作简单介绍或选择课下学习。[2]

课程的前几章内容往往是变量、数据类型、运算符、表达式等C语言基础知识,如果只按照教材顺序讲解,讲了几周课之后还没有涉及具体编程内容,学生感受不到C语言的功能和魅力所在,容易使学生对本门课程产生枯燥乏味和疲倦的心理,从而失去对C语言的学习兴趣。所以在课堂教学过程中应以程序设计为主线,把学生要掌握的基础内容贯穿到编写代码的过程中,通过实际案例讲解基本知识点,把学生不感兴趣的知识融入实际案例里。

22教学方式改革

C语言程序设计是一门专业基础课,教师要把基本内容讲解详细,以便让学生容易掌握,同时要让学生学会编程技巧来解决实际问题。因而,在教学过程中应按照“教、学、做合一”的原则,变更了以教师讲解为重点的传统的教学方式,真正做到了以学生为主体,教师为主导,让学生边学边练,并在实际编程平台下熟练掌握编程技巧和操作方法。主动实施分组讨论、任务驱动、讲练结合和案例导入等多种“以学生为主体”的教学方法。

221案例导入

在本课程的讲授过程中,学以致用是一个基本的要求,如果只是一味地对学生灌输知识点,不注重与实际的结合,因此在教学的过程中使用了大量的案例。以解决实例的学习方式来学习C语言程序设计这门课程,使学生体会到知识的实用性,提高学习兴趣,并能够加深对知识点的理解。[3]

222任务驱动

通过任务来激发、加强学生的学习积极性,以任务的完成结果来检验和总结学习过程。每次课都提出一个明确的任务,通过一个任务掌握某个章节的知识点,突出重点,分解难点,教学目的明确。如讲授选择结构时模拟银行ATM机的菜单选择;讲解顺序结构程序设计时提出各类数据输入输出方式的问题。[4]

比如讲解循环结构中的for语句,首先提出问题“计算sum=1+2+3+4+5+…+100的值”。传统的思路是利用赋值语句,将1,2,3,4,…98,99,100这些数值进行加法运算赋值变量sum。当利用赋值语句求解加法运算的时候,按照以下思路赋值。

步骤1:初始化,赋值sum=0;

步骤2:计算sum=sum+1,此时sum中的值为1;

步骤3:计算sum=sum+2,此时sum=1+2;由此可知最后一条赋值语句为sum=sum+100,总共100条赋值语句。

在实际操作中发现输入一百个数值的过程不仅重复烦琐,而且效率低易出错,如果利用赋值语句计算1+2+3…+10000的值,则更不容易实现。通过分析发现这种解决方式体现不出编程语言的优势所在,需要寻求其他办法。在这个时候教师提出重复执行的操作可以用循环结构来表示,下面用循环结构中的for语句解决此问题。

再次提出“具体怎样使用循环结构”的问题,通过以上分析,每条赋值语句可以改写成sum=sum+i的形式,并且这条语句重复了一百次,循环体语句是sum=sum+i,i的变化范围是1~100,i的变化规律是自增1。引出for语句的标准形式for(i=0;i

223讲练结合

作为高职高专教学,实践教学应该是其一大特色,学生对实践性环节的学习兴趣明显高于理论课程的学习,C语言的教学也应通过加强实践教学,来培养学生的学习兴趣。

一般情况下,学生即使掌握了程序设计基础知识,但是在实际操作中自己仍然不会编程,面对实际问题无从下手。针对以上问题,采用了边讲边练的教学互动模式。通过讲解编程思路、编写代码、运行、调试自己设计的程序,最终获得正确结果,让学生亲自观察和体验程序设计的成功感受,加深知识的理解。在课内实践教学过程中,采用启发式的教学模式,摒弃“填鸭式”教学,引导学生在分析问题、解决问题的过程中加深对知识点的理解。例如学习复合赋值运算符“+=”,首先引导学生思考a=1;a+=?和a=2;a+=?,下一步经过编程或取结果,分析每一个结果,引出复合赋值运算符的运算规则,掌握C语言风格的表达方法。[6]

23考试改革建议

传统的考核模式是期末考试占总评成绩的70%,平时成绩占总评成绩的30%,这种“一考定终身”的评价方法,在很大程度上制约了教学水平和教育质量的提高。作为一门实践性和应用性较强的课程,要求学生注重实践,将体现编程能力的上机实验成绩加入到总评成绩中,提高平时成绩和实验成绩的比例,降低笔试成绩的比例。凸显实践和学习过程的重要性。[7]

3结论

语言课程设计总结篇3

现在高等学校,一般也都根据不同的需要选用不同的程序设计入门课程。其中C语言作为一门程序语言基础课,由于其功能强、使用灵活等优点受到广泛的欢迎,也就是说C语言已经成为了学习程序设计语言的一个必要的基础。在学时相对较少的情况下,学生要学好这门课有一定的难度.但依然要提高教学的质量和效果是广大教学工作者正在思考和探索的问题.

2、教学过程中的改进

2.1教学方法的改进C语言作为DOS时代的一种主流程序设计语言,已逐渐演变成为一种程序设计的入门级语言——重在使学生熟悉计算机处理事务的过程,掌握程序设计的思想,完成学生从中学生到大学生学习思想的转变。因而C语言程序设计课程这门课大多高校开设在一年级的第一学期,要从只要求计算机基本操作的中学时代迅速转换到大学时代的程序设计员,对于学生是一个逐步转变、逐步学习的过程。而对于我们教育者来说,如何去改进现有的教学方法,正确的引导学生学习思路、学习方法的转变,以提高课堂教学的质量.笔者在以下几方面进行了尝试:

2.1.1教师角色的转变中学时代的教学多以升学为基本任务和目标,所以中学教师的教学多以灌输式为主,在教学过程中教师始终是主体,而学生总是被动的接受和消化。而大学时代的教学是以培养学生的基本素养和能力为目标,因而要求教学的过程要以学生为主体,教师要做正确的引路人,而不是知识的灌输者。因而教师角色的转变实际上更多的还是在学生心目中中学教师角色到大学教师角色的转变,要在教学的第一堂课向学生宣布这个事情,使学生从教师角色的转变到学生自己明白他们已经跨入了人生的有一个新的阶段:自己的学习、思想都要有更大的转变,从以前被动的接受学习,到大学时期的主动自觉的学习,从而培养和更大的提高他们的学习能力和其他方面的能力。

2.1.2课堂实施的转变C语言作为一门程序设计语言自然有它自身的特点,但是作为一门言语课,他又脱不开与学生很熟悉语文、英语这些语言课学习的共同之处。根据笔者的学习和教学经验:得知更多的学生在学习C语言的过程中,甚至在学习完这门课后也不知道C语言的作用是什么,它学习的重点内容是什么。所以C语言教学的课堂实施的转变更是教学的重中之重:要使学生从中学时期纯粹的数理化的学习转变到大学时期专业能力和自身适应能力的学习。根据笔者多年的教学,我们引用用了一个全新的教学方法—“3W1H”教学法。在讲C语言前和所讲的每一节课都要使学生明白正门课或者所讲的每个知识点是什么(WHAT),在哪里能用(WHERE),为什么要这样用(WHY)和怎么去用(HOW)。从总体的结构:程序设计语言的3W1H到没一点的3W1H,我们在每一节课的过程中都要去给学生分析、实践。另外我们又结合语言课的特点教会学生从C语言的字(字符)、词(数据类型、变量常量)、句(语句)和章(函数、程序)入手去总结,打乱教材的原有章节,去分析总结,从而大大提高了学生学习的效率。

2.1.3选择合适的软件在我们学习任何一门程序语言之前,都要先安装好它所匹配的软件:一个开发环境,例如turboC2.0。这个软件曾经占据了DOS时代开发程序的大半个江山,但对于现在的Windows时代,用turboC有时感觉力不从心,编辑程序很吃力,没有函数变量自动感应功能,查询参考资料也不方便。建议使用VisualC++,这个东西虽然比较大块头,但是一旦安装好了,用起来很方便。一般在学习完C语言之后都会学习一下C++的,因为C++是针对于windows的可以运行C程序的软件。

2.1.4采用传统教学和多媒体教学相结合的方式C语言的课堂教学改掉了过去纯粹的黑板教学,而采用了黑板教学加多媒体教学进行。首先,考虑到该课程基本概念多,同时需要分析大量的例题,我们把一些典型的例题在讲课时先有老师进行剖析设计算法,并和学生分析要解决这一问题用C语言编程所需要的本节课或者以前学过的知识点,然后在黑板上和学生一块去画出流程图,最后和学生一块去写出程序。

语言课程设计总结篇4

【关键词】初中英语教学 语法教学策略 微设计

【中图分类号】G633.41 【文献标识码】A 【文章编号】2095-3089(2015)11-0094-02

在初中英语课堂教学过程中,教师应以学生的发展为宗旨,通过有效的教学策略来提高教师的教学质量。马德玲提到“恰当的情景设计能很好地完成词汇语法课型,情境的创设能激发学生的学习动机,调动学生的学习积极性”。如何选择情境、在情境中结合学生的语法学习与交际能力培养是教师在教学实践中出现的困惑。笔者通过对初中语法教学“微设计”的案例研究,以学生为中心,激发学生的想象力和思维能力,充分培养学生的交际能力。

课堂教学设计中的“微设计”,是指以“微设计”的形式对初中阶段的语言知识要点进行教学分析和教法设计。以下是笔者在教学实践中以“微设计”的形式,在情景设计的基础上对初中语法教学进行的一些思考。

一、在情景中导入语法

教学情境的创设本身不是英语教学的目的,只是英语教学的一种策略和手段,是高效地实现英语教学目标的一种途径。因此,教学情境的设置必须要真实有效,在学生鲜活的日常生活环境中发现、挖掘情境学习的资源,并利用学生已有的知识和经验。

“微设计”案例1

一般过去时导入的情景设计

教师在上课伊始,告诉同学们本课要介绍两位新同学给大家认识,并且向学生展示两张新同学的照片,介绍两位新同学的基本情况,引起同学们对两位新同学的好奇心。然后教师播放一则有关这两位同学周末做了什么事情的Grammar Rap ,节奏感强,难度适中。这个情景设计能够让学生在边听边唱中愉快地进入本课时的主题――一般过去时。

二、在情境中引导学生主动“发现”语法

人的认识过程是从感性到理性的过程。体现在语法教学中,就是从具体的语言实践中感受语言规律,总结语言规律,再运用语言规律的过程。而语言学习需要从语言实践中感受语言规律,在实际教学中,教师应该善于利用恰当的实例解释语法规则的精妙之处,让学生领略到语法的魅力。

“微设计”案例2

教师在教授过去进行时的基本结构时,给学生创设了这样一个情景:教师里正在上自修课,当老师走进教室一瞬间,同学们都在做什么事情,各自有什么不同的反应。在PPT上出现了很多照片和过去进行时的句子,教师让学生通过这些句子来总结过去进行时的基本结构:was/were+doing sth. 在学生总结出这个基本结构后,让学生运用基本结构来描述在老师进入到教室时,同学们可能出现的各种反应。这个教学设计让学生从感性地观察教室里同学们的不同表现,然后上升到理性层面,学生总结出过去进行时的基本结构,再回到运用过去进行时描述熟悉的情景,使学生在这个具体的语言实践中掌握过去进行时。

三、创设真实的情境,增强课堂的整体性

教学情境的设计本身不是英语教学的目的,只是英语教学的一种策略和手段,是高效地实现英语教学目标的一种途径。教师对真实有效情境的利用可以激发学生学习语法的热情和积极性。在实际教学中,教师可以挖掘情境学习中需要的鲜活的资源,并充分利用学生现有的知识和经验帮助他们进行语法学习。教师在语法教学中,应该尽可能为学生在真实语境中提供运用语言的机会,让学生在运用中学习语法。

“微设计”案例3

教师在教授情态动词的用法时,引导学生对自己熟悉的校园进行观察,找出校园中出现的一些标志,并让学生来描述这些标志的含义。

A: What does this sign mean?

B: It means: we must/ mustn’t/ can/can’t _______________.

在这个过程中,教师创设了与学生实际生活相关校园这个真实的生活情境。将真实的生活情境带进了语法教学课堂, 拉近了教学与现实生活的距离, 也在一定程度上减少了学生接触新语法时的焦虑感。 通过真实地道的生活场景可以吸引学生投入到学习中, 并学会如何在真实场景中运用语法。

四、总结

语法学习的最终目标不是了解句子的成分,而是为了更恰当、更准确地把自己的想法表达出来,语法教学中,教师应根据教学内容、 教学目标及本班学生的认知能力等实际特点,积极创设真实有效的活动情境,让学生在实践中增加语言输入,避免脱离实际语言环境的机械操练, 将语法知识变得生动有趣,提高学生语法学习效率。

参考文献:

[1]朱晓燕. 英语课堂教学策略――如何有效选择和运用[M]. 上海教育出版社,2015.

[2]Sara Cotterall &Hayo Reinders. 学习者策略教师指南[M]. 人民教育出版社,2010.

语言课程设计总结篇5

《微型计算机原理与接口技术》是学校信息管理与信息系统专业的专业基础课。本课程概念抽象不易理解,而且内容烦多又枯燥乏味,是一门理论性和实践性都很强的课程。因此,无论是从教师的教或学生的学上来说,难度都较大,也遇到很多问题。

一、课程难点问题分析

1.教学内容和学时的矛盾。教学内容繁多、信息量大是本门课程的一大特点。《微型计算机原理与接口技术》课程共86学时,其中理论教学68学时,实验教学18学时,是许多专业课程学时数的两倍,是信管专业大学四年学时数最多的一门课程。为了在规定的教学周期内完成课程的教学内容,本课程的教学频度相应的也是许多课程的两倍。而本课程的教学内容涉及微处理器结构、汇编语言、存储系统、接口芯片、总线电路等知识,内容烦多且深奥难懂,需要深入而详细的讲解。因而,本门课程虽然总学时数很多,但每堂课的教学内容依然繁多、信息量依然很大。

2.缺乏有效的先导课程,课程入门较难。《微型计算机原理与接口技术》囊括计算机系统、微处理器、存储器和各种型号的接口芯片,是信管专业惟一一门和计算机硬件相关的课程,学生缺乏有效的先验知识。虽然,学生学习过《电路基础》、《模拟电子技术》、《数字电子技术》等课程,对接口技术的学习有一些帮助,但是对于课程的入门知识—微机原理,尤其是汇编语言部分,学生依然是一头雾水,久久地徘徊在云里雾里。

3.汇编语言难学、难理解。wwW.133229.COm在学习本门课程之前,所有学生都学过高级程序设计语言,例如c语言、c++或者vb等等,学生已经习惯了一条代码或者几句代码实现一个功能模块的设计方式和思维方法。但是,汇编语言是一种面向机器的程序设计语言,汇编语言指令与机器指令是一一对应的,即使实现一个简单的运算,也需要由若干条指令配合使用。因此,对于初学者来说,汇编语言难学难用。

4.地址译码难以理解和掌握。地址译码是本课程的重点和难点,其思维和设计贯穿了接口技术的始终。无论是存储器技术、基本的输入输出方式,还是8253、8255芯片和ad、da变换,都涉及地址译码的相关应用。地址译码包括全地址译码和部分地址译码。前者用全部的高位地址信号作为译码信号,使得存储器芯片的每一个单元都占据一个惟一的内存地址。而后者用部分高位地址信号作为译码信号,使得被选中得存储器芯片占有几组不同的地址范围。复杂多样的译码方式是大多数学生心中难以弄明白的谜题。

二、问题解决方案

上述教学中存在的问题困扰了本课程的师生很长一段时间,使本门课程成为所有专业课中令人望而生畏的存在。针对以上教学过程中发现的问题,需要用不同的方法逐一去解决。

1. 合理选择教材,精心设计教学过程。现在市面上关于《微型计算机原理与接口技术》的教材很多,基本上都涉及了微处理器、汇编语言、存储器系统、io接口和计算机总线等知识点,但是不同的教材知识点的侧重和详略是不一样的,因而选择合理的教材、突出重点,显得格外重要。同时,精心设计教学内容,在有限的课时内,主次分明、详略得当地向学生传授知识,让学生有重点、分层次地掌握知识,而不是一股脑地全盘接受。

2.理论联系实际,利用多种教学手段,变抽象思维为形象思维。对于总线、cpu、io接口等,学生既熟悉又陌生的专业名词和术语,第一步要做的就是消除学生心中的陌生感和距离感,通过现场拆机和观看视频演示等手段,给学生现场观看并亲手触摸他们平时耳熟能详、但又不识庐山真面目的总线、cpu、io

转贴于

接口、计算机芯片等各个计算机部件,让他们清楚地了解以后编程和设计的对象是怎样一个存在,变抽象思维为形象思维。同时,激发学生的学习兴趣,变被动学习为主动学习。

3. 有效利用仿真软件,揭开汇编语言的神秘面纱。汇编语言难以理解、难以掌握,几乎成为每个学生的共识。其主要的症结所在,便是学生难以把握汇编语言程序运行的过程和每一步的执行效果。想要了解一个程序段的执行结果,必须详细的明确每条指令执行的效果。因此,需要和masm软件结合起来,清晰地查看程序运行过程中各个寄存器和标志位的变化。

图 仿真软件masm的执行效果

4. 结合案例和实验,深刻理解地址译码问题。针对学生普遍难以理解的地址译码问题,要通过案例讲解和实验操作相结合的方法来解决。首先,通过大量的案例分析,阐明全地址译码和部分地址译码的区别,详细介绍各种地址编码和译码方法的核心思路;然后,通过在实验过程中,让学生自己动手进行编码和译码设计,实现全面了解和掌握的目的。

三、结束语

语言课程设计总结篇6

关键词:C语言;实验;教学改革

作者简介:吕风杰(1973-),男,山东沾化人,滨州学院计算机科学技术系,讲师;马士明(1983-),男,山东滨州人,滨州学院计算机科学技术系,助教。(山东滨州256600)

基金项目:本文系滨州学院教学研究资助项目(项目编号:BZXYJYXM200737)的研究成果。

中图分类号:G642.423     文献标识码:A     文章编号:1007-0079(2012)10-0118-02

C语言以其结构化、灵活性好、可移植性强、效率高等优点被广大院校理工科专业选为程序设计的入门课程。[1]随着应用型人才培养改革的不断深入,学生培养目标和教育教学理念也不断更新,但自进入高校课堂20余年来,受传统应试教育的引导,大都将授课重点放在C语言的基本语法的理论讲授上,而实验教学大多用于C语言的语法规则的验证和说明,这种教学模式仅从语言的使用这个单一的角度进行教学而使得大多数学生在学完之后吃不透、用不活所学语言知识。面对这种形势,原先的实验教学计划已远不能满足要求,如何从培养学生能力的角度出发优化实验教学内容,使实验教学与理论教学形成一个目标明确、由浅入深、紧密联系的有机整体已成为当前C语言教学中的迫切性问题。本文从C语言的特点出发,对如何在当前课时、实验资源有限的情况下,通过实验教学促进、完善课堂教学效果,培养学生实践能力、创新能力和应用能力进行了深入的探讨与实践。

一、改革实验教学内容

在应用型人才培养模式下,实验教学的组织要兼顾实践性与创新性。我们在原有教学大纲的基础上,根据电子信息类专业的特点重新修订了实验大纲,教学内容中提高了设计性和综合性实验的比例。

1.改革实验内容组织结构

为了不影响专业教学计划,又能保证实验教学改革的顺利进行,我们结合理论教学进度,编写了相对开放的实验教学大纲和讲义,将实验分为基础性实验、设计性实验和综合性实验三个层次,又将每个层次的实验内容分为必做和选做两类,以供不同专业按要求进行灵活选择。根据理论教学进度安排基础性实验,让学生熟悉编程、调试环境,掌握基本指令并学会简单编程,加深对课堂理论教学内容的理解;在单元章节之后安排设计型实验,采用任务驱动教学法,验证性与应用性实验相结合,在完成基础性实验的基础上,逐步丰富功能要求,并要求学生在实验报告中加以总结归纳,培养学生的综合思维能力;综合型实验其实是一个开放性试验,安排于每个知识单元或模块(从知识的角度出发,独立于理论教材编排)完成之后,每一个项目只给出具体的功能及性能要求,对具体方法不作要求和指导,并将一个实验课题分为设计、调试、总结、改进等几个进程,先由学生根据题目要求完成功能设计并通过调试,再由教师根据学生的设计从功能及性能方面进行有针对性的分析讲解,进而提出设计建议,然后由学生完成设计改进并写出实验报告及分析总结,以达到实践性与创新性的同步提高。

2.创新实验内容

目前,高校教学过程中所用教材及参考书大都以普教为目标,极少有针对专业或行业的例题和习题出现,而各高校开设的C语言实验教学内容恰恰大多为所用教材或参考书的习题。这类经典习题专业针对性差,对学生来说缺乏趣味性,用以进行功能验证尚可,但对于能力提高或创新教育的确是勉为其难了。而且随着网络等学习资源的普及使得问题的解决极为简单,学生仅需上网搜索一下即可得到完整答案,于是实验课程就成了简单的验证,很难起到锻炼和提高的作用。

为此,我们专门针对电子信息类专业的特点精心设计了实验内容,基础性实验采用经典案例,针对性强,利于学生的入门学习;设计型和综合型实验尽量选择与学生专业相关的项目,如数字滤波的实现、数据分析与验证等。这样一方面能够贴近学生所学专业,使学生不但学会了C语言,而且使得C语言有了“用武之地”;另一方面,在实际学习过程中,能够将学过的其他专业知识融入进来,提高了学生的兴趣及学习积极性,对其他专业课程的学习以至学生的学习风貌与学习态度起到了积极的推动作用。

二、改革实验教学模式

随着各高校对高等教育应用型人才培养改革的不断深入,各专业的教学内容有了较大幅度的修改和增加,在实际教学安排中“C语言程序设计”的理论与实践课时都进行了一定程度的压缩,为保证实践教学效果,在组织教学时进行了一些改革。

1.推行任务推动教学

随着计算机技术的应用与发展,C语言作为各理工科专业的程序设计入门课程,其培养方向应该是掌握程序设计及调试的一般方法,所以在实验教学组织中应以程序设计为主线,有意识地淡化C语言本身语句、语法的介绍,并积极推行典型算法与案例教学相结合的方法,通过精心设计与编排,将复杂枯燥的语法知识分解到每个生动、有趣、实用的程序实例中,把软件工程学的思想贯穿于算法分析和程序设计的过程中。例如,在每个知识单元开始之前先提出一个典型问题,如“业绩提成计算”、“数据排序”等,从问题入手,然后循循善诱,通过任务的分解、解决、综合逐步加以解决,这样不但使学生在程序分析与解决中掌握了相关语法,而且程序设计和解决问题的能力也得到了极大的提高。[2-3]

2.突出结构化程序设计特点

结构化程序设计是C语言程序设计的一大特点,而在当前的教材中却极少涉及到相关的实例,从而使得结构化程序设计在C语言教学中成了一句实实在在的空话。有些学生平时学得很认真,对语法、语句等细节也很熟悉,但碰到稍微复杂一点的编程则无从下手。在教学中,教师应该将现代程序设计的相关理念传授给学生:一般来讲,一个较复杂的软件常可以按功能分割为若干个典型的小模块,每个小模块最终都成为功能单一、结构清晰、接口简单、容易理解和编写的小程序,而加工对象――“数据流”就是将这些模块串接起来的“主线”,只要让学生掌握了典型的算法就可将这些算法变成像搭积木一样组装成相应软件的算法。

如在学过数组部分后,教师给出一个由计时函数GetTickCount()、格式输出函数printf()函数、格式输入函数scanf()一起构成的能够测试人的反应时间的“反应计时器”函数。在此基础之上布置学生设计主函数和相关函数,通过调用“反应计时器”函数完成两个个体各一组样本的采集(如各采集并存储10个独立的反应时间),并计算各自平均值、标准差等指标;进而进行t检验,对个体差别进行分析验证。这样不但使学生学会了相应的算法实现,而且对结构化程序的灵活性和易于扩展等特点及工程应用中的程序设计方法有了较为深刻的理解,同时对工程数学中较为“死板”的统计与检验内容的实际应用有了一个感性的认识,达到了实践能力与创新能力共同提高的培养目标。

另外,在教学过程中,教师还应有意识地总结归纳一些典型算法,并作为验证型实验内容,要求学生熟练掌握,如累加、累乘、查找、排序等,在后续设计型和综合型实验中将相关内容加入,使得学生能够用会、用活,为以后的程序设计奠定基础。同时,典型算法的熟练掌握也可增加学生学习计算机语言的信心,并提高学习兴趣。[4]

3.充分利用多媒体及网络教学平台

多媒体课件具有演示直观、动态性强等特点,易于被学生所接受和理解,尤其对于实践教学,多媒体课件能够进行直观的演示与模拟,满足了实验教学的要求,把难以理解的内容或不容易观察到的事物用多媒体充分显示出来,调动学生的视觉直观功能,为突破难点创造出良好的氛围,有效地弥补传统教学的不足。

运用网络教学平台进行课后习题的布置与讨论,引导学生提出问题并找寻解决方案。一方面,充分节约了课堂教学时间,缓解了课时不足带来的影响;另一方面,能够将更多的学生吸引到问题的分析与讨论中,“讨论出真知”――相对课堂教学而言,网络讨论扩大了讨论的参与面,能够最大限度地穷尽并纠正学生在问题理解过程中可能出现的问题,极大地提高了学生的学习积极性与学习效果。

4.强化实验教学过程管理

C语言是一门实践性很强的课程,除了要把理论知识学好外,上机实践也是相当重要的一个关键环节。学习中存在的疑点或难点,学生可通过上机调试得到明确解答,同时也加深对学习内容的理解。对学生而言,在每一次的上机前应做好充分准备,编写好上机内容;对上机中出现的问题应能调试分析,编写实验报告,分析程序结果。学生只有反复上机操作才能对C语言有更深、更全面的认识和理解,逐步提高实际操作和学习的能力。对教师而言,应精心设计上机实验内容。设计上机内容时,尽量把所学的内容综合起来,达到知识的系统化。同时,也可布置一些趣味性较浓的内容,以提高学生的学习兴趣,变学生的被动学习为主动学习。另外,上机内容尽量结合学生专业,让学生觉得学有所用。

三、改革实验教学评价模式

注意综合素质的培养与评价,在“C语言程序设计”期末考核中采用实验与理论考核相结合、平时成绩与期终考核成绩相结合的综合考核评价方式,并采用实验教学成绩一票否决的形式,从而改变学生在以往课程学习中“重理论,轻实践”的思想,激发学生学习的积极性与自主性,尤其在创新性培养上。具体做法是摒弃原先那种以对错判分的一刀切的评价方式,在平时教学中对学生实验完成的成绩评判要采用个案分析的方法,在充分理解学生设计意图的基础上因势利导,对设计中的创新之处或闪光点要给予充分的肯定;对不足和错误之处要帮助学生仔细分析,然后由学生自己总结改正,以提高学生的自信心,保护其学习兴趣,最后根据学生的完成情况及钻研态度进行综合评判。

四、总结

任何一种程序设计语言都有其独有的语法特点,作为程序设计入门课程的“C语言程序设计”也不例外,但是,应该认识到在高校C语言教学中,学习语法不是学习程序设计语言的真正目的,而是应该在掌握语法的基础上,通过学习与实践,真正地学会使用C语言来解决各种实际问题,进而使学生掌握程序设计思想,真正成为学生进入程序设计领域的“敲门砖”、“导航灯”。通过对近两年的学生期终理论考试成绩对比分析发现,改革前后对于语法部分的得分率没有明显变化,而综合编程题的得分率比以前有了大约25%的提高,且学生学习的积极性比以前有较大的提高,课程结束后不少学生又通过计算机等级考试等各种形式进行了进一步的学习与提高,C语言实践教学改革取得了理想的效果。

参考文献:

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

[2]郑人杰,马素霞,殷人昆,等.软件工程概论[M].北京:机械工业出版社,2001.

[3]敖志广,吕振辽,高克宁.非计算机专业本科生C语言的教学实践[J].计算机教育,2007,(1):53-54.

语言课程设计总结篇7

关键词:数据结构课程;实验;设计;Java;软件工程

数据结构是计算机类专业的核心专业基础课之一,主要讨论数据的合理组织和有效存储、处理以及算法的正确设计、分析和评价,课程本身概念抽象、方法灵活、强调逻辑思维能力、难度较大,同时课程实践性强,实验是该课程不可或缺的重要环节[1-4]。通常数据结构课程实验是由教师将问题描述和基本要求作为实验题目给出,但又绝不是让学生拿到实验题目就直接上机进行编程调试,而是要通过在实验中贯穿软件工程的方法和原理,严格按照分析、设计、实现、测试等软件工程过程并结合具体的实现语言来完成实验,培养学生养成良好的实验习惯。下文针对课程实验特点和目标,结合软件工程思想、面向对象语言Java,在课程的实验组织、过程设计、保障等方面进行了一些探索。

1课程实验特点和目标

由于面向对象方法已经成为目前系统开发和程序设计的主流方式,而Java语言是一种目前使用最为广泛的面向对象程序设计语言,因此不少计算机类专业的数据结构课程采用了Java语言描述。作为是一种完全面向对象的程序设计语言,Java在提高程序的复用性和安全性时,在不同类的资源配置方面,较面向过程的程序设计语言有更高层面的要求[3],通过Java语言表现各种数据结构、实现相关算法是数据结构课程的难点之一,这给语言基础薄弱的学生完成实验带来很大困难,迫切需要在目标、过程、方法等各方面精心组织和设计实验。

如图1所示,作为课程教学的重要组成部分,课程实验的目标主要围绕数据结构与算法、软件分析与设计、程序实现与验证、抽象逻辑思维等方面展开[4-7],即:①以数据结构和算法为核心,帮助学生加深对数据结构的理解;②以软件工程思想为基础,反复练习包括软件分析与设计在内的软件开发过程,培养分析问题、解决问题和程序设计的能力;③以面向对象的Java程序设计语言为工具,提高学生利用Java语言实现和验证算法的能力;④在理解掌握数据结构、应用软件工程思想、熟练使用Java语言的同时,还要培养严密的抽象逻辑思维能力。

上述实验目标师生都提出了更高的要求,为了更好地达到上述目标,并帮助学生在学习过程中充分发挥主观能动作用,围绕课程在数据结构、软件开发、程序实现、逻辑思维各个方面的目标,进行了课程实验的设计,主要包括切实可行的实验任务组织、科学合理的实验过程设计、结合多种方法的严格过程保障等方面,如图2所示。

2实验任务组织

根据课程实验特点和目标,对实验任务进行了精心组织,主要是针对不同基础和层次的学生进行了任务的划分,如图3所示。

2.1基本任务

对于所有的学生,不管其基础或层次如何,都必须完成一定的基本任务,那就是用程序验证各种逻辑结构的基本实现和算法,在实验的总体结构中实现函数的编写、测试、调试、验证,通过这一验证过程达到加深理解各种数据结构和算法、掌握基本教学内容的目的,这也是传统的数据结构课程实验所要求的任务。

2.2基础强化

部分学生学习基础较差,特别是Java语言的编程能力不足,对类、接口、封装、多态、方法调用等的认识较模糊,需要在基本的Java语言以及基本的方法功能理解、方法编写及调用等方面加强实验,通过对基本数据结构和算法与对应程序的反复阅读、编写、测试等训练,达到提高对Java程序结构、语法以及Java方法在程序设计中作用的认识。

2.3能力提升

针对基础较好、学习兴趣较浓的学生,为提供其发挥能力的空间,有效提高其学习兴趣,提出一些要求更高、具有一定挑战性的任务,要求能进行分析、设计并实现、测试,包括:完成比教材里典型基本功能更强的拓展功能,开拓学生的思路,如统计线性表中给定值的元素个数;使用已学的逻辑结构和物理结构完成一些扩展任务,提高学生分析问题、解决问题的能力,如统计二叉树的结点个数;灵活应用编写的方法,实现不同的功能要求,培养学生对实验总体结构配置、方法外特性的认识,如利用队列和堆栈实现单链表的逆序排列。

总之,在课程实验组织中,做到有对整体结构加以介绍的说明;有给学生完成实验的思路提示;对有一定难度的任务还给出具有参考价值的实现作为参照。这样,根据课程实验目标和学生的基础、兴趣设计客观、可行的实验要求和过程,符合人们认识事物的特点,避免了因为要求难度太大挫伤学生的学习热情。

3实验过程设计

如果仅仅依靠传统的验证型实验,学生只是将课本中算法的对应程序敲入计算机,运行一下程序、验证一下结论而已,基本上没有涉及到问题思考、分析分析、总体结构设计、程序设计等软件工程所强调的工作,而如果教师没有严格要求、反复强调、严格考核,多数学生都不做预习准备工作,更不用说养成分析、设计、比较和总结的习惯,结果是学生来作实验了,但不了解实验的目标、流程、问题产生的原因,实验效果、课程学习效果大打折扣。

3.1实验过程的规范

首先严格规范实验流程,让学生反复体会从接受任务到分析、设计、编码、测试的软件开发过程[5]。在最初的两三个实验时,由教师根据实验题目指导学生一步一步完成图4所示内容:①问题描述,即实验要解决问题的描述;②基本要求,即实验要达到的具体要求;③测试数据,即设计能达到测试目的的测试数据;④算法思想,即描述解决相应问题的算法思想;⑤类划分,即分析问题所需的类,并给出类的逻辑功能描述;⑥源程序,即有充分注释的参考实现源程序清单;⑦测试情况,即程序的测试情况以及必要的分析和说明。由于数据结构实验尚未要求进行较强功能软件的开发,故上述过程中虽然涉及了软件工程思想和软件开发过程,但一般并不强调过分详细的需求分析、概要设计、详细设计等步骤,也不必要求提供详细的使用手册。在随后的整个课程实验过程中,对学生严格要求、反复强调必须严格遵守图4的实验过程,并采用抽查等方式保证其严格执行。

3.2关注点的分离

为了将数据结构与Java语言、软件工程有效结合,要求在课程的实验过程中也始终与理论教学中一样,按图5所示的三个典型步骤来解决所遇到的数据结构和算法问题:①抽象,即分析问题需求,抽象出一个解决该问题的适当的数学模型(抽象数据类型ADT);②接口设计,即对应地设计一个规格说明来描述ADT应支持的操作,并将这个规格说明用Java接口来表示;③实现,即选择合适的数据结构和算法来实现上述Java接口,最后对各种不同实现的代价进行分析和比较。这样的步骤清楚地区分了ADT的接口与实现,体现了软件工程中分离关注点的重要原则[6],同时很好地利用了Java语言在抽象、封装等方面的优势。

4实验保障措施

通过已有的实验过程发现,仅有实验任务组织和实验过程设计是不够的,还必须要有良好的动手习惯培养、基本知识积累以及编程能力提高等作为保障措施,才能较好地达到所提出的课程实验目标。

4.1动手习惯的培养

部分学生没有动手的习惯,实践教学中应注重培养学生的动手习惯,特别是培养记录、画图、打草稿等基本的动手习惯,避免学生对知识把握不准、似是而非。如在讲解、演示或讨论时,让学生跟随教师动手在草稿纸上画图、记录,讲解完立即就刚刚所学内容的部分关键步骤再抽查学生重新讲解,并要求辅以图、表等(当然抽查也可以在下一次课进行),如果存在问题可以由其他同学纠正,最后由教师进一步分析、总结,让学生深刻体会动手习惯对知识学习所起的巩固作用。

4.2简单知识的积累

部分学生不注重积累那些功能简单的小算法,实践教学中教师应注重培养学生对简单知识的理解、记忆、积累,经常抽查,在面对那些较为复杂的数据结构和算法时,充分分析、分解其中涉及到的基本知识点之间、算法之间的联系,提示学生注意类的小型化、原子化,只有长期注重对基本知识点的理解、记忆和积累,才能避免遇到问题时无从下手,避免理论与实践脱节。

4.3编程能力的提高

由于前导课程如C语言、Java等掌握不好、认识不深、基础不牢,不少学生编程能力较弱,缺乏把数据结构和算法转化成代码实现的能力,部分学生甚至不能把一些简单的算法转换成完整的程序,以及缺乏基本的排错能力,都大大影响了这些学生学习这门课的积极性和效果。

为了使实验过程清晰并降低实现的难度、提高可操作性,要求学生一开始所设计的ADT不一定功能很完备,只要具有那些典型的、能初步表现问题需求的基本功能即可,随着上述步骤的一作结束,根据问题的需求,进一步完善现有的ADT及其实现。让学生既在运用中逐步体会了软件工程原理和应用,又对通过不断运用Java的基本知识,提高了编程能力。

另外,加强现场指导、交流、沟通,及时发现学生的困难,有针对性地帮助学生提高认识、解决问题,以及实验完成后进行分析总结,集中讨论实验中的一些普遍问题,都是提升实验效果的有力措施。

5结语

基于实验在数据结构教学中的重要地位,精心的任务组织、科学的过程设计和严格的保障措施是十分必要的。一段时间的运行表明,上述做法对于促进学生在学习过程中充分发挥主观能动作用,增强对数据对象特征的理解、数据组织方法的掌握、软件开发过程的熟悉、程序实现技能的培养以及抽象逻辑思维能力的提高等方面都起到了积极的作用。

参考文献:

[1] 杨红宾. 数据结构课程改革探讨[J]. 教育与职业,2009(32):131-132.

[2] 沈根海. 高职院校数据结构实验教学的探索[J]. 电脑知识与技术,2008(33):1427-1428.

[3] 张济础,杨亚莉. 高职院校“数据结构Java语言描述”课程的实验设计[J]. 计算机教育,2010(1):64-65.

[4] 杨晓波. 浅析数据结构课程教学中的实验环节[J]. 甘肃高师学报,2003(5):49-50.

[5] 朱战立. 数据结构Java语言描述[M]. 北京:清华大学出版社,2005:295-299.

[6] 周大庆. 实用数据结构教程Java语言描述[M]. 北京:人民邮电出版社,2007:1-2.

[7] WEISS M A. Data structure and problem solving using Java[M]. London:Pearson Education,2006:1-5.

Experimental Design of Data Structure Course Using Java

LI Gang, HUANG Tongyuan, ZHANG Xiaochuan

(School of Computer, Chongqing University of Technology, Chongqing 400050, China)

Abstract: This paper analyses the experimental teaching objectives of Data Structure course using Java, and it focuses on the discussion of tasks organization, processes design and guarantee measure integrated with Software Engineering and object-oriented language Java in experiments.

语言课程设计总结篇8

关键词:C语言程序设计;教学改革;并重;分阶段;侧重点

基金项目:河北北方学院教育教学改革课题(项目编号:JG201142);张家口市科学技术研究与发展计划项目(项目编号:1311020C); 科技部项目“农村医疗卫生知识库及远程医学服务系统及应用”(项目编号:2012BAH05F04).

中图分类号:G642.0 文献标识码:A

一、引 言

《C语言程序设计》是高校计算机类专业最先开设的一门程序设计课程[1,2]。多数学生在此之前缺乏软件开发知识,更没有动手编程经历。在此情况下,该课程的教学改革不能像有些学者提出的那样一改到底,由过去“重语法轻实践”转而走向“轻语法重实践”,从一个极端转向另一个极端[3-5]。在没有积累必备知识的情况下就要求学生动手编写程序,违反人类认知规律,最终会导致学生学得一头雾水,进而产生畏难情绪,学习热情受挫,对后续专业课程的学习产生不良影响。“皮之不存,毛将焉附”,所以我们应该让学生在开始学习程序设计语言时就打下坚实的理论基础,养成良好的编程习惯,在此基础上对其适当提高要求,从而为其将来学习其它程序设计语言或从事软件开发工作奠定基础。

二、教改思想

本教改思想强调理论与实践并重,不同教学阶段侧重点不同。初期重视基本理论、语法的教学,后期则侧重于程序设计的指导。

(一) 理论知识

理论知识的教学从学期初的详细讲解到点拨指导,直至不单独讲解,而是让学生在做程序设计过程中琢磨理解。对于重点、难点及易错语法则需通过案例反复强化,以便学生熟练掌握运用。

(二) 程序设计

程序设计要遵循由易到难的规律,从模仿到自主编写简单的小程序,再到编写较复杂的大型程序,最后合作完成综合型的课程设计。

总之,本教改思想强调语法理论和程序设计并重,编程中渗透理论,理论中掺杂编程,相互促进。最终培养学生的编程思想,养成良好的编程习惯,提高学生的编程能力。

三、教学过程

根据学生认知和接受知识的规律,本教改方案将教学过程分为四个阶段。

(一)侧重理论教学阶段

在学期初理论教学课堂上,教师需详细讲解C语言的基本语法理论知识,并辅以具体范例进行演示,让学生对相关理论知识有所掌握,在实验课上,学生应在教师指导下模仿案例编写简单的程序。在本阶段学生需重点掌握基本的语法知识,包括数据类型、输入输出函数、三种基本结构等,以便为后续程序设计奠定坚实的基础。

如在讲解if语句时,引入将三个数a、b和c按从小到大的顺序输出的例子。首先利用课件讲解if语句的功能、用法等知识;然后引入例题的算法分析;最后用if语句将算法表示出来。比较两个数的大小时会有a>b和a≤b两种情况。我们只给学生详细讲解当a>b时,比较三个数大小的算法思想,然后学生就可以模仿给出a≤b的情况下,三个数如何比较大小,这样就建立起了分析问题的思路,完整的程序需要学生在实验课上自己模仿写出,并调试运行,由此学生就会更好地掌握if语句的使用。

(二)理论与程序设计同步阶段

在学生有了一定的理论基础后,要适当加快理论授课的进度,为后期课程设计留有足够的时间,在此期间要相应地增加编程练习,同时不断提高程序的难度,以此训练学生的动手编程能力,并养成勤于动脑、动手的良好编程习惯。

本阶段涉及的主要知识点有数组、指针及结构体等。在这一阶段的学习过程中,要求学生提前预习,教师减少理论知识的讲解,上课时先简单讲解基本语法,重点解释学生自学时遇到的不懂、不理解的知识点;然后布置任务,安排与本次课需要掌握的内容难易程度适当的案例让学生通过自己动手编程完成。

例如在讲解结构体时,要求学生提前预习,初步理解结构体类型定义、结构体变量、结构体数组及结构体指针变量的相关知识。课上粗略讲解基本知识点,而着重讲解学生迷惑的问题,如结构体的本质,强调其是一种数据类型而非变量。引入案例时,先由学生提出在描述一个学生的基本信息时需体现的属性有:姓名、性别、学习成绩等内容,这时我们可以定义一个描述学生基本信息的结构体,然后定义两个结构体变量,对每个结构体变量的学习成绩求总分,并比较两个结构体变量总分的大小关系。接下来学生在实验课上完成:设计简单学生档案管理程序,对10名学生的总分进行排序,要求使用结构体。由于具备了相关知识,并已理解老师所讲实例,所以学生能够轻松掌握。

(三)编写程序阶段

本阶段的教学任务是教师在课堂上确立较复杂的实战题目,引导学生分析、设计,然后由学生自主进行程序的编写工作。在此过程中,学生是主体,教师只起辅助指导作用。

涉及的主要知识是文件和位运算,对于这两部分知识渗透到程序设计和调试过程中讲解。在实践过程中强化学生对难重点、易错语法知识的理解和运用。对具有共性的编程错误给学生做重点展示,让学生自己发现错误并改正,达到既锻炼了动手能力又不轻视语法知识的目的。

如在讲文件时,可以要求学生输入某公司30名职工的基本信息到文件newcp.txt中。要解决这个题目,首先引导学生分析出程序所要完成的功能、涉及的知识点(如文件指针变量、结构体数组、循环结构等内容)。然后让学生自己用流程图将算法表示出来,最后着手编程实现。

在学生动手完成程序后,要总结他们在编程过程中容易犯的错误,例如:打开文件时没有对是否成功进行判断,导致程序出现异常;各种库函数调用时参数不正确等。教师展示这些错误,并让学生自己予以纠正。由于有了前面编程过程中的经验和教训,学生对这些错误和重点、难点语法就会有更深的认识,从而达到了在实践中掌握语法的目的。

(四)课程设计阶段

利用学期后三周时间给学生安排一个较大型的C语言程序设计任务。本课程知识掌握程度通过课程设计的方式考查。

教师首先将班内同学按不超过3人的规模分组,并要求每组确定一个课程设计题目,如五子棋、贪吃蛇、扫雷、学籍管理系统等。设计题目可以由教师指定,亦可自拟。之后将课程设计按功能分解为不同模块,由不同学生分别编写。最后,大家通过查阅课外资料、请教老师、互相探讨等多种方式和途径共同协作完成整个课程设计。作品展示时,每位同学都要阐述自己在设计中的贡献,根据所做贡献、能力和态度,教师予以评分,这一分数在本门课程的最终成绩中所占比重为70%,其余比重由学生的出勤和平时实验报告成绩构成。

课程设计就是对学生的学习成果进行验收,通过这样一个小型的完整程序设计,学生可以实际应用所学知识,同时也增强了学生的成就感,既培养了学生的编程思想,又培养了他们在工作中的合作意识和团队精神,并有利于后续专业课程的学习。

四、教学中需特别注意的事项

(一)明确学习C语言的重要性

在正式讲授课程内容之前,要从C语言的发展历程、应用领域和就业前景等方面阐述《C语言程序设计》课程的重要性,以此激发学生学习兴趣,增加内在动力。

(二)增加算法课教学

在系统讲授C语言基本知识以前,给学生增加一节算法课是非常必要的,因为学生要想利用C语言解决实际问题,就必须保持清醒的头脑和对求解问题的准确分析能力,而这就要求他们熟练掌握算法设计、算法复杂度分析等知识。

(三)渗透软件工程思想

在后期的课程设计阶段,我们可以引入适量的软件工程知识。对于软件开发中的各阶段无需一一详细讲解,但可选取其中部分内容,如可挑选需求分析,总体设计及软件测试中的一些经典的方法。通过实践培养学生的软件工程思想,为学生的后续发展奠定良好基础。

五、结束语

C语言是一门基础程序设计语言,在计算机类专业学生所修课程中占据举足轻重的地位。提高教学质量,达到良好教学效果,使学生掌握并能熟练使用C语言是我们的主要教学目标。近两年的教学实践证明,“理论与实践并重,不同阶段不同侧重”的教学理念取得了预期效果,不仅改变了学生过去“会学不会用”的状态,而且避免了轻理论重实践导致的基础不牢弊端。

参考文献:

[1] 谭浩强. C语言程序设计[M],清华大学出版社,2005.

[2] 赵喜清. C语言程序设计[M],中国农业科学技术出版社,2008.

[3] 盛波. 项目教学法在C语言教学改革实践中的探索[J]. 科技风,2010,4:26.

[4] 孙连坤, 叶华, 曲爽. 以能力培养为导向的C语言程序设计教学改革[J]. 吉林广播电视大学学报,2011,2:49.

上一篇:课程设计年度总结范文 下一篇:调度课程设计总结范文