课程简介
C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。C语言作为一门专业基础课程,是学习程序设计的入门语言。本课程主要学习C语言的基本构成、数据类型、结构化程序设计思想和简单的算法,重在培养学生运用C语言解决实际问题,达到能够熟练编写程序、调试程序和运行程序的学习目标。
课程目录
-
第一部分 学习篇
-
第1章 C语言概述
-
第2章 顺序结构程序设计
-
第3章 选择结构程序设计
-
第4章 循环结构程序设计
-
第5章 数组
-
第6章 函数
-
第7章 指针
-
第8章 自定义数据类型
-
第9章 文件
课程标准
《C语言程序设计》教学大纲
一、课程性质
《C语言程序设计》课程是智能终端技术与应用专业的专业基础课程,是学生学习计算机编程的入门课程,在课程体系中起基石作用,本课程立足于软件开发核心岗位,主要培养学生将实际问题抽象转化为计算机算法,并利用C语言语句实现该算法的能力。
本课程是计算机相关专业的一门专业基础课。通过本课程学习使学生对C语言语法和编程基本算法有系统的认识,是学生学习编程的入门语言,在专业课程体系中起着基石作用。本课程以动手实践为主,主要采用随堂实训和课程设计两种方式培养学生的编程技能,同时还要担负着职业素质教育、培养创新意识的使命。
二、课程教学目标
1. 知识目标
(1)掌握C语言数据类型、程序结构、函数的定义与使用;
(2)掌握程序编写、调试和验证的基本方法;
(3)掌握软件开发工具的使用;
(4)理解指针、结构体、文件的应用;
(5)了解软件工程思想;
(6)理解程序设计的基本思想。
2. 能力目标
(1)具有将实际问题抽象为计算机程序语言的能力;
(2)具有应用C语言的数据类型和程序结构编程的能力;
(3)具有选取合适的开发工具完成C语言程序开发的能力;
(4)具有选取合适的方法进行C语言程序调试的能力;
(5)具有选取合适测试方法,验证C语言程序的能力;
(6)具有维护C语言程序的能力。
3. 素质目标
(1)具有较强的思想道德修养和马列主义理论基础,政治敏锐力较强;
(2)具有较高的文化素质修养,具备良好的团队合作精神;
(3)具有较好的心理素质,勇于克服困难,积极进取的精神;
(4)具有较强的身体素质,能适应艰苦工作需要;
(5)具有较强的业务素质,不断开拓创新;
(7)具有较高的职业道德,遵章守纪、爱岗敬业、科学务实、吃苦耐劳;
(8)具有较强的口头与书面表达能力;
(9)能够通过各种媒体资源查找所需要的信息;
(10)具有较强的软件工程职业素质,具备质量责任感、安全意识。
三、教学内容和要求
表1 《C语言程序设计》教学内容及学时分配表
序号 | 章节(模块)名称 | 教学内容 | 教学要求 | 学时数 | |||
讲授 | 实训 | 合计 | |||||
1 | 第1章 C语言概述 | 1.1 C语言发展史及特点 | 1.C语言发展及特点 2.C程序组成及特点 3.C程序开发的步骤 4.VC++6.0的用法 | 1.了解C语言的发展历史; 2.初步理解C语言的特点; 3.掌握C语言程序组成及特点; 4.熟练使用开发工具,能够编写、调试和运行简单的C程序。 | 1 | 1 | 2 |
1.2 C程序的开发 | |||||||
2 | 第2章 顺序结构程序设计 | 2.1 数据表现形式 | 1..常量和变量的含义 2.整型、实型和字符型常量表示方法和变量定义的方法 3.基本运算符与表达式 4.getchar()/putchar()的用法 5.scanf()/printf()的用法 6.顺序结构应用 | 1.理解常量和变量的含义,掌握变量名的命名规则; 2.掌握整型、实型和字符型数据常量和变量的表示方法; 3.掌握基本运算符的用法及表达式的应用; 4.了解混合运算的运算方式; 5.掌握字符输入/输出函数、格式化输入/输出函数的用法; 6.初步掌握顺序结构程序结构程序的基本思想; 7.能根据实际需要简单程序设计,完成数据输入、数据处理和数据输出。 | 4 | 4 | 8 |
2.2运算符和表达式 | |||||||
2.3数据的输入与输出 | |||||||
2.4顺序结构综合应用举例 | |||||||
3 | 第3章 选择结构程序设计 | 3.1选择结构和条件判断 | 1.关系运算符与表达式 2.逻辑运算符与表达式 3.if语句的格式和用法 4.switch语句的格式与用法 5.选择结构应用 | 1.掌握关系运算符和逻辑运算符的用法; 2.掌握if、if/else和if多分支语句的格式和用法; 3.掌握switch语言的格式与用法; 4.初步掌握选择结构程序的基本思想; 5.能够熟练使用分支语句解决实际问题。 | 3 | 3 | 6 |
3.2 if语句 | |||||||
3.3 switch语句 | |||||||
3.4选择结构综合应用举例 | |||||||
4 | 第4章 循环结构程序设计 | 4.1循环结构 | 1.for语句 2.while、do-while语句 3.break、continue语句 4.循环结构的语法与用法 5.循环结构应用 | 1.掌握while语句的功能和用法; 2.理解do-while语句的功能和用法;3.掌握for语句的功能和用法; 4.掌握break语句与continue语句的功能和用法; 5.掌握循环嵌套的含义和用法; 6.能够熟练使用循环语句解决实际问题。 | 4 | 4 | 8 |
4.2 while语句和do/while语句 | |||||||
4.3for语句 | |||||||
4.4break和continue语句 | |||||||
4.5循环嵌套 | |||||||
4.6循环结构综合应用举例 | |||||||
5 | 第5章 数组 | 5.1数组概念 | 1.一维数组定义和应用 2.二维数组定义和应用 3字符数组定义和应用 4.字符串处理函数的用法 5.数组应用 | 1.掌握一维数组、二维数组和字符数据的的定义、初始化和引用的方法; 2.掌握字符串处理函数的功能和用法; 3.熟练使用一维数组和字符数组解决问题; 4.能够熟练使用数组解决实际问题。 | 5 | 5 | 10 |
5.2一维数组 | |||||||
5.3二维数组 | |||||||
5.4字符数组 | |||||||
5.5数组综合应用举例 | |||||||
6 | 第6章 函数 | 6.1函数定义 | 1.函数的定义和简单调用 2.函数的嵌套调用和递归调用 3.数组名作为函数参数 4.全局变量和局部变量的定义和用法 5.静态变量和动态变量的定义和用法 6.函数应用 | 1.掌握函数定义和调用的方法; 2.掌握参数传递的方式; 3.掌握数组名作为函数参数的用法; 4.掌握局部变量和全局变量的定义和用法; 5.掌握静态变量和动态变量的定义和用法; 6.能够熟练使用函数解决实际问题。 | 5 | 5 | 10 |
6.2函数调用 | |||||||
6.3变量作用域和变量存储类别 | |||||||
6.4函数综合应用举例 | |||||||
7 | 第7章 指针 | 7.1指针概念 | 1.指针变量的定义和应用 2.指向数组的指针变量作为函数参数 3.指向字符串的指针变量作为函数参数 4.指向函数的指针定义和应用 5.返回指针值的函数定义和应用 6.指针数组的定义和应用 7.指向指针的指针变量的定义和应用 | 1.理解指针的概念; 2.了解指针变量的定义和应用; 3.掌握指向数组的指针变量的定义和应用; 4.掌握指向数组的指针变量的定义和应用; 5.了解指向函数的指针变量的定义和简单应用; 6.了解返回指针值函数的定义和简单应用; 7.了解指针数组和指向指针的指针变量的定义和简单应用。 | 5 | 5 | 10 |
7.2指针与简单变量 | |||||||
7.3指针与数组 | |||||||
7.4指针与字符串 | |||||||
7.5指针其它应用 | |||||||
8 | 第8章 自定义数据类型 | 8.1结构体 | 1.结构体类型和变量的定义 2.结构体变量的初始化和引用 3.结构体数组的定义和初始化及.结构体数组作为函数参数 4.结构体指针的定义和引用及结构体指针作为函数参数 5.共用体和枚举类型的定义和应用 6.typedef的用法 | 1.初步掌握结构体类型和变量的定义及结构体变量初始化和引用; 2.掌握结构体数组、结构体指针的定义和引用; 3.掌握结构体数组名和结构体指针作为函数参数的用法; 4.了解共用体类型和枚举类型的定义和变量的定义及引用; 5.了解typedef的用法; 6.能够根据实际问题中的信息定义合适的结构体变量。 | 3 | 3 | 6 |
8.2结构体数组 | |||||||
8.3结构体指针 | |||||||
8.4共用体 | |||||||
8.5枚举类型 | |||||||
8.6typedef用法 | |||||||
9 | 第9章 文件 | 9.1文件 | 1.文件的概念 2.文件打开和关闭函数的用法 3.单字符和字符串文件读写函数的用法 4.格式化和数据块文件读写函数的用法 5.文件定位和错误检测函数的用法 | 1.了解文件的概念和文件类型的指针; 2.初步掌握文件打开与关闭函数的功能与用法; 3.了解单个字符读写函数功能和用法; 4.了解字符串读写函数功能和用法; 5.初步掌握格式化读写文件函数的功能和用法; 6.初步掌握数据块读写文件函数的功能和用法; 7.了解文件位置定位和读写错误检测函数的功能和用法。 | 2 | 2 | 4 |
9.2文件打开与关闭 | |||||||
9.3文件读写 | |||||||
9.4文件位置定位和读写错误检测 | |||||||
10 | 总 计 | 32 | 32 | 64 |
四、实施建议
1.教学方法
(1)项目导向,案例驱动教学法
整个课程内容的教学以项目“学生成绩管理系统”为导向,在完成项目的同时学习相关知识点。通过设计实现,让学生掌握编程技术,并对面向过程编程有一个直观和更加感性的认识。在这个过程中,不断将学生的阶段性成果进行展示,让学生来评判优劣,取长补短,引导学生不断对程序进行优化,使学生能够积极参与整个教学过程,让学生建立起面向对象编程的思想,体现“以学生为中心,教师为主导”的教学思想。
(2)任务分解教学法
将完整的项目根据功能划分为若干子项目,再把子项目分解为若干个任务,进行逐步学习。通过任务的完成激发学生的学习兴趣和成就感,同时也可以加快学生学习的进度,从而提高学习的效率。
(3)小组协作教学法
在学习过程中对班级同学分组,每个小组选择一名组长。在课堂学习中以小组为单位组织讨论,在课下小组成员之间可以互帮互学,课程设计以小组为单位进行。组长负责组织、实施和协调工作。在设计过程中定期召开小组会议,进行技术研讨、进度控制。教师全程跟踪指导,直至课程设计结束,教师作为用户身份验收项目,以此重点培养学生的职业素质及职业习惯。
(4)课堂演示教学法
为每一次课内容精心制作了具有动态效果的幻灯片,以及便于对理论知识理解的实例代码,随堂演示,条理清晰,并在开发环境中演示实例代码运行效果。在上新课前,对上节课的知识点进行回顾,讲述本节课的学习目标及重点、难点。知识点讲解过程中,通过幻灯片将知识点和问题逐一引入,充分激发学生学习的积极性。
2.教学手段
本课程在课堂教学中十分注意运用现代的教学理念与教学方法,当然这些理念和方法的运用离不开现代教学技术手段的支持。这些现代教学技术手段的运用不仅促进了教学活动的开展,激发了学生的学习兴趣,同时也提高了教学效果。
(1)多媒体技术手段的应用
课程内容讲授及实践全部在机房进行,一方面组织多媒体教学,另一方面也可以根据授课需要上网查阅资料。授课过程使用极域电子教室教学软件组织教学,该软件集教师演示、学生演示、分组练习、收发作业等诸多功能于一体,非常简单实用。而演示课件由课程组的教师精心制作,图文并茂、信息容量大、形象生动、直观易懂。同时,在讲授过程中,教师可在教师机上演示并执行程序案例,或者一点点输入程序代码,使学生体会写程序的过程,大大提高了教学效果。在机房里,通过多媒体技术手段拉近了学生和自己动手实训之间的距离,便于学生理解和掌握。
(2)在线交流
随着网络的普及,人与人交流的方式已经不受时间和地点的约束了,可以是人人、时时、处处皆可实现。每个年级学生入学后建立一个班级QQ群,把学生组合在一起并共享所有问题及答案。所有学生都可以在QQ上留言,提出自己的观点和问题,从而与其他人进行交流和研讨,也可以把问题直接发送给老师进行解答。这种信息发布和交流方式是学生们比较喜欢和接受的,同时也为老师回答问题提供了很大的方便,能够及时解决学生学习上的困难或困惑。
(3)网络资源
在学习过程中,教师引导学生利用网络收集和整理课程学习所需要的资料,同时一些实训题目除了自己完成之外,还可以参考网上一些比较好的代码,取长补短,提高自己能力。同时,本课程在网上也有一些视频和电子资源,教师为学生提供一些知名网站,方便学生访问和利用。
3.考核评价
课程的考核方式分为两大类:考查和考核。《C语言程序设计》课程属于计算机相关专业的考试课程,课程内容考核采取过程性考核和终结性考核相结合,终结性考核实行“考教分离”制度,过程性考核则是在教学过程中由任课教师根据学生的表现和实训效果得出的综合评价,在期末总评中过程性考核和终结性考核(期末考试)所占比例为4:6。具体考核评价方式如表2所示。
表2 《C语言程序设计》课程内容考核评价方式表
考核模块 | 内容 | 主要考核指标 | 评价主体 | 成绩评定 | ||
过程性考核 | 平时成绩 | 学习 态度 | 出勤情况、组织性、纪律性、作业提交及时性 | 出勤率,上课纪律,作业的及时性和正确性 | 小组评价教师评价 | 10% |
随堂 实训 | 相关学习任务的实现 | 组织纪律,实训准备、实训过程、实训结果 | 学生自评教师评价 | 20% | ||
综合 设计 | 综合任务的实现 | 任务功能的完善性、正确性、代码的规范性 | 教师评价 | 10% | ||
终结性考核 | 期末考试 | 考试重点:基础理论知识、根据程序写运行结果、编写功能函数 | 基础理论的的掌握的全面性、读写代码的能力 | 教师评价 | 60% | |
合 计 | 100% |
建议学生参加C语言二级认证考试,作为对课堂教学和实践的有力补充。
4. 教学环境及设备
本课程在教学过程中深入开展校企合作,充分利用现代教学技术手段,重视多媒体课件和网络技术的应用。校企合作共建多媒体课件和实训项目等;充分利用电子教室、多媒体演示、网站链接、网络共享学习资源、网络通讯等现代教育技术。
本课程的教学资源主要包括教学做一体化教室、多媒体课件、校企合作开展实训以及网络学习资源。具体如下:
教学做一体化教室。该教室每台计算机上均应安装C语言开发工具VC6/TC2和电子教室软件,一台教师机,每个学生一台计算机。教师可以控制学生端,演示软件开发的操作步骤。学生看完后可以立即进行相关练习。达到边学边做、学做互长的效果。该教室可以进行在线测试、随堂小考、提交电子作业等教学活动。
(1)多媒体课件。课程组老师与企业资深软件工程师合作确定课件的内容和组织形式,由浅入深地选取案例或项目任务,在课件中引入项目实际要求,以解决问题的方式导入、展开各个知识点。这样的课件便于学生逐步形成自己对问题的理解,建立问题与知识点间的联系,形成有效解决方案,从而提高自己分析和解决问题的能力。
(2)校企合作共建课程。与山东师创软件等公司合作,在教学过程中,从企业实际项目中选取部分项目任务,根据学习内容合理裁剪后,作为实训项目。实训项目可由企业资深工程师定期辅导,也可由经验丰富的专任教师辅导。
(3)网络学习资源。在学院服务器上开通教师专用空间,放置多媒体课件、优秀学生作业、常见问题、演示案例、实践案例、实训项目、测试题等内容,供学生自学、自评使用。
5. 教师队伍
本课程需要熟悉C语言程序设计的双师型教师5名。课程负责人1名,主讲教师3名,兼职教师1名。其具体要求如下:
(1)获得高校教师资格证(专任教师)
(2)具备计算机专业或相关专业硕士学位
(3)具有C语言开发经验,熟悉软件开发的主要环节
(4)熟悉高等职业教育规律
(5)认真负责、严谨细致的工作态度
6. 教材选用
选用优秀教材作为教学用书和教学参考书,目前选用的授课教材是中国高等院校计算机基础教育课程体系规划教材《C程序设计》(第四版),谭浩强著,清华大学出版社出版。
课程组教师在精品课程建设的基础上,根据授课内容和实训需要精心编写了校本教材《C语言程序设计项目教程》和《C语言程序设计实训指导书》。同时,为拓展学生学习内容,在授课中我们也为学生指定了一些参考资料以帮助学生对内容的理解和掌握。主要参考书有以下几本:
(1)许晓.C语言程序设计实践教程.北京:电子工业出版社
(2)谭浩强.C语言程序设计题解与上机指导.清华大学出版社
(3)国家计算机二级C语言考试相关资料
其中,《C程序设计》和《C语言程序设计题解与上机指导》的编著者具有丰富的教学经验的和编写教材的经验,并针对初学者的特点,精心策划、准确定位,使得本书概念清晰、例题丰富、深入浅出、体系合理、逻辑性强、文字流畅、通俗易懂,是学习C语言的理想教材,每章都有许多经典实例,章后配有练习思考题,引导读者利用本章知识点进行思考和程序设计,有利于提高学生分析解决问题的能力。
7.课程资源的开发与利用
(1)课程文件:课程标准、教学与实践大纲、课程设计指导书、授课计划等。
(2)教材书目:选用教材、参考书目、电子教材等。
(3)电子资源:电子教案、电子课件、视频等。
(4)作业习题
(5)参考资源:经典代码、著名论坛、学生优秀作品等。
执笔人:郭娟
审核人:
制定(修订)日期:2020年2月