c语言程序设计课程教学大纲201

2024-10-31

c语言程序设计课程教学大纲201(共14篇)

1.c语言程序设计课程教学大纲201 篇一

荆楚理工学院

《C语言程序设计》课程设计教学大纲

一、课程名称: C语言程序设计

二、课程代码: Z04013

三、课程管理: 计算机工程学院(部)计算机应用教研室

四、教学对象: 计算机类相关专业

五、教学时数: 总时数 20 学时

六、课程性质: 专业主干课

七、课程衔接: 先修课程《计算机基础》

1、巩固和验证所学的理论知识,加强对对课本知识点的感性认识,实现与理论教学的衔接。

2、培养程序设计基本素养,包括总体规划,模块化结构设计,各功能通过函数来实现。通过课程设计,最终使学生能够独立完成程序规划,熟练编写简单程序,为以后进一步学习打下基础。

3、培养创新思维和创意灵感,锻炼独立的设计能力,提高独立分析、研究、解决问题的能力,设计出原创系统。

九、课程设计的要求

1、全面了解C语言程序设计过程,掌握规划设计一个小型应用系统的方法。

2、掌握C语言基本特点,根据自己的兴趣点、爱好选题,并进行设计。

3、准确应用函数、数组、结构体、指针等知识。

十、课程设计时间和地点

2014年6月9日至6月18日每天下午 A5-***

十一、课程设计进程安排:

6月9日 根据兴趣爱好确定题目。6月10日—16日 展开设计。

6月17日 测试程序,并做相应的修改。6月18日 设计报告撰写与修改、提交。

十二、评分标准

A—优秀

系统切合实际,具有一定的使用价值。

程序设计意图表达清晰,富有原创性,具有独特性。界面友好具有吸引力。

知识运用准确无误,方法简单有效。各部分衔接流畅自然。设计说明书完整、规范

八、课程设计目的

设计说明书逻辑性强,条理清晰 课程设计期间无旷课及病事假 B—良好

系统切合实际,具有一定的使用价值。程序设计意图表达清晰。界面友好具有一定吸引力。

知识运用无误,方法简单有效。各部分衔接好。设计说明书完整,较规范 设计说明书逻辑性强,条理清晰 课程设计期间无旷课及病事假 C—中等

系统切合实际,具有一定的使用价值。程序设计意图表达较为清晰。界面友好具有一定吸引力。

知识运用无大错误,方法简单有效。注意各部分衔接。设计说明书条理清晰

课程设计期间无旷课及病事假 D—及格

系统一般切合实际,具有一定的使用价值。程序设计意图表达较为清晰。界面友好具有一定吸引力。知识运用无特大错误。

课程设计期间无旷课,病事假1——2次。E—不及格

程序设计意图表达难以看懂。界面设计差。知识运出现严重错误,无设计说明书

课程设计期间无旷课,病事假3次及以上。

十二、课程设计主要参考资料

1、任正云,C语言程序设计(第二版),水利水电出版社

2、谭浩强,C语言程序设计(第4版),清华大学出版社

2.c语言程序设计课程教学大纲201 篇二

1 激发学生的学习兴趣

要想学生学好C语言,提高学生的学习兴趣,首先必须让学生对课程有个全局的认识。学生在接触一门新课程前,最关心的问题就是这门课程是学什么、学完之后可以做什么[1]。因此,在教学之初,教师应首先使学生明确学习这门课程的目的、要求以及目标,使学生初步了解该课程在本专业中处于什么位置,为什么要学习该课程,学好该课程对于个人的专业发展有什么作用,教师可以结合程序设计在本专业中应用的实例,使学生明白学习该课程的重要性和必要性,从而激发学习兴趣。另外,由于C语言的概念比较抽象,在每一章初期概念讲解阶段,可以多举一些与生活密切相关的例子,为概念的引入做准备,以激发学生的学习兴趣。例如,在介绍数组这个概念时,由于数组是一种新的数据类型,为加深学生的理解,可以提出一个问题让同学们思考:一个班学生的学习成绩应该如何存储呢?并提示学生这些数据有何特点,从而引出在C语言中如何存储,从而引出数组这个概念。这种方法能够发展学生的探索能力,避免了直接的理论说教,不仅能激发学生的学习兴趣,还能加深学生对新知识点的理解。此外,在教学过程中,布置一些有趣味性的编程题目,积极鼓励有能力的同学参加软件设计大赛,使学生通过独立或团体完成一个软件设计,增强他们的学习自信,调动学习热情,提高学习兴趣。

2 注重知识的归纳总结

和自然语言一样,许多字词可能是相近的、相反的或者是相同的,字词间存在着内在的联系[2]。在C语言中,涉及到此类的知识点时,可以采用归纳总结的方法进行教学。例如,循环结构中的while语句,dowhile语句和for语句。在学生充分掌握三种语句的基础上,教师对这三种循环语句进行归纳总结,归纳三种语句的异同点,并针对同一程序详细介绍如何用这三种语句分别实现。便于学生对循环结构的灵活掌握。另外,C语言中学到的知识点都是零星、片面的,有些甚至是容易混淆的,比如说运算符的优先级和结合性,教师在课堂中对此类知识点进行归纳总结,方便学生的比较与记忆。并且在新的一章开始学习之前,对上一章的内容进行重点、难点以及小结的归纳总结,便于学生温故而知新,避免学生边学边忘,前后知识不衔接的问题。

3 注重算法思维的培养

算法是程序设计的灵魂,在程序设计中要设计一个好的程序首先要对程序的算法有较详细的了解,其次才是采用编程语言对算法的实现。但很多学生学完C语言课程后不会编程,甚至不知道从何下手。造成这一现象的主要原因是由于程序设计的思想与学生传统的思维方式不一致,学生缺乏对算法的抽象思维能力,因此不会分析问题,无法写出算法,这就需要教师在介绍程序范例时注重学生算法思维能力的培养。教师首先提出问题,可以选择一些与实际生活贴近的小例子,如鸡兔同笼问题,引发学生进行思考,然后详细分析问题,启发学生用现有的思维方式去思考如何解决,得到解决问题方法后再启发学生将其转化为算法,并可以改变现有条件,使学生在对新问题的思考过程中,培养学生对算法举一反三的能力,最后教师对算法进行总结归纳,加深学生对这类问题的理解。将具体问题和学生的现有知识联系起来,有利于克服学生的畏难情绪,也有利于使学生快速掌握算法。

4 认真上好实验课

《C语言程序设计》是一门实践性很强的课程,“边学边练”是掌握这门课程的最好方法。因此,我们根据理论教学进度安排了实验课,并制定了专门的实验指导书,实验指导书明确了上机实验目的和要求,制定了实验内容和详细的操作步骤,并为程度较高的学生设置了选做题目。在实验过程中,注重以学生为主体,教师为主导,安排的实验内容循序渐进,采用模仿-改正-编程的实践训练思路来培养学生[3],使学生在运行程序和调试程序中锻炼分析问题和解决问题的能力,对于实验过程中学生提出的疑难问题,教师首先加以引导或者提示,启发他们独立思考解决问题,经过自己思考解决问题往往印象比较深,也能激发学生的学习热情,对于实验中存在问题比较多的题目,教师及时进行总结,并在课堂中统一进行指导,不仅节约时间,满足同学们的需要,而且对知识的掌握起到巩固加强的目的。

5 提高教师素质

由于《C语言程序设计》课程教学任务较重,所以计算机专业老师难以承担所有的课程教学任务,造成许多任课老师都是各个院系的非专业老师,缺乏系统的程序设计思想。针对这一情况,学校每学年都多次组织计算机学院多年从事课程教学并且经验丰富的专业老师对任课教师进行培训,针对课程内容进行串讲,在串讲过程中,任课老师可以对在教学过程中的疑难问题以及教材中出现的问题进行讨论。促进教师之间的教学交流,并创建了QQ群以及网络平台,便于老师们之间的信息共享以及交流,努力提高教师素质。另外,学校每学年组织《C语言程序设计》教学竞赛,教师教学的积极性显著提高,使教师不断扩充自己的知识水平和能力,不断学习新的教学方法和手段,从而提高课堂教学效果。

6 改革考核方式

为了扎实推进学校教学改革,切实提高《C语言程序设计》课程教学质量,对《C语言程序设计》课程考试环节进行了改革,在传统的考核方式理论成绩(70%)和平时成绩(30%)基础上,新增了上机考试环节,课程成绩由平时成绩(15%)、理论成绩(70%)、机试成绩(15%)等3部分组成。理论考试重点考核学生的C语言基础知识、编程思想和算法分析能力,上机考试重点考核学生的动手编程操作能力和程序调试能力。机试的考试系统由学校自主开发,学生考试时由系统自动从100套试题库中随机抽题进行考试,做到了严格的公平公正。实践后表明,这种考核方式能够更加客观地反映学生的知识掌握程度,同时能够促进学生主动学习,提高学生的动手操作能力。

实践证明,C语言的教学改进可以提高学生的学习兴趣,有利于学生对相关概念的理解以及编程能力的培养,使学生逐步掌握分析问题、解决问题的思维能力,同时也为非计算机类专业学生将程序设计思想灵活运用到自己的专业领域打下了基础。

参考文献

[1]胡丹.非计算机专业《C语言程序设计》教学探讨[J].电脑知识与技术,2011,7(34):8983-8985.

[2]邓静.C语言程序设计教学方法的探讨[J].教育教学论坛,2010(9):88.

3.c语言程序设计课程教学大纲201 篇三

《C语言程序设计》教学内容枯燥抽象,学生不容易理解,加上编者对教材的处理上过于注重实践技能的培养,采用“任务驱动”法组织教材内容,通过一些实际案例阐述各章节的重要知识点,又通过案例延伸对相关知识点进行了扩展和延伸,使得各知识点都融合在各案例当中。这样虽然达到了各教学知识点的有机统一,但从知识点的连贯性和层次性上来讲,不容易被学生理解掌握。同时,该教材用学生信息管理项目案例作为主线,对于毫无编程经验的职专生来说,起点过高。

C语言程序设计的学习,主要涉及到C语言基础知识框架的建立和算法思想的培养,算法思想即是数学建模的过程,而且c语言的编写都是用英语字符来完成的,这就需要学生在数学和英语两科的综合运用能力上达到一定的要求,而职业类学校的学生恰恰在这两个科目上弱项,这就进步增大了教学的难度。在教学实际过程中,可能遇到无论教师怎么解释,学生都不知所云的情况。

同时,在c语言的学习程当中,也往往要涉及很多计算机硬件原理的知识,对于处于高二的职专生来讲,对一些计算机基础知识还不能达到融会贯通的程度,计算机知识不系统,这就更加增大了实际教学的难度。

针对以上教材的情况以及学生的实际接受能力,经过教学实践的摸索探讨,我总结出了如下“C语言程序教学”的方法 。

1.在教材的处理上,结合学生实际,做到有针对性地制定教学目标,提高学生的接受能力。

我在实际教学过程中,还是以本教材为主,但在知识结构上做了一些细化。在给学生分析完教材中的案例后,对涉及到的相关知识点进一步完善和系统,使学生整体上掌握住案例的实质。例如;在讲“变量”的过程当中,变量值的储存是一个访问内存物理地址的过程。在这里,就需要对学生扩展一些关于内存物理地址方面的知识点,让学生对整个变量值的储存过程能够清楚明亮,从而提高学生对知识点的接受能力和牢固度。

在备课过程中,在意识地在每课时的教案中穿插一些计算机小知识,以激发学生学习的兴趣,提高学生学习程序涉及的积极性。

2.把教授的专业性知识与学生熟悉的相关常识相联系。

在C语言授课过程中,可能会遇到一些专业性的术语,学生从来没接触过,不知道为何物。这种情况下,授课老师可以列举一些与之有联系的比较实际的常识来做类比。比如我在给学生讲授C语言程序的基本构成单位为“函数”时,因为C语言中的“函数”和数学中“函数”不是一种概念,而是完成一个相应功能的程序模块,学生容易混淆。所以我把C语言中的“函数”比作是人体里的各种器官,其最大的作用就是完成相应的功能,我们人体是各个器官的组合体,而C语言程序就是各个“函数”的组合体,这样,学生对函数的概念就会明了很多。

3.采用“自主——合作——探究”式的学习方式。

教材的编者在出版说明中谈到,要强调学生学习的自主性,强调以学生的团队学习为主,让学生分成小组共同就某些问题讲行探讨,使学生最大限度的自主掌握知识。当然,这是一种理想化的教学方式,但在实际教学过程中也不是不能实现,最起码在一定程度上可以实现,所以任课教师可以试着去培养学生的这种能力。

一些教師在教学设计中虽能体现出学生“自主—— 合作 ——探究”的意识,但在具体操作中形式化严重,实效性不强。

兴趣是学生的最好老师,大部分学生还是比较喜欢计算机这个专业的,我们应该充分抓住学生的这一特点,发挥他们的主体作用,让他们自主探索,自主学习。职校二年级的学生已经有了较好的判断、推理和逻辑思维能力。我在教学过程中,经常采取提取问题-探索问题-解决问题的方法。老师可以自行出个例子,设置疑问,让学生自主学习,这样的教学效果要比在课堂上死讲要好的多。比如,在讲解条件和循环语句,多配以流程图来增强学生直观性和理解性。在讲数组时,采用图例分析,让学生对数组各元素分布情况,产生准确的认识和理解。现在的高中学生,很自我,独立意识和接触新鲜事物的能力非常强,让学生自行分组设计一些小课题,即提高了学生的自主能力,也让同学之间也不由自主的互相帮助起来。最主要的是让学生自己发现问题并解决问题。这时候老师就要做好引路人,在学生自主学习的时候,给予适当帮助。

4.精讲多练,加强实践。在学生理解项目思想,确定项目的算法后,有针对性地对项目中涉及的知识点进行讲解,对于那些学生自己能完成的内容,少讲,只做提示,甚至不讲。课堂上留足够的时间,让学生多进行实践操作,同时加强巡查辅导,及时发现和纠正学生的错误。

总之,在难度较大的课程教学过程中,不仅要备好课,还需要用创新精神探究各种教学方法,培养学生的实践能力。作为年轻老师,我们应该一丝不苟地去面对学生,面对教材,面对自己这神圣的职业。

4.《C语言程序设计》课程教学设计 篇四

理学院电子科学系计算机基础教研室 赵永梅

《C语言程序设计》是大学计算机基础教学系列中的核心课程之一,是计算机及信息类专业本科生必修的一门专业基础课。它讲述了C语言的语法、数据类型、结构化程序设计方法等方面的内容,从而形成一个比较完整的、系统的计算机及信息类专业计算机程序设计基础教学内容,是学员从技术的角度学习计算机的主要基础课,具有不可替代的基础性、先导性和全局性作用。

一、课程教学对象分析

本课程的教学对象是培训部计算机类专业一、二年级本科层次学员。所有教学对象都应该已经学习过《大学计算机基础》,但由于学员的计算机基础的较大差异,针对教学对象的实际情况,应当根据教育部高等学校计算机科学与技术教学指导委员会《关于进一步加强高等学校计算机基础教学的意见》暨计算机基础课程教学基本要求,给以适当的分类、分层次教学,即一般要求和较高要求,使学员掌握C语言的简单程序设计的基本技术和方法。

二、课程基本理念

本课程以培养复合型的专业技术人才为目标,全面贯彻素质教育和创新教育思想,着力提高人才培养质量。通过本课程的学习应使学员掌握正确的程序设计方法与思想。具有初步的利用计算机分析问题、解决问题的意识与能力,为学员将来到社会从事专业应用软件的开发打下重要基础。

三、课程设计思路

以本课程的基本理念为指导,对课程目标分别从知识与技能、过程与方法、情感态度与价值观等方面进行了具体明确的阐述。课程内容与教学要求主要阐述学员学习本课程必须掌握的内容要点及达到的基本要求,并注明了重点和难点。在实施建议部分,分别对课程教学实施、课程考核评价、教材选编使用、课程资源开发与利用以及教学保障等提出了明确建议。本课程是一门实践性很强的课程,应改变传统的注重语法规则的应试型教学模式,合理安排教学实践环节,加强程序设计技能的教学,以培养学员的专业技能,突出学员学习的主体地位。可通过与实际应用结合紧密的例题,增设小型工程应用项目的研究或运用案例式教学,提高学员编程的技巧。

四、课程教学目标

以《计算机程序设计》的课程标准为参考,根据教育部新的精神和要求,通过课堂教学与实践教学,让学员了解《C语言程序设计》这门课程的性质、地位和在工程应用中的价值;熟练掌握C语言的语法,掌握程序设计的基本思想和方法,具备良好的程序设计风格和程序的调试技能。能够利用软件工程的思想,运用数据结构基本知识和算法,解决实际生活中或者专业课中涉及到的实际问题,从而培养学员分析问题、解决问题的能力。

五、课程教学内容

(一)教学内容

根据《C语言程序设计》课程标准,参照相关专业人才培养方案以及后续课程的开设情况,讲授8个教学单元的教学内容。

第一单元:C语言概述

教学内容:C语言的特点、C语言源程序简介、C语言源程序的基本结构、C程序的编辑、编译、链接和运行

学时分配:讲课2学时,实习2学时

目的和要求:了解C语言及其特点、掌握C语言源程序基本结构、掌握C语言源程序集成开发环境

重 点:C语言源程序的基本结构。难 点:C语言源程序集成开发环境。第二单元:基本数据类型及其运算 教学内容:C语言的基本数据类型及其分类、变量与常量、各种运算符及其表达式

学时分配:讲课4学时,实习2学时

目的和要求:了解C语言的数据类型、掌握常量与变量的概念和使用方法、掌握C语言中的整型数据、浮点型数据和字符型数据的表示方法、掌握各种运算符和表达式的使用方法、掌握各类数值型数据之间混合运算的方法

重 点:基本数据类型及其分类 难 点:各种运算符和表达式的使用 第三单元: 结构化程序设计

教学内容:算法的概念及特性、算法的描述、结构化程序设计方法、C的语句、赋值语句、数据的输入与输出、顺序结构程序设计、关系运算、逻辑运算和条件运算、if语句、switch语句、while、do„while、for、break、continue语句、循环结构程序设计

学时分配:讲课22学时,实习6学时

目的和要求:理解算法的概念和特性、掌握用N-S图描述算法、初步了解结构化程序设计的思想、掌握用N-S图描述三种基本结构、掌握C语句的种类和特点、掌握数据输入、输出的方法、掌握顺序结构程序设计方法、掌握关系运算、逻辑运算和条件运算、掌握if语句和switch语句的执行过程、掌握选择结构程序设计方法、掌握三种循环语句的执行过程和区别、掌握break和continue语句的用法、掌握循环结构程序设计方法。

重 点:算法的概念及特性、C的语句、逻辑运算,if语句和switch语句构成选择结构、三种循环语句

难 点:掌握用N-S图描述算法、数据的输入与输出、switch语句的执行过程、循环结构程序设计

第四单元:函 数

教学内容:函数的定义与声明、函数的调用与返回、数组作为函数的参数、变量的存储类别、内部函数和外部函数

学时分配:讲课4学时、实习2学时

目的和要求:理解函数的基本概念、掌握函数的定义、声明、调用和返回、掌握数组作为函数的参数的特性、掌握变量的作用域及存储方式、了解内部函数和外部函数的使用方法及区别

重 点: 函数的定义和调用,数组作函数的参数 难 点: 函数的递归调用和嵌套调用 第五单元:数 组

教学内容:数组的概念、一维数组的定义、引用和初始化、二维数组的定义、引用和初始化、字符数组的定义、引用和初始化、字符串处理函数

学时分配:讲课6学时、实习2学时

目的和要求:理解数组的基本概念、掌握数组的定义、初始化和数组元素的引用方法、掌握字符数组和字符串处理函数的使用、掌握与数组有关的常用算法(冒泡排序和选择排序)

重 点:数组的定义、初始化和数组元素的引用 难 点:二维数组和字符数组的应用 第六单元:结构体和共用体

教学内容:结构体类型及其使用方法、指向结构体类型数据的指针、用指针处理链表、共用体类型及其使用方法、枚举类型及其使用方法、用typedef定义新类型

学时分配:讲课4学时、实习2学时

目的和要求:理解结构体、共用体类型和枚举类型的概念、掌握结构体、共用体和枚举类型数据的使用、了解用指针处理链表的方法和意义、掌握typedef命令的使用方法

重 点:结构体、共用体类型和枚举类型数据的使用方法 难 点:指针处理链表的方法 第七单元:指 针 教学内容:指针的概念、指针与变量、指针与数组、指针与字符串、指针与函数

学时分配:讲课6学时、实习2学时

目的和要求:理解指针的概念、掌握指针变量的定义、引用方法及运算、掌握通过指针访问数组的方法、掌握通过指针处理字符串的方法、掌握使用指针作为函数的参数、掌握函数指针、掌握指针数组和指向指针的指针

重 点:指针的概念、指针作函数的参数、数组的指针和字符串的指针

难 点:函数的指针、指针数组和指针的指针 第八单元:文 件

教学内容:文件类型指针、文件的打开与关闭、文件的读写 学时分配:讲课2学时,实习2学时

目的和要求:掌握文件概念及文件的打开与关闭、掌握文件的顺序和随机读写、了解文件的出错检测

重 点:文件的打开、关闭和读写函数的使用 难 点:文件类型指针

(二)教学实践

本课程是一门实践性很强的课程,上机实习是教学过程中的一个重要环节,目的是使学员熟练掌握C程序编辑、编译、链接和运行的基本步骤,提高学员在TURBOC环境下,运用C语言对具体问题进行程序设计的能力。按照课程标准,本课程共安排20 学时的上机实习。

为了更好地开展教学实践,给每位学员统一发放了与主讲教材配套的上机指导书《C程序设计上机实践指导书》,以辅助理论教学,提高学员的程序设计的能力。

实践教学内容与课时分配如下: 实验1: TURBOC 2.0环境下的基本操作 课时分配:2学时 实验目的:

(1)掌握TURBOC 2.0的基本操作;

(2)掌握TURBOC 2.0环境下编辑、编译、链接和运行程序的基本方法;

(3)初步了解C语言源程序的基本结构。实验2 :基本数据类型及其运算 课时分配:2学时 实验目的:

(1)掌握C语言的基本数据类型,学会变量的定义和赋值;(2)熟练掌握C语言有关运算符、表达式的使用方法;

(3)进一步熟悉C语言程序的编辑、编译、链接和运行的基本步骤。实验3: 顺序结构程序设计 课时分配:2学时 实验目的:

(1)熟练掌握各种基本类型数据的输入、输出方法;(2)熟练掌握赋值语句的使用方法;

(3)熟练掌握格式输入、输出函数的使用方法。实验4 :选择结构程序设计 课时分配:2学时 实验目的:

(1)掌握关系表达式、条件表达式以及逻辑表达式;(2)熟练运用if语句的不同形式编写程序;(3)掌握switch语句的使用方法。实验5: 循环结构程序设计 课时分配:2学时 实验目的:

(1)熟练掌握while,do„while,for语句的使用;(2)掌握在程序设计中用循环方法实现的一些常用算法;(3)进一步熟悉调试程序的方法。实验6: 函数 课时分配:2学时 实验目的:

(1)掌握实参和形参在函数间进行“值传递”的对应关系和传递方法;

(2)掌握函数的嵌套调用和递归调用;(3)理解变量的存储类别和作用域。实验7: 数组 课时分配:2学时 实验目的:

(1)掌握数值型数组的初始化和输入、输出的方法;(2)掌握字符数组的初始化和字符串的输入、输出方法;(3)掌握数组下标的表示方法。实验8: 结构体与共用体 课时分配:2学时 实验目的:

(1)掌握结构体类型和结构体变量的定义和使用方法;(2)学会构造合理的数据结构解决实际问题的方法;(3)理解动态内存分配的概念;(4)掌握简单链表的定义和操作;(5)掌握共用体数据的定义和使用方法;(6)掌握枚举类型数据的定义和使用方法。实验9: 指针 课时分配:2学时 实验目的:

(1)理解指针和地址的概念;掌握指针变量的定义和使用方法;(2)掌握用指针处理数组的方法;(3)掌握字符串指针的使用方法;(4)掌握函数的指针的使用方法;(5)掌握指针数组和指针的指针的使用方法;(6)掌握指针变量的运算。实验10: 文件 课时分配:2学时 实验目的:

(1)掌握文件的打开和关闭方法以及文件的读写方法;(2)了解文件的定位以及出错的检测。

六、教学方法手段

(一)教学方法

通过对基础知识的讲解,突出基本概念、基本思想的讲授和基本技能的训练,结合案例精讲多练,注重讲解与实际应用结合紧密的例题,加强实践练习。在教学过程中,贯穿“讲授式”、“启发式”、“案例式”、和“研讨式” 等教学方法。

注意教学方法的灵活性,教学过程中,借助现有的多媒体设备,灵活运用教学方法,再现问题情景,增加互动氛围,培养学员分析问题、解决问题的能力和探究意识。

作业量每次3-5题,难度应当适中,教员应做到定时批阅,及时讲评。

注重实践环节。实习课(20学时),在教员指导下,单人单机自主进行。实习内容根据程序设计基本技能中的要求合理设计,依次实施。

适当增加一些小型项目或以大作业的形式,使学员进一步加强学习的自主性,培养解决综合问题的能力。

(二)备课与课堂设计 1.备课

按照人才培养方案、课程标准和教学基本要求,在开课前需要深刻理解本课程各单元的主要教学内容,以课程教学组为基本单位组织集体备课,统一教学要求、统一授课标准、统一课程进度。认真撰写教案、制作课件并对针对重点如何突出、难点如何突破进行讨论与试教练讲。

2.课堂设计

将课程的全部教学内容分解落实到有限的25次课堂面授(50学时)和10次自主上机实习(20机时)之中去。在开课之前适当时候组织学员进行摸底考试,并且在开课后的两周之内及时组织召开教学联系会,全面了解学员对C语言的掌握情况和掌握程序设计方法的情况,以便因材施教,有的放矢。

七、教学评价

5.c语言程序设计课程教学大纲201 篇五

《C语言程序设计》课程(本科)教学大纲

《The C Language Programming Design》

一、课程编号:040105

二、课程类型:(必修课、限选课)

课程学时:48学时(其中,理论教学32学时/2学分,实践教学16学时/1学分)

适用专业:非计算机科学与技术专业 先修课程:计算机文化基础

三、课程性质与任务

《C语言程序设计》是以上专业的一门很重要基础课,它是现今应用最为广泛的几种语言之一。在实际编程中,它有其他语言无法比拟的优势,特别是与计算机硬件接口方面。在学好语法的同时,更主要是培养优良的编程风格,掌握基本的编程方法、基本的算法、可以熟练地用 C 做出课后的习题以及基本的程序设计。

四、教学主要内容及学时分配

(一)C语言概述(2学时)

1.C语言的特点、发展历史、简单C程序

2.算法与数据结构、三种基本结构、算法的不同表示方法、软件工程 3.函数是功能模块。概述C语言语句分类。C语言的输入输出是靠专门功能模块(格式输入输出函数)实现

4.C程序的上机步骤 5.C的关键字、标识符

实验1 C程序的运行环境(2学时)

(二)数据类型、运算符和表达式(5学时)1.C的几种基本数据类型

2.标识符的概念,常量、变量的概念及其分类

3.整型、长整型、短整型、无符号整型数据的定义与存储特点 4.单精度、双精度浮点数的定义与存储特点 5.字符型数据的的定义与存储特点,整型数据与字符型数据间的关系。ASCII表

6.指向基本数据类型变量的指针变量

7.不同类型数据间的混合运算规则。自动转换、强制转换

8.不同运算符(算术、关系、逻辑运算符等)的使用特点、清楚每种运算符的优先级与结合性。运算符优先级表 9.表达式的含义与使用要点 10.下列运算符的概念与使用:算术运算符、自增自减运算符、赋值运算符、逗号运算符、关系运算符、条件运算符、逻辑运算符、取地址运算符、指针运算符、类型长度运算符、位运算符

11.混合表达式

实验2 C语言的各种运算符(2学时)

(三)三种基本结构程序设计(5学时)

1.格式输入/输出函数的使用方法(掌握c,s,d,f等基本格式)2.几个字符数据的输入/输出函数介绍 3.IF语句

4. SWITCH语句

5. WHILE语句与DO WHILE语句的结构与使用方法 6.FOR语句的结构,熟练掌握其使用方法 7.循环嵌套形式

8.熟悉BREAK语句和CONTINUE语句,了解GOTO语句

9.编写相应的程序(交换、冒泡法、迭代、矩形法、梯形法、素数等)10.三种算法结构对应三种程序结构

实验

3、实验4 三种结构编程(两次实验各2学时)

(四)数组与指针(6学时)1.一维数组

2.通过指针引用一维数组元素

3.二维数组的定义,数组元素的引用 4.通过指针引用二维数组元素

5.字符数组与字符串的概念与定义方法,熟悉常用的字符串处理函数 6.应用数组和指针进行应用程序的设计的一般方法与典型算法 7.指向字符串的指针的定义和应用 8.指针的指针、指针数组

实验5 数组与指针编程(2学时)

(五)函数(5学时)1.函数的定义、声明、调用、功能。形参、实参和返回值的概念 2.参数、返回值的传递方法:直接、数组、指针 3.函数嵌套调用与函数递归调用的一般过程与方法

4、变量名、数组名、指针等作为函数的参数 5.指向函数的指针的定义和用法

6.返回指针值的函数的定义和应用,它与指向函数的指针变量的区别 7.局部变量与全局变量,动态变量与静态变量及其存储类别 8.了解main函数带参数的使用方法 9.了解内部函数与外部函数的概念 10.编写相应的程序(n!、∑n、hannoi塔等)

实验6 编写模块化程序(2学时)

(六)预处理命令(1学时)

1.预编译的概念,掌握宏定义的方法。符号常量 2.“文件包含”,了解多个C文件的运行方法 3.条件编译

(七)结构体与共用体(5学时)

1.结构体的含义、定义、引用方法、初始化

2.共同体的含义、定义、引用方法、初始化。与结构体的区别 3.结构体数组的定义、初始化、引用

4.结构体、共同体指针,指向结构体类型数据的指针的概念及使用 5.位段的概念与使用

6.链表结点的结构形式,链表的基本操作,以及相关的内存管理函数 7.枚举类型的定义,及枚举类型的输入输出 8.用typedef定义类型

(八)文件(2学时)1.文件的概念与分类

2.文件类型指针的定义和含义 3.文件操作的相关标准函数

4.文件的定位操作及相关的标准函数

实验7 编写文件类程序(2学时)

(九)综合全书知识点(1学时)1.贯穿整个C语言的全部知识点 2.扩展对C程序的综合编程技巧

实验8 综合编程训练(2学时)

说明:1.详细的实验细节由实验室主持制定,并由理论老师参与的、与实验老师共同协商制定。

2.本大纲中的理论教学与实验教学为一个整体,不可分割。实验教学的进度与顺序安排完全按照这个大纲进行。

五、教学基本要求

(一)了解C语言的特点,掌握简单的C程序。了解软件工程的概念、了解数据结构及其算法表示方法。

实验1:熟悉TC环境,在TC环境下输入简单C程序并运行程序查看结果,了解C程序的特点

(二)掌握C的几种基本数据类型的定义与存储特点,了解指针的概念,掌握指针变量,及掌握不同运算符(算术、关系、逻辑运算符、位运算符、条件运算符等)的使用特点、清楚每种运算符的优先级与结合性。

实验2:复习TC环境,掌握C语言的各种运算符的使用,表达式的使用等

(三)C程序的三种基本结构:掌握C程序的顺序结构、选择结构、循环结构。熟练掌握格式输入/输出函数的使用方法。

(四)熟练掌握IF语句和SWITCH语句,掌握WHILE语句与DO WHILE语句及FOR 语句的结构与使用方法并能编写相应的程序。

实验

3、实验4:熟练掌握IF语句、SWITCH语句、WHILE语句、DO WHILE语句及FOR 语句,运用三种结构编程,熟悉常用的算法。

(五)掌握一维数组及二维数组的定义,数组元素的引用方法。掌握指向数组的指针变量、指向字符串的指针、指针数组指针的指针,掌握应用数组及相应指针进行应用程序的设计的一般方法与典型算法。

实验5:运用数组编程,能读懂用指向数组的指针所编的程序,掌握相应的编程方法和典型算法。

(六)函数定义的一般形式和函数调用的几种形式。掌握指向函数的指针、返回指针值的函数,掌握函数的递归调用,应用这些知识点进行模块化程序设计。

实验6:熟练掌握函数的定义、函数的调用及函数的声明,编写模块化程序,正确定义函数和调用函数。

(七)了解预编译的概念,掌握宏定义、“文件包含”和条件编译的方法。

(八)理解结构体和共同体的含义,掌握结构体类型变量和共同体类型变量的定义方法及结构体数组和枚举类型。

(九)了解文件的概念,掌握文件操作的相关标准函数。

实验7:熟练掌握文件操作的相关标准函数,编写与文件相关的程序。

实验8:综合本书所学知识,编写一个基于文件处理数据库综合程序。

六、课程内容的重点和深广度要求 重点掌握C语言运算符、表达式、结构化编程方法、数组与指针、函数等概念及其应用。结构体、共用体、文件、链表等内容要求掌握其概念和简单的应用,但这部分内容要求有一定的广度,并且了解其在实际应用中的作用和重要性。

七、对学生课外作业的要求

理论课作业要求学生将教材每章节后的习题全部完成,教师可根据实际情况批改部分作业。实验课作业由教师根据具体学习内容布置相关习题并进行辅导。

八、本课程与后续课程的关系

本科成为后续课程如C++、Visual C++等打下基础。

九、对学生能力培养的要求

要求培养学生的自学能力、编程能力。掌握基本的算法、编程思想和方法等。

十、教材及主要参考书

1.龙昭华等编著.C语言程序设计.重庆大学出版社,2004 2.苏小红等编著.C语言程序设计.电子工业出版社,2002 3.潭浩强编著.C语言程序设计(第一版).清华大学出版社,1992 4.马鸣远编著.程序设计与C语言.西安电子科技大学出版社,2003

十一、教学方法和教学媒体的使用

本课程的教学重点应放在提高学生对面向过程编程思想的掌握,在教学过程中引导、精讲实例、启发学生的学习兴趣,培养学生阅读程序代码、编写程序代码的能力,为进一步学习C++、Visual C++等打下基础。充分发挥多媒体教学手段,通过实例把三种结构、数组、指针、结构体等形象化,达到生动的教学效果。总之,采用启发式教学,结合学生的实际情况和实际水平,使得教与学都生动有趣而不枯燥,使得学生能真正提高运用C语言的能力。对不同的专业,具体内容的课时分配可由上课教师具体掌握。

十二、学习方法与建议

6.c语言程序设计课程教学大纲201 篇六

1 教学内容调整

由于C语言涉及的概念比较复杂, 规则繁多, 使用灵活, 容易出错, 不少初学者感到困难, 迫切希望能找到一本容易入门、容易学习的C语言教材。对目前国内各高校使用教材分析发现, C语言教材章节安排一般如下:C语言概述, 算法, 数据类型、运算符与表达式、顺序程序设计、选择程序设计、循环控制、数组、函数、预处理命令、指针、结构体与共用体、位运算、文件等[1]。这样的安排很符合学习逻辑, 但很多教材数据类型、运算符与表达式论述过多, 弄的很复杂, 在没有计算机组成原理的知识背景下对数据类型、码制等问题的学习, 几乎不可能做到真正理解;如果在这些内容花过多篇幅描述, 或花过多时间讲解, 会把学生刚从第一章中学习了几个C程序例子激发学C语言的激情慢慢抹灭, 甚至有的学生因为理解不了, 对学C语言产生害怕的心理, 不利以学生的学习。

针对上述问题, 对教学内容调整如下。第一章概述精细讲解几个例子 (输出、2个数加法、2个数最大数) , 第2章只精细讲解一个例子 (5!阶乘) , 其他的例子简单讲解, 第3章讲解数据类型时, 只要求学生掌握基本数据类型定义, 对基本类型存储、范围、类型转换可以后面章节例题中讲解。顺序结构可以跟基本数据类型合并起来讲解, 使学生上机、实验都有了练习的内容, 持续了学生学习C语言的热情。一般院校学生的学习主动性不是太好, 保持学生的学习兴趣很重要。

2 实验内容思考

实验是提高学生实践能力的主要途径之一。在学习C语言过程中, 经常会听到学生说:“上课我能听懂老师所讲的, 下课让我自己编写程序, 我就不知道怎么入手了。”这样的现象在刚开始学C语言的学生中普遍存在;这种现象会打击学生的积极性, 也不利教师教学。在刚开始教学的章节, 教师可以固化下简单程序编程的步骤。如一个程序体有4部分组成, 变量声明 (变量定义) 部分、输入部分、数据加工、输出部分;通过输出思考程序输入, 通过输入、输出来确定程序的变量, 再通过原始数据推导数据加工。当学生把这几个问题都弄清楚了, 也就能顺利写出程序。经过前面章节简单程序的编写, 到函数章节时, 再提高学生对复杂程序编写能力。

实践教学内容的设计上, 以巩固和综合运用课程上讲解的主要知识点为主线, 内容应该具有趣味性和实用性, 以从简单到复杂的任务驱动方式, 要求学生从一个代码较短的程序开始逐渐完成一个代码较长的实验程序的设计。要求题目可以如下:身高预测、模拟计算器、猜数游戏、小学生算术测试、餐饮服务质量打分、学生成绩管理、模拟数字式时钟等[2]。

3 课后习题思考

随着课程教学的改革, C语言课时也大大被缩减;但是编程能力提高唯一的方法就是多读程序多写程。一般院校学生学习的自觉性普通不高, 这就要求教师督促和施压;因此, 课后习题布置和课后指导学习是很有必要的。课后习题的布置, 可以不局限于课本;比如国家计算机等级考试二级C语言的历年真题、国家软件资格水平考试程序员级别的历年真题等都是很好的题材;程序员考试的题目更注重学生的编程能力和程序的实用性。面授时间短、学生多等原因是教师不能回答每个学生的问题, 所以教师也可以建立教学网站, 方便随时跟学生交流、答疑, 也方便教师把课程资源共享。

4 考核方式改革

编程能力是这门课程考查的重点。什么样的考查方式能更科学地反映学生的编程能力?一直是广大教育者思考的问题。传统的考核方式主要是以笔试, 理论考试为主, 这经常会出现“高分低能”的现象。

C语言的考试可以不进行理论笔试;期末考试以实践环节的考核加答辩的方式。做到不仅考理论, 同时还要考实际编程能力。平时成绩、实践考核成绩、期末考试成绩按20%:20%:60%的比例评定综合成绩。

实践考查方式如下。学生可以根据自己的能力选择相应题目, 进行协作完成;考查题目:1) 贪吃蛇游戏;2) 蓝黄棋游戏;3) 五子棋游戏;4) 推箱子游戏;5) 骑士游历问题;6) 八皇后问题;7) C语言课程设计综合应用实例——学生成绩管理;不懂的学生可以通过跟其他同学协助讨论、查找资料实现程序;对学生考查, 采用答辩的方式;从4个方面进行考查:1) 程序的运行情况。A.好;B.中;C.差。2) 对程序的结构解释。A.好;B.中;C.差。3) 对某些局部模块的详细解释。A.好;B.中;C.差。4) 对某些语句的现场编写情况。A好;B.中;C.差。这些题目难度多层次, 要经过看书学习, 查资料跟同学讨论协助完成;通过答辩, 评定学生对理论知识、程序的掌握程度以及编程能力并给学生建议。通过这种方式让编程能力好的学生带动其他学生, 让其他学生体会学习的乐趣, 编程的乐趣;让同学间互相协助。经过实验这种方法可行有效, 但需要教师答辩, 花费教师过多时间。

5 结束语

《C语言程序设计》的教学改革应围绕“以课程知识点为核心, 以提高学生程序设计能力为主线, 培养解决实际问题的应用型人才为目标”的思想, 抓好课程理论、实验、考核的每一个环节, 重点突出理论与实践相结合[3], 根据学生实际情况, 因材施教;培养出应用型程序设计人才以及提高教学质量。社会需求、生源都在不断变化, 教学改革是个永久性的课题, 要求教育工作者与时俱进不断改革创新, 寻求适合的教育方法。

参考文献

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

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

7.c语言程序设计课程教学大纲201 篇七

关键词 中职;C语言;教学方法

中图分类号:G712 文献标识码:B

文章编号:1671-489X(2015)21-0106-02

1 前言

C语言程序设计是江苏中职对口单招计算机专业的必考科目之一,具有较强的理论性和实践性。该课程涉及的概念、规则繁多,语句书写灵活,语法限制不太严格,还用到英文和数学相关知识,中职生学习较为困难,也给教师的教学提出新的要求。

2 中职对口单招C语言程序考试情况分析

江苏对口单招新大纲已经使用五年了,新大纲中C语言占有很大比重,共140分,其中理论60分,技能80分。理论部分较为基础,分数上拉不开差距;技能部分难度较大,容易拉开差距,是重点也是难点。前几年我校学生在该门课程成绩上不理想,最高在260分左右,而苏南学校部分学生接近满分,平均分在260分左右。究其原因主要是学生对C语言知识、技能掌握不牢,拿到题目无从下手,甚至一些同学放弃对该门课程的学习。

3 中职对口单招C语言教学现状分析

学生学习情况分析 中职学生是一个比较特殊的群体,他们文化基础较为薄弱,学习能力不强,缺乏学习主动性、积极性,大多没有良好的学习习惯,不善于思考问题、独立解决问题。刚开始学习C语言程序设计时还有些热情,但由于学生的英语和数学都很薄弱,经过一段时间的学习后就感觉枯燥,对上课没有了兴趣,乃至丧失了继续学习该课程的信心。

教师教学情况分析 大部分教师仍采用传统的教学方式进行C语言程序设计课程的教学,老师注重讲,学生被动的学,师生间互动少。教学的重点主要放在C语言的语法规则上,忽视了编程思想的培养,算法的编写。实验教学也只是把书上的程序输入验证一下,既不能调动学生的积极性,也无法培养学生的编程能力。教学内容与考试要求有一定的距离,高三复习时学生无法接受较复杂的问题,拿到题目无从下手,最终只有放弃。

4 中职对口单招C语言课程教学改革研究

多种教学方法的综合应用,提高课堂教学效果 C语言教学中采用多种教学方法,可以激发学生的学习兴趣,提高教学效果,培养学生的编程能力和创新意识。

1)问题引导教学法。问题引导法能够突出学生的主体作用,有效发挥学生的思维,培养学生的综合处理问题的能力。以“排序”为例,可以先讲解排序的原理,让学生思考排序的算法,接着写出算法流程图,最后用循环语句实现算法。这个过程结合课件和Flash动画,逐步引导,层层解决,效果较好。

2)案例教学法。案例是指那些在日常生活中能教好地反映教学内容的事例。经典趣味的案例比较有代表性,能够吸引学生的注意力,培养学生的学习兴趣,增强他们参与课堂的主动性。如“水仙花数”“猴子吃桃问题”“哥德巴赫猜想”等,引导学生对案例进行剖析,使学生能通过归纳掌握知识内容,从而达到教学目标。实践证明,案例教学,内容容量大,知识点的前后紧密联系,学生对知识印象深刻,能够灵活应用。

3)任务驱动法。任务驱动法教学,就是通过完成教师布置的一个任务或多个任务,建构真正自己的知识与技能,培养学生解决问题的能力。C语言教学过程中,可引导学生由易到难地完成一系列任务。如学习循环问题中素数时,可按以下任务进行教学:任务一,用键盘输入一个正整数,编程判断是否为素数;任务二,打印出100~999之间所有的素数;任务三,编程找出第100个素数。以上三个任务是由易到难,第一个任务学生可以自我解决,第二个任务需要在教师提示下完成,第三个任务需要教师讲解分析后,学生方能编出程序。通过教学,学生掌握了所学知识,培养了编程能力。

灵活应用现代教学手段,提高学生学习积极性

1)课件与板书相结合。使用课件教学有利于简化教学过程,吸引学生的注意力,提高学习兴趣。可以把烦琐的概念和语句格式及比较长的程序做成课件,直观地向学生展示,免去了板书的时间。但有时用板书,可以达到课件无法实现的效果,如在分析算法过程、程序编写及执行过程时,用板书可以给学生留下深刻的印象,使师生能够随时互动,效果良好。

2)应用Flash动画演示。C语言中的一些算法,用语言描述学生感觉述枯燥乏味,难以理解,容易遗忘。如果用Flash动画形象的展示出来,可以达到事半功倍的效果。例如在讲到交换两个变量的值、排序、求极值等算法时,可以把算法过程做成Flash动画,学生看完动画后,教师接着讲授算法结构及分析编写过程,最后学生编写出相关程序。应用Flash动画不仅能够使学生记忆深刻,而培养他们的逻辑思维能力。

3)网络教室的应用。网络教室不仅可以广播课件内容,可以广播教师示范操作过程,还可以实时解决上机过程中出现的各种情况。如学生通过网络教室将作业上传到教师机,通过检查作业老师可以学生掌握情况,及时做出评价。

4)网络平台的应用。网格技术不断发展,利用网格平台进行多媒体教学已成为一种发展趋势[1]。教师建立C语言教学网络平台,把课件、案例、练习传到平台上,供学生课余时间下载学习,也可以课后到机房调试程序。可以利用留言板或电子邮箱和学生进行交流,可以进行个别辅导,帮学生解决他们练习中遇到的问题,激发学生学习C语言的热情。

注重培养学生的学习兴趣,提高学生学习动力 “兴趣是最好的老师”,有了兴趣才有学习的动力。可按以下方法激发学生学习兴趣:把学生分成几个兴趣小组,每组6~7个人,选出一名小组长,负责小组和老师之间的联络。老师布置与学习内容相关的综合实例,由小组讨论合作完成,学生在学习理论的同时得到了综合能力的训练,增强学生的自信心。另外,加强学生思想教育,强调学习C语言程序设计课程的重要性。可找一些数学方面的问题,通过编写程序来实现求解,让学生体会到程序的用途,提高学习兴趣。如“鸡兔同笼”“百钱买百鸡”等,培养学生的学习C语言程序设计的兴趣。在上机过程中,教师还可以让学生完成基本任务后,做一些拓展练习,激发他们的学生动力,培养了他们的自信心。

注重实验环节教学,提高学生编程能力 对口单招考试中技能考试占80分,考核要求较高,特别是阅读程序能力、编写程序能力的要求。学生的编程能力是不断训练出来的,要上机实践训练。通过上机实践,不但可使生学生掌握所学知识、直观判断编写的程序是否正确,而且训练学生输入程序及调试程序的能力。上机课时,以学生操作为主,教师指导为辅,从而培养学生的编程能力。对于学生不太明白的地方和重点环节,教师加以引导,学生进行输入程序和反复的调试来解决。实验内容需要老师精心准备,难度适中。

实践证明,教学改革使学生提高了C语言学习兴趣,课堂听课质量明显提高,学生能积极地思考问题、分析问题,并提高了上机实习课效率,较好地掌握程序设计的方法,高考分数也有了很大提高,出现了280以上的高分。

参考文献

8.c语言课程设计总结 篇八

一周的计算机C语言课程设计很快就结束了,回想这一周,几分欣喜,几分紧张,欣喜的是学了C语言能得到应用,紧张的是怕自己不能更好的设计自己的程序,生怕自己设计的程序不能顺利的完成。但是在老师的帮忙下,在我们组员的共同的努力下,我们能很好而顺利的将程序设计并且运行出来,虽然有几处不足但在老师的改正下我们的程序也得到了完善。

透过这一周的C语言课程设计,我懂得了很多,它让我明白做事情需要认真与细心,需要耐心与恒心。就拿我们的程序来说把,起初做完运行后有很多错误,当时我们组每个人都十分焦虑,的确,看着长长的程序想要去一一把问题解决也并非是件简单的事,但如果你静下心来细心的去找就会把错误一个一个的找出来。还有一点是十分重要的,那就是有不懂的地方及时向老师提问,那样的话你就会对不懂的地方有个深刻的理解,以后再碰到此类问题自己也就能解决了。所以我们的程序是在老师的帮忙下,在我们组成员的耐心的查找与改正下完成的。我们的成功离不开老师的指导,离不开我们的共同努力。看着运行出来的程序我们笑了,真的,当时的情绪真的想不出用哪个词语去形容,也许笑容代表了一切。

短短的几天时间让我对C语言有了一个全新的概念,它不仅仅是一门课程,更是一门技术。也使我领会到实践的重要性,我期望在以后的学习生活中我会有更多的实践机会来提高我的思考潜力与动手潜力,培养我的细心、耐心与恒心。这是难忘的一次实训课程,它会在我的人生旅途中写上浓重的一笔。感谢老师的指导帮忙,感谢同组兄弟的支持,谢谢!未来的社会必将是科学技术全面,全面发展的社会,我们需要更就应懂得并掌握现代化的科学知识,C语言是一门全新的课程,也许当我们初次接触这门课程会感觉到新鲜,当你更加深入的学习它你会体会到它的乐趣与方便,而未来的社会也正需要全能型的人才,让我们共同努力吧,学会更多的知识技术,为了完美的未来而加油!

9.C语言程序设计教程课程设计 篇九

适用于三年制专科计算机应用专业 学分:1 周数:1

一、设计目的与要求

《高级语言程序设计课程设计》是《高级语言程序设计》课程的实践环节,其教学目的是通过一些中小规模程序的编程,使学生对c语言程序设计的基本规则与方法有比较全面的理解和认识,熟练掌握高级语言程序设计技术,为以后学习更高层次的程序设计和软件开发奠定坚实基础。

通过本课程设计,应达到下列基本要求: 能够结合c语言来理解程序设计的基本概念;

掌握用c语言解决问题的基本方法和步骤,能够熟练地使用c语言编写中小型应用程序; 熟练掌握c语言编程规则,掌握函数的应用方法和编写; 熟练掌握面向过程程序设计方法; 掌握结构化程序设计思想和方法; 培养和提高学生的程序调试能力;

培养学生查阅手册、图表和文献资料的能力; 培养学生撰写报告文档的能力。

二、课程设计题目

每个题目的限选人数根据班级总人数平均后确定,但要求同一题目的学生独立完成设计题目,以下10个题目任选其一。1。职工信息管理系统设计 1.1问题描述

试设计一职工信息管理系统,职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)1.2基本要求

1.系统以菜单方式工作(2.职工信息录入功能(3.职工信息浏览功能(4.查询和排序功能:(至少一种查询方式)--算法(((1)按工资查询((2)按学历查询等

5.职工信息删除、修改功能(任选项)(2.图书信息管理系统设计 1.1问题描述

试设计一图书信息管理系统,图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。1.2基本要求

1.系统以菜单方式工作(2..图书信息录入功能(3..图书信息浏览功能(4..查询和排序功能:(至少一种查询方式)--算法(((1)按书名查询((2)按作者名查询

5..图书信息的删除与修改(3。学生信息管理系统设计 3.1问题描述

试设计一学生信息管理系统,学生信息包括:学号、姓名、年龄、性别、出生年月、地址、电话、E-mail等。3.2基本要求

1..系统以菜单方式工作 2..学生信息录入功能 3..学生信息浏览功能 4..查询、排序功能(1)按学号查询(2)按姓名查询

5..学生信息的删除与修改 4。学生选修课程系统设计 4.1问题描述

试设计一选修课程系统,假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。4.2基本要求

1.系统以菜单方式工作(2.课程信息录入功能(3.课程信息浏览功能(4.查询功能:(至少一种查询方式)--算法((1)按学分查询((2)按课程性质查询(5.学生选修课程(可选项)(5。销售管理系统 5.1问题描述

某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:(1)销售员的代号,(2)产品的代号。(3)这种产品的当天的销售额。每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,5.2基本要求

编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。1.计算上个月每个人每种产品的销售额。

2.按销售额对销售员进行排序,输出排序结果(销售员代号)

3.统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)4.输出统计报表

销售统计报表能反映出:销售员代号 产品代号 销售之和 每种产品之和 总和 6.学生成绩管理 6.1问题描述 对学生成绩进行管理,学生信息如下: 现有学生成绩信息,内容如下 姓名学号语文数学英语

张明明

01

李成友

02

张辉灿

03

王露

04

陈东明

05

„.......… 6.2基本要求

实现学生信息管理,软件的入口界面应包括如下几个方面: 1.系统以菜单方式工作

2.学生信息数据能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息

3.查询时可实现按姓名查询、按学号查询

4.成绩统计:输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。

5.能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)6.学生可自动增加新功能模块(视情况可另外加分)7.学生成绩管理 7.1问题描述

学生成绩进行管理,学生信息包括:学号、姓名、班级、课程

1、课程

2、课程

3、课程

4、学期。

7.2基本要求

1.系统以菜单方式工作

2.能按学期、按班级完成对学生成绩的录入、修改

3.能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序 4.能查询学生成绩,不及格科目及学生名单

5.统计每门课100~85分、84~70、69~60分以上不及格的人数

6.从键盘上输入一个姓名或学号,能够查找是否是该班成员,若是,要求输出该生的全部信息

7.可以对任一学生的成绩、学号进行修改

8.可增添和删除任一学号学生的信息,增添和删除后仍能按学号排序 9.能按班级输出学生的成绩单 8.通讯录管理 8.1问题描述

设一个通信录由以下几项数据信息构成:

数据项类型

姓名字符串 地址字符串 邮政编码字符串 电话号码字符串 8.2基本要求 1.主要功能:

(1)能建立、查询、修改和增删学生通讯录(2)能够按多种方式进行查询 2.要求:界面友好,易于操作 9.图书管理系统 9.1问题描述

图书信息管理系统设计,图书信息包括:登录号、书名、作者名、存在状态、分类号、出版单位、出版时间、价格、借书人姓名、性别、学号等。信息描述: 9.2基本要求

1.系统以菜单方式工作 2.新进图书基本信息 3.图书信息浏览功能

4.图书基本信息的查询和排序功能:(至少一种查询方式)--算法 按书名查、按作者名查询

5.对撤消图书信息的删除删除与修改(可选项)(6. 为借书人办理注册

7.办理借书手续(非注册会员不能借书)8.办理还书手续

10.设计一个简单计算器 10.1问题描述

模拟windows操作系统中的计算器,能进行加减乘除等计算。10.2基本要求

1.显示计算器界面

2.当用户输入一个算式后,计算器显示计算结果,同时屏幕项部显示:continue? 如果用户此时按Y键,则继续输入下一个算式,否则,程序终止 3.可以多次响应用户的计算请求 11..图书借还管理系统 11.1问题描述

对借还图书进行管理,图书被借阅,应记录借阅信息,同时图书的存库数量相应减少。还书时,应将图书数量相应增加,同时删除图书借阅信息。图书基本信息应包括:图书名称、图书编号、单价、作者、存库数量。借书人信息应包括姓名、性别、学号等。11.2基本要求

1.新进图书基本信息的输入 2.图书基本信息的查询 3.对撤消图书信息的删除 4.为借书人办理注册

5.办理借书手续(非注册会员不能借书)6.办理还书手续

12.用户登录程序设计 12.1问题描述

做一个密码验证程序,密码验证只有三次机会。12.2基本要求 1.有登录界面,用户输入密码时以*代替输出,用户登录成功后可以修改密码。2.可以有多个用户登录。

3.初次登录的密码有管理员设置。13.车票管理程序设计 13.1问题描述

一车站每天有n个发车班次,每个班次都有一班次号(1、2、3„n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。如 班次发车时间起点站终点站行车时间额定载量已定票人数

8:00

郫县广汉

2

6:30

郫县成都

0.5

13.2基本要求

1.录入班次信息,可不定时地增加班次数据。

2.浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。

3.查询路线:可按班次号查询 ,可按终点站查询。4.售票和退票功能。

A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。

B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。5.至少采用文本菜单界面(如果能采用图形菜单界面更好)。

三、进度安排

第1天:分析所选题目,查阅相关资料,写出需求分析,确定系统功能,划分模块;设计算法、数据结构;

第2-3天:编制代码并调试; 第4天:检查学生程序;

第5天:提交源程序清单和课程设计报告,进行答辩。

四、设计方式

1.对于每个题目,应完成算法设计和简单的应用程序设计。

a)算法设计包括解题思路,模块划分和模块代码实现方法。附传统的流程图或N-S图。b)应用程序设计包括:编辑录入源程序;反复调试、排错、运行;借用软件工程的一些方法和技巧对程序进行测试。

2.编程量以满足基本要求即可,但必须调试通过,运行结果准确。3.设计完成后,需要写成一份课程设计报告(A4纸打印出来),体现课程设计所做工作。4.结果形式:提交调试无误的源程序代码,课程设计报告一份。

五、成绩评定标准

学生成绩以优、良、中、及格和不及格5个等级评定。1.学生编写的实际软件和运行结果,占总成绩40% 2.设计报告,占总成绩40% 3.教师提问,占总成绩10% 4.出勤,占总成绩10%

六、课程设计报告要求

按照软件工程及应用程序系统设计步骤详细叙述课程设计题目的完成过程。课程设计报告的格式要求: 封面

洛阳理工学院C语言课程设计报告 题目 院系 班级 姓名 指导老师 年月日

2.课程设计内容:

(1)问题描述:描述要求编程解决的问题。(本课题具有哪些功能,做了哪些工作、用了哪些方法技巧,实现结果如何)

(2)基本要求:给出程序要达到的具体的要求

(3)所设计的应用程序运行所需要的软件、硬件支持环境。(4)算法分析(设计思路),描述解决相应问题算法的设计思想。

(5)功能模块划分,每个模块对应的函数、每个函数功能及参数设计情况说明。(6)系统流程图

(7)实现步骤(要求有详细的文字表述):

如安装 VC;熟悉课题;查找资料;需求分析;设计框图;录入程序;

语法排错;逻辑排错;程序测试;程序运行;数据记录;写课题设计报告等。(8)源程序完整代码以及原始数据、测试数据、输入数据及其运行结果记录。(9)简要总结及自我评价。

(10)源程序:给出所有源程序清单,要求程序有充分的注释语句,至少要注释每个函数参数的含义和函数返回值的含义。(11)参考文献 参考文献书写模板:

[1] ***.C程序设计(第三版).北京:清华大学出版社,2005 [2] ***.C程序设计题解与上机指导(第三版).北京:清华大学出版社,2005 [3] ***主编.C语言程序设计实验与实训指导及题解.北京: 高等教育出版社,2005 [4] ***.C语言程序设计.北京:清华大学出版社,2008 [5] 王静, 武春岭编著.C语言程序设计基础习题集.北京:中国水利水电出版社,2008 [6] 黄维通,马力妮等编著.C语言程序设计习题解析与应用案例分析.北京: 清华大学出版社,2004

七、实习时间、地点及班级人数

10.c语言程序设计课程教学大纲201 篇十

【关键字】案例教学 C语言程序设计 课程改革

【中图分类号】TP311.1-4;G642.0

程序设计方法大体上分成两种:一种是结构化程序设计,一种是面向对象程序设计。结构化程序设计思想的原则是:自顶向下,逐步求精,模块化。绝大多数高校对学生进行结构化程序设计思维培养都是通过“C语言程序设计”课程进行的,但是多数课堂在进行“C语言程序设计”课程时都是按照教材的章节进行讲解[1][2],对C语言缺少一个整体的设计,并且实例之间都是离散的,没有关联,这样对于学生形成结构化程序设计思维造成了很大的困难。学生在学习“C语言”之后,往往知道其中的一些概念,如数组、结构体、指针、函数等等,会使用的就会减少一部分,而对“C语言”能够有一个整体的理解,对结构化程序设计思维有深入了解的,能够独立编程[3]的就少之又少。

为了培养学生的“结构化程序设计思维”,让学生对“C语言”有一个整体的掌握,并且能够熟练使用“C语言”进行程序设计,我们采用“全程案例式”教学方式进行C语言程序设计课程改革。

所谓“全程案例式”C语言程序设计教学是指在C语言的教学过程中从头到尾选用一个典型案例,如“学生成绩管理系统”,仿照教务管理平台对学生成绩进行管理。这样的案例学生非常了解,能够对其中的角色功能有明确的认知,这样就很容易分析清楚整个系统的功能模块构成,在此基础上对各个功能模块和数据类型进行设计,从而培养学生的结构化程序设计思维。

一、问题分析

教学人员对教务管理平台都不陌生,在分析问题的时候可以让学生自己设定学生成绩管理系统的角色和功能,然后实现。一般情况下,学生成绩管理系统可以分成三种角色,一是管理员,主要负责访问成绩管理平台成员数据的增、刪、改、查等操作,二是教师,主要负责学生成绩的录入、修改、查看等操作,三是学生,可以查看自己的成绩信息。同时三种成员都可以修改自己登陆平台的密码,功能模块划分如图1所示。通过对系统功能模块的划分,可以让学生理解结构化程序设计“自顶向下,逐步求精,模块化”的程序设计思想,并在此基础上,开发对应的功能函数。

二、学生分组

将学生分组,如25名同学分成5组,每组5人,有一位组长。每组分别独立完成以上教务管理平台中对应的功能模块,可以根据本组的讨论有所增删。这样每位同学平均完成两个功能模块,从而保证在课堂教学时间能够完成该项目。组长负责整个案例的任务分配,同时解决小组成员实施时遇到的技术问题,当然组成的最后成绩也会较高。

三、教学内容

仿照工程化的思路,如设计一个产品,需要有工人、原材料、工人。工人使用工具按一定的步骤加工原材料得到一个一个的零件,再将这些零件有机地组装起来就会形成一个产品。C语言的教学内容也可以按照以上思路进行分解,首先要有人,即程序员也就是学生;原材料是C语言的数据类型,包括基本类型(整型、实型、字符型、枚举型)、构造类型(数组、结构体、共用体)、指针类型和空类型;工具是运算符,用来操作某种类型的数据;操作步骤包括顺序结构、选择结构和循环结构;程序员使用工具按照一定的步骤加工原材料就能够得到一个零件,即函数;再将这些函数按图1进行组装就能够形成最后的学生成绩管理系统的源文件,同时能够对存储在外部文件中的人员数据等信息进行访问。[4]

将C语言的教学内容按照内在逻辑分成五大部分,学生容易理解并掌握。

四、教学方式

在教学上,采用“全程案例教学”,第一节课就开始写代码。开发工具可以使用C-Free、Dev-C++、Visual C++等,让学生理解C语言、C++语言和开发工具的区别。

根据问题的需要,首先要设计一个“学生成绩管理系统”的欢迎界面,通过该界面的设计讲解顺序结构,尤其是输出语句的使用。接下来应该是用户权限选择,如“1、管理员 2、教师 3、学生”,这就要用到选择结构,讲解if语句和switch语句。此时要在选择语句中使用一些数据类型,因此可以在此处讲解基本数据类型(字符型、整型、实型、枚举型)。在用户进行选择时要进行选择数据的输入,此时讲解输入语句。此时的程序只能进行一次用户的选择,如果想再次选择则需要重新执行程序,在此处可以进行循环结构的讲解,可以多次选择用户,直到用户自己退出程序为止。在循环结构中要用到相关的表达式,可以在此处进行表达式的讲解。当然,也可以先讲解基本数据类型和表达式,之后再进行顺序结构、选择结构、循环结构的设计。

在选择了相应的用户权限之后,就要执行对应的用户功能,如管理员功能、教师功能、学生功能等。此时给学生讲解程序设计中的模块,即函数,让学生深刻理解模块的概念及实现方式。在进入到相应的函数之后,如学生函数,此时应该确认学生的身份是否合法,通过键入如学号和密码来验证该学生是否合法,如合法则可以查询成绩,如不合法则重新登陆或退出。而学生的信息适合使用结构体类型数据来存储,很多学生信息则需要用结构体数组来存储,在此处给学生讲解构造数据类型(结构体、共用体、数组),通过学生结构体数组来模拟数据库表,在此处给学生讲解相关的数据库知识。学生功能包括成绩查询和修改密码两部分,所以要写两个相关的子函数,此处深入讲解函数的相关知识,如函数的调用、参数传递等。这部分是学生成绩管理系统的核心功能,工作量较大。

在完成相关数据的存储之后,发现关机之后数据就没有了,通过回顾内存与外存的区别,所以要把数据库存储在外存储器上,这就要用到文件。建立若干个文件用来存储管理员、教师和不同班级学生的记录(可用二维数组或多维数组来区别系或班级等),通过对文件的读写来实现对数据库数据的存取,基本达到学生成绩管理系统的使用目标。

在这个过程中,除了必要的知识介绍外,重在培养学生的结构化程序设计思维,理解C语言的几大组成部分并熟练使用,同时养成设计代码的规范性。

五、考核方式

全程采用案例教学就不适合出试卷进行考核,因此在考核方式上更适合过程化考核[5]。我们将考核内容分成两个部分,平时考核占60%(出勤占20%,平时训练占80%),最终考核占40%(小组考核占50%,个人考核占50%)。这样可以弱化对知识点的考查,重在考查学生对程序的分析与设计的能力。

六、实践教学

在实践教学环节(课程设计[6])可以安排类似的管理系统供学生分析和设计,此时每组要求选择不同的系统进行设计,每组独立设计系统功能框图、分工并实现,从而巩固并强化课堂所学的内容。

七、第二课堂

第二课堂可以参加相关的学科竞赛,如“ACM大学生程序设计竞赛”、“蓝桥杯全国软件和信息技术专业人才大赛”等学科竞赛,从而开阔学生的视野,加强学生的实际编程能力。当然,如果想参加相关的学科竞赛,还需要有一定的数据结构知识和算法知识,这需要对学生进行相关的培训或由学生自学完成。这对于学生是一次很好的升华,学生获得的相关学科竞赛读书对于将来的就业是一个很好的准备。

综上,通过一个典型案例将C语言程序设计课程内容有机地组织起来,将C语言教学内容分成五大部分,使学生容易理解并形成一个较强的印象。在实验室教学,人手一机,边讲边练,重在培养学生分析问题和设计程序的能力,培养学生的结构化程序设计思维。

参考文献

[1]蒲海波 兴趣驱动的案例教学在C语言教学中的应用[J]计算机光盘软件与应用 2013年第7期:192-193

[2]丁海燕 高级语言程序设计案例教学模式的探讨[J]计算机教育2011年第8期: 65-68

[3]吴美红 基于CDIO模式的案例教学在C语言程序设计中的应用[J]电脑知识与技术 2013年第11期:2632-2633

[4]李伟光 提高C语言实际应用能力的研究与实践[J]煤炭技术2012年11期:242-243

[5]薛小锋 案例教学在非计算机专业C语言程序设计教学中的应用[J]江苏技术师范学院学报2010年第4期:80-82

[6]張波 模块化案例教学在C语言程序设计课程中的应用[J]计算机教育 2009年第21期:62-65

【作者简介】:李伟光(1979年7月),男,硕士研究生,副教授,长春光华学院计算机科学与技术系主任,研究方向模式识别,

11.C语言程序设计课程教学方法研究 篇十一

关键词:C语言程序设计,启发式教学,阶梯式教学,案例教学

1. 引言

C语言程序设计是高校计算机及应用专业学生必修的专业基础课, 也是信息管理专业本科班必修的一门专业核心重点课程, 该课程在专业建设和课程体系中占据重要的地位和作用。C语言是一种结构化的计算机程序设计语言, 它具有高级语言的优点, 又具有低级语言的许多特点, 它以功能丰富, 表达能力强, 使用灵活, 应用面广, 目标程序效率高, 可移植性好, 能对硬件直接进行操作等优点, 在国内国外得到迅速推广应用。通过本课程的教学, 使学生养成严谨的程序设计风格和习惯, 在程序设计基本技能方面得到良好的训练, 能够编写出符合软件工程规范要求的结构化程序。以培养学生实际动手能力, 分析和解决较复杂的应用问题的能力。

然而, 目前C语言程序设计这门课程教学方法主要是以介绍语法为主, 忽略了教学过程中对学生分析问题和解决问题能力的培养, 让学生感觉枯燥无味。并且该课程本身具有较强的技术性和实践性, 要求学生具有较强的编程能力, 导致学生在学习C语言程序设计课程时产生怕学、厌学心理。本文基于C语言程序设计传统教学方法中存在的问题, 对有效帮助学生提高学习兴趣的几种教学方法进行了探讨。

2. C语言程序设计教学中的问题

目前来看, 结合教学实践与学生在学习过程中的反馈, 笔者发现C语言程序设计这门课程教学过程中存在的问题, 具体主要表现在以下几点。

2.1 教学方法死板、陈旧

无论是计算机专业学生还是非计算机专业学生, 在学习C语言程序设计课程时, 基本上都是教师用教材上的专业术语逐条介绍、解释语法规则, 然后再用教材上的例子对语法规则进行验证, 内容枯燥乏味。并且教材中的例子大多是解决纯粹数学问题的例子, 如斐波那契数列输出、猴子吃桃等问题。这些问题在程序算法的理解上以及编程实现方面, 难度都是比较大的, 很难充分调动学生的学习兴趣、启发学生的主动思维。

2.2 实践教学环节重视不够

任何一门程序设计类课程最突出的一个特点就是实践性比较强, C语言程序设计也不例外。因此, 除了教师在理论课堂讲授, 主要靠学生在实践课时通过自己上机实践, 锻炼培养自己的动手编程能力。而在实际实践教学过程中, 教师可能对实践教学内容和目的不太明确, 对学生的实践学习指导不够, 甚至在实践课堂上出现放羊的现象。另外, 可能因为教学资源的有限性, 实践课时往往比较少, 无法在最大程度上提高学生动手编程、分析和解决问题的能力。

2.3 学生欠缺对课程学习的兴趣

兴趣是一个人认识、掌握某种事物, 并经常参与该活动的心理倾向[1]。学生只有对所学内容有兴趣, 才能积极地去学习并很好地完成学习任务。而学生之所以对C语言程序设计课程的学习兴趣不高, 除了上述教师的教学方法不当之外, 还有个重要的原因, 即学生对C语言程序设计这门课程的理解存在误区。有的学生认为有了C++这种面向对象的程序设计语言以后, 面向过程的程序设计C语言就过时了。这显然是一种误解。C++是为设计大型程序应运而生, 它更适合处理大型的模块程序。C语言作为传统的、最基本的、面向过程的程序设计语言, 更适合于解决某些小型程序的编程。尤其是在编写底层的设备驱动程序和内嵌应用程序时, 往往是更好的选择。另外, 还有的同学在学习过程中功利性太强。自认为以后不会从事编程类工作, 抱着“及格万岁”的心态学习C语言, 当然也就无任何兴趣可言。

3. C语言程序设计教学方法

笔者从事C语言程序设计的教学工作, 在教学过程中发现以上问题。基于以上问题并结合教学同仁的宝贵经验, 下面就C语言程序设计课程教学方法进行探讨, 期望在今后的教学工作中能达到良好的效果。

3.1 启发式教学法

启发式教学法强调的是教师的教与学生的学紧密结合, 互动作用。而不是一味地强调教师单方面的满堂灌输给学生知识[2]。例如, 在利用循环结构程序设计语句编写程序输出100-200之间的所有素数时, 作为教师不应该直接把程序灌输给学生学习, 而应先确定一个如何判断某个自然数是否为素数的下列程序:

当学生理解了这个问题之后, 再进一步引导学生如何编写下列程序找出100-200之间的所有素数。

这样循序渐进的方式解决问题, 更容易让学生接受, 并培养提高其逻辑思维能力。

3.2 阶梯式教学法

阶梯式教学法强调的是教师在教学过程中, 对学生介绍和讲解的问题的难度适当升级, 不断培养和提高学生主动思考和创新能力[3]。例如, 上述找出100-200之间所有的素数问题。如果再进一步的话可以利用函数调用的方法来解决。将如何判断一个给定的自然数是否为素数定义为一个单独的子函数;在主函数中通过循环语句调用该子函数。

这样, 问题的难度进一步升级, 而对于学生来说, 又可以轻而易举地掌握函数的定义与调用等新的知识点。

3.3 案例教学法

案例教学法指的是教师经过精心策划, 以案例为基础, 向学生展现一个真实而具体的教学时间或者问题情境, 引导学生观摩学习、研究探讨, 并培养学生识别、分析和解决某一具体问题能力的一种教学方法[4]。在讲授数据如何在计算机的内存中存储时, 我们可以把上课教室看作是一块内存, 而教室里的每个座位可以看作是一个内存单元, 每个座位号就是一个内存单元的地址, 则每个同学就是存储在内存单元的一个变量数据。而对于体形比较宽胖的同学来说, 一个座位可能容纳不下, 只能坐到半个座位的位置, 这种情况下就可以引出数据的溢出概念。这样来解释数据的存储, 显然比生硬的给学生介绍教材上的理论知识效果要好的多。

3.4 项目教学法

所谓项目教学法, 是教师以源于企业或者事业单位的项目为载体, 进行C语言程序设计课程教学内容的安排和组织, 把教材上相关的知识点融入到项目的各个环节[5,6]。这种教学方法强调的是学生在C语言程序设计课程中的主观能动性, 最终目的是调动学生学习的主动性和挖掘其创造潜力。但是, 这种教学方法在实施过程中往往存在一个致命缺陷, 就是应用于教学的企业项目太少。即便是有合适的项目, 任课教师或者企业方也有可能考虑到本科生的能力问题, 而不愿意将项目应用于教学实践中。这种情况下, 任课教师可以考虑使用模拟项目。例如, 在介绍分支结构程序设计语句时, 教师可以让学生设计一个简单的计算器;在介绍循环结构程序设计语句时, 可以让学生设计一个猜数小游戏。让学生在自己设计的项目中感受自己的学习成果, 从而提高他们的学习兴趣。

4. 结论

在目前“学生为主”的教育背景下, 如何避免传统的灌输式教学、激发学生学习的兴趣, 以及提高学生认真学习的主动性, 是高校教师多年以来在教学过程中一直致力于突破的一个瓶颈问题。本文基于C语言程序设计课程教学过程中的存在的问题, 介绍了启发式教学法、阶梯式教学法、案例教学法和项目教学法, 以求能够在今后的C语言程序设计课程教学中, 取得良好的教学效果。由于目前我国高校教育的考核方式主要还体现在考试方面, 这几种教学方法在C语言程序设计课程实际教学中实施时, 可能面临很多的困难。只要我们任课教师用心备课, 充分地准备每一节课的教学内容, 在教学实践中不断地前行, 肯定会取得更加理想的教学效果。

参考文献

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

[2]葛丽萍.C语言教学中的启发式教学应用研究[J].农业网络信息, 2008 (6) :130-131.

[3]南丽丽.阶梯式教学法在C语言教学中的应用[J]计算机教育, 2008 (7) :75-76.

[4]张永定, 周强, 王松颉.案例教学法在Access数据库教学中的研究与实践[J].新乡学院学报, 2015, 32 (3) :74-756.

[5]叶健华, 黎峰.“项目驱动+案例教学”模式在C语言教学中的应用[J].济南职业学院学报, 2009, (3) :18-20.

12.c语言课程设计心得体会 篇十二

通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习c语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。

C语言常用符号中文解释

1、#include 格式:引用标准库头文件,编译器从标准库目录开始搜索;

2、#include “”格式:引用非标准库的头文件,编译器从用户的工作目录开始搜索;

3、C语言中“^”符号是位运算、异或;

4、c语言中符号 & 是& 表示 与操作 例如: a&b 表示的就是a、b进行与操作;

5、c语言中 ->符号是什么意思? 比如c=a->b

a为结构体或联合体的指针,->表示调用其成员

6、C语言中,符号“!=”和“==”是什么意思?比如a!=b,a==0

!=是逻辑不等于号而==是判断是否相等:

比如:

int a=3,b=4

a!=b,a的值就不是等于b的值,所以a!=b是正确的

a==0是判断a是否等于0,显然不等于0,那么就是假的

c++ c语言入门基础教程 教程11:堆内存(一)

十一、堆内存、

堆内存可以动态分配所需的内存空间大小,而数组必须要在程序运行前指定空间大小,下面我们来看一个练习;

1、启动 Geany

1)点菜单“应用程序-编程-Geany”启动 Geany ,新建一个 c++ 源程序;

2)点菜单“文件-另存为”命令,以“heap”为文件名,保存文件到自己的文件夹;

2、分配堆内存

1)使用 new 操作符来获得需要的内存大小,它返回指定类型的内存空间指针,

接着输入下面的代码,准备要用到的变量,第三个是指针变量,存放将来内存地址:

int i = 0;

int a = 0;

int *score = NULL;

2)接下来输入一个数给 a,指定要申请的内存空间大小;

cout << “Input a number: ”;

cin >>a;

3)接下来按整型 int 申请内存大小,如果成功了,就把地址给 score 指针变量,否则给它的是“空” NULL;

score = new int [a];

4)如果 score 不为空,就给它的各个单元赋值 i ,内存一般是连续的,可以当数组来使用;

for (int i=0; i

score[i] = i;

5)赋值完毕以后,再显示一下各个单元的值;

cout << “score[” << a << “] = ”;

for (int i=0; i

cout << score[i] << “ ”;

6)使用完毕后,归还申请的内存,释放内存后,score 指针也应该让指向空 NULL;

free(score);

score = NULL;

7)编译、生成、运行后,显示分配的内存单元和值;

#include

using namespace std;

int main(int argc, char** argv)

int a = 0;

int *score = NULL;

cout << “Input a number: ”;

cin >>a;

score = new int [a];

if (score != NULL)

for (int i=0; i

score[i] = i;

cout << “score[” << a << “] = ”;

for (int i=0; i

cout << score[i] << “ ”;

[] score;

score = NULL;

13.c语言程序设计课程教学大纲201 篇十三

教师奖金计算系统-C语言课程设计

#include void main(){ int a=0,b=0,c=0,d=0,e=0,f=0,g=0,i=1,j=1,h=0;int m[3];float n[3];do { printf(“nttt欢迎使用教师奖金计算系统nn”);printf(“请选择教师类型:n”);printf(“

1、专职教师n”);printf(“

2、行政n”);printf(“0、退出程序n”);scanf(“%d”,&a);

printf(“n===================n”);switch(a){ case 0:j=0;break;

精心收集

精心编辑

精致阅读

如需请下载!

演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案

case 1: { {do

{printf(“请输入你的教师类型:n”);

printf(“

1、高级讲师n2、中级讲师n3、助理讲师n4、见习期n”);

scanf(“%d”,&b);

switch(b)

{case 1: c=10;d=40;break;

case 2: c=9;d=35;break;

case 3: c=8;d=30;break;

case 4: c=4;d=10;break;

default: printf(“n输入错误,请重新输入:n”);

}

}

while(b<=0||b>4);} printf(“n===================n”);{for(i=1;i<=3;i++)

{

printf(“请输入所代 课程%d 本周所教的课时数,最多3科,多出的输入0n”,i);

精心收集

精心编辑

精致阅读

如需请下载!

演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案

scanf(“%d”,&m[i]);

printf(“您输入的课时数为:%dn”,m[i]);

printf(“请输入所代 课程%d 所对应的听课人数n”,i);

scanf(“%d”,&e);

if(e<60)n[i]=1;

if(e>=61&&e<=70)n[i]=1.2;

if(e>=71&&e<=80)n[i]=1.3;

if(e>=81&&e<=90)n[i]=1.4;

if(e>=91&&e<=100)n[i]=1.5;

if(e>=101&&e<=120)n[i]=1.6;

if(e>=121&&e<=140)n[i]=1.7;

if(e>=141&&e<=160)n[i]=1.8;

if(e>=161&&e<=180)n[i]=1.9;

if(e>=181)n[i]=2.0;

printf(“您输入的课程人数为%dn课程%d对应系数为%2.2fn”,e,i,n[i]);

} }

printf(“n===================n”);

{do

精心收集

精心编辑

精致阅读

如需请下载!

演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案

{printf(“请选择您的教师等级:n”);

printf(“

1、A等n2、B等n3、C等n”);

scanf(“%d”,&f);

if(f==1)g=1;

else if(f==2)g=0;

else if(f==3)g=-1;

else printf(“n输入错误,请重新输入:n”);

}

while(f<=0||f>3);

}

printf(“n===================n”);printf(“n===========以下为您本月的奖金信息:===========n”);printf(“乘学时系数后本月各课程课时:n”);printf(“课程1:%2.2fn”,m[1]*n[1]*4.5);printf(“课程2:%2.2fn”,m[2]*n[2]*4.5);printf(“课程3:%2.2fn”,m[3]*n[3]*4.5);printf(“本月超课时为:%2.2fn”,(m[1]*n[1]+m[2]*n[2]+m[3]*n[3])*4.5-36);printf(“本月奖金数为:%2.2fn”,((m[1]*n[1]+m[2]*n[2]+m[3]*n[3])*4.5-36)*(d+g)+36*(c+g

精心收集

精心编辑

精致阅读

如需请下载!

演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案));break;} case 2: { {do

{printf(“请选择类型:n”);

printf(“

1、普通行政(未兼课)nn2、普通行政兼课、实验室教师nn3、见习其行政(未兼课)nn4、见习期行政兼课nn5、中层领导(未兼课)nn6、中层领导兼课nn ”);

scanf(“%d”,&b);

}

while(b<=0||b>6);}

printf(“n===================n”);

switch(b)

{case 1: h=1500;

printf(“n===========以下为您本月的奖金信息:===========n”);

printf(“您本月的坐班奖金为:%dnn”,h);

精心收集

精心编辑

精致阅读

如需请下载!

演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案

break;

case 2:h=1500;

{do

{printf(“请输入你的教师类型:n”);

printf(“

1、高级讲师n2、中级讲师n3、助理讲师n”);

scanf(“%d”,&d);

switch(d)

{case 1: c=10;break;

case 2: c=8;break;

case 3: c=6;break;

default: printf(“n输入错误,请重新输入:n”);

}

}

while(b<=0||b>3);

}

printf(“n===================n”);

{for(i=1;i<=3;i++)

{

printf(“请输入所代 课程%d 本周所教的课时数,最多3科,多出的输入0n”,i);

精心收集

精心编辑

精致阅读

如需请下载!

演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案

scanf(“%d”,&m[i]);

printf(“您输入的课时数为:%dn”,m[i]);

}

}

printf(“n===================n”);

{do

{printf(“请选择您的教师等级:n”);

printf(“

1、A等n2、B等n3、C等n”);

scanf(“%d”,&f);

if(f==1)g=1;

else if(f==2)g=0;

else if(f==3)g=-1;

else printf(“n输入错误,请重新输入:n”);

}

while(f<=0||f>3);

}

printf(“n===================n”);

printf(“n===========以下为您本月的奖金信

精心收集

精心编辑

精致阅读

如需请下载!

演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案

息:===========n”);

printf(“您本月所教课时为:%2.2fn”,(m[1]+m[2]+m[3])*4.5);

printf(“您本月的坐班奖金为:%dn”,h);

printf(“n您本月的全部奖金为:%2.2fn”,h+((m[1]+m[2]+m[3])*4.5)*(c+g));

break;

case 3: h=700;

printf(“n===========以下为您本月的奖金信息:===========n”);

printf(“n您本月的坐班奖金为:%dn”,h);

break;

case 4: h=700;

c=4;

{for(i=1;i<=3;i++)

{

printf(“请输入所代 课程%d 本周所教的课时数,最多3科,多出的输入0n”,i);

scanf(“%d”,&m[i]);

printf(“您输入的课时数为:%dn”,m[i]);

}

}

精心收集

精心编辑

精致阅读

如需请下载!

演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案

printf(“n===================n”);

{do

{printf(“请选择您的教师等级:n”);

printf(“

1、A等n2、B等n3、C等n”);

scanf(“%d”,&f);

if(f==1)g=1;

else if(f==2)g=0;

else if(f==3)g=-1;

else printf(“n输入错误,请重新输入:n”);

}

while(f<=0||f>3);

}

printf(“n===================n”);

printf(“n===========以下为您本月的奖金信息:===========n”);

printf(“您本月所教课时为:%2.2fn”,(m[1]+m[2]+m[3])*4.5);

printf(“您本月的坐班奖金为:%dn”,h);

精心收集

精心编辑

精致阅读

如需请下载!

演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案

printf(“n您本月的全部奖金为:%2.2fn”,h+((m[1]+m[2]+m[3])*4.5*(c+g)));

break;

case 5: h=2000;

printf(“n===========以下为您本月的奖金信息:===========n”);

printf(“您本月的坐班奖金为:%dn”,h);

break;

case 6: h=2000;

{do

{printf(“请输入你的教师类型:n”);

printf(“

1、高级讲师n2、中级讲师n3、助理讲师n”);

scanf(“%d”,&d);

switch(d)

{case 1: c=20;break;

case 2: c=15;break;

case 3: c=10;break;

default: printf(“n输入错误,请重新输入:n”);

}

}

while(d<=0||d>3);

精心收集

精心编辑

精致阅读

如需请下载!

演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案

}

printf(“n===================n”);

{for(i=1;i<=3;i++)

{

printf(“请输入所代 课程%d 本周所教的课时数,最多3科,多出的输入0n”,i);

scanf(“%d”,&m[i]);

printf(“您输入的课时数为:%dn”,m[i]);

}

}

printf(“n===================n”);

{do

{printf(“请选择您的教师等级:n”);

printf(“

1、A等n2、B等n3、C等n”);

scanf(“%d”,&f);

if(f==1)g=1;

else if(f==2)g=0;

else if(f==3)g=-1;

精心收集

精心编辑

精致阅读

如需请下载!

演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案

else printf(“n输入错误,请重新输入:n”);

}

while(f<=0||f>3);

}

printf(“n===================n”);

printf(“n===========以下为您本月的奖金信息:===========n”);

printf(“您本月所教课时为:%2.2fn”,(m[1]+m[2]+m[3])*4.5);

printf(“您本月的坐班奖金为:%dn”,h);

printf(“n您本月的全部奖金为:%2.2fn”,h+((m[1]+m[2]+m[3])*4.5)*(c+g));

break;

}

}break;

}

}while(j==1);

}

精心收集

精心编辑

精致阅读

如需请下载!

演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案

精心收集

14.c语言程序设计课程教学大纲201 篇十四

C语言作为一门在计算机软件和硬件领域通用的计算机语言,是许多高校计算机专业与非计算机专业的必修课[1]。但在C语言程序设计教学实践活动中,学生普遍反映知识点多、零散,语句语法要求繁琐、不易上手学习等问题。因此,对于着重学生实践能力培养的独立学院而言,C语言程序设计课程改革已刻不容缓。笔者根据长期以来的教学实践经验,从学生对象心理分析、理论环节设计、实践过程项目化等方面对C语言程序设计课程进行了改革探索。

1教学改革内容

1.1传统教学存在的问题

C语言程序设计课程传统教学中突出存在以下两方面问题:

(1)教学过程枯燥。传统的C语言授课开篇即是常量、变量、命名构成、类型等大量概念[2],枯燥而且知识点多,着重强调语法细节,容易使初学者产生茫然、畏难甚至反感情绪,而且课程例题与实际应用脱节。填鸭式的教授方式无法提高学生学习兴趣,达不到好的教学效果。

(2)程序设计思想传授不足。传统教学模式注重学生的基础理论知识、基础程序设计能力培养,学生为了应付期末考试和等级考试,书面做题能力强,但在实际面对具体问题进行程序 设计时,其设计思 路、规范性都 很欠缺,这种状况将不利于学生学 习后续课 程与从事 相关工作。

1.2授课对象分析

由于独立学院的特殊性,多数学生理论基础较差,逻辑思维能力不强,而且学院的C语言程序设计课程普遍安排在第一学年,学生的学习思路还没有从高中的教师全程讲授、题海战术中转变为教师讲解方法、课后自主学习的方式,有的学生开课前甚至从未接触过计算机。因此,在学习《C语言程序设计》时,学生普遍反映难度大。其次,学生普遍自学和实践能力不强,掌握知识进度慢,影响后续课程学习[1,3]。因此,《C语言程序设计》需要根据课程特点,并结合学生的知识掌握能力进行有针对性的教学改革。

2具体改革措施

2.1理论环节:强调讲解深入浅出

C语言程序设计课程存在知识点多、零散,学生理解起来较为抽象的情况,需要将知识点串联起来以形象化的例子进行讲解,以让学生更容易理解。在实践中,笔者从以下几个方面进行了尝试,学生反馈效果良好。

(1)以自然语言学习过程类比计算机语言学习过程,使用知识类比法降低入门难度。程序语言即和计算机打交道的语言,和自然语言相比具备一些共通性:1两者都是用来进行沟通的语言,从本质而言,学习方法都包括从基本的词法、语法构成到具体语句实现的过程。因此,初接触C语言的常量、变量时可类比 学习。在教学 之初不需要讲解所有知识点,在最常用的整形和实型讲解后,再辅助程序实例讲解即 可;2借助自然 语言描述 来理清思路,给学生灌输一个重要理念:解题步骤、解题思想才是核心,任何程序语言只是实现问题的工具。在程序设计例题讲解过程中,多借助流程图让学生清楚问题解决的思路,要求学生在实际做题过程中同样形成先用自然语言写清楚步骤,再考虑程序实现的习惯,从而降低学生的理解难度,提高学生学习兴趣。

(2)以学生熟悉的实例对比学习知识点,使学生能快速理解概念和知识点本质,也更容易提高学生兴趣。以下几个实例在讲解一些较难理解的知识点时效果较好。

例1:在讲解循环中的break和continue时,有些学生始终无法分清两者区别,可以设定情境:以学生出早操为例,每周从周一至周五都出早操,从第1周延续至20周,break场景可类比学校出现新规定,16周起为复习周,不参加早操,退出循环出操过程,而continue可以类比为某一周学校出操场地被占用,则不出早操是从占用起至当周周五,下周还是需要循环出早操。

例2:函数讲解中 很多学生 无法理解 实参和形 参传递,以及函数调用的本质。利用工科学生容易理解的搅拌机为例,搅拌机功能就是实现将入口1和入口2接收的材料进行搅拌,最后将混和物在出口给出。入口1和入口2的材料具体内容未知,混合物内容未知,此可以理解为形式入参,不分配具体内存。一旦到真正使用搅拌机时,即相当于函数调用过程,具体的材料1可能是水泥,材料2可能是沙子,就有了实际内容,类比实参,出口内容则是实际的混凝土,也即是函数中的出参。

例3:在讲解复杂的指针概念时,以学生熟悉的学院行政办公楼为例进行讲解。行政楼房间编号依次是1-01、1-02、1-03,二楼编号依次是2-01、2-02…,现在学校一楼的3个房间1-02~1-104被分配给了教务处,并且在102门上挂着教务处门牌,学生一般 涉及教学 问题都会 找教务处,而不会找1-02~1-04。为了方便校外人员办事,一般还将行政楼的楼层及 办公地点 安排存档 一份在门 卫处。该情况可以类比于C程序定义变量分配内存,内存即房间,指针变量里存放的相当于地址号,类比门卫处保存的房间号,门卫处即理解成指针变量。

通过这些理论讲解方式的改革,尽量让知识点浅显易懂,使学生能够快速理解。因此,学生对于理论知识的掌握程度相比改革前得到了普遍提高。

2.2实践环节:强调与具体项目结合

C语言是一门实践性较强的课程,独立学院更是以技术型人才培养为导向。C语言课程的实践课时占据了整个课程50%的课时量。因此,对于教学实践环节也进行了深化改革。

C程序设计的实践课程以开发一个小型点菜项目为背景展开,此项目的开发能将选择、循环、函数、数组和指针等多个知识点串联起来,以达到锻炼学生综合程序设计能力的目的。该项目主要功能包括:新录入和显示菜品价格、点菜、结算,以日为单位统计最高消费和最低消费额度与营业额,分段显示最受欢迎菜品以辅助菜品采购人员采购。具体实施过程包括以下环节:

(1)教师带领学生理清项目需求。由于学生对项目本身很熟悉,比较容易上手,教师辅助讲解功能需求中可以应用的知识点,给学生提示一些好的设计思路。例如,尝试使用二维数组存储菜品及其对应价格比单独定义数组更为合理等。

(2)教师进行操作示范[4]。以菜品录入为例,讲解基本的数据结构设计、函数体设计中录入菜品过程中需要考虑的问题。要求学生以4~5人为一个学习小组,组队完成所有功能实现。在具 体实施过 程中,要求学生 积极讨论,充分发挥每个组员的能力,分工协作共同完成任务,最终集成出一个比较系统的模块化程序。

(3)组和组之间交叉测试,进一步完善代码,教师在此过程中完成学习评价。交叉多轮测试、对比代码可以让学生学习其它组的代码风格,并发掘代码设计过程中存在的不足,最后给出测试报告,提出改进建议。由于学生自己参与了整个设计过程,因此,该测试报告具备可实施性,可以进行有效改进。教师在此过程中根据学生的参与程度、测试报告质量以及最终的项目系统完成整体教学评价。

学生通过参与一个完整的小项目,从最初的代码数据结构设计、模块化功能设计,到最终代码完成、模块集成,到最后的项目测试,学生除了可以对软件开发过程更熟悉以外,对于开发中涉及的C语言知识点也更能融 会贯通地使用。

3结语

以上教学改革措施在实施之初,也曾遇到如教学实验环境限制、理论与实践课时分配不当等问题,但多个学期实施下来,学生的整体理论水平和实践动手能力较改革前得到了很大提高,学生对于程序设计的兴趣也大大提升,主动要求参与到各项软件大赛中一试身手。该措施同时辅助了后续课程的学习,提高了学生的自主学习能力。

上一篇:工程职称评定工作总结下一篇:学生党员培训心得体会