《C语言程序设计》说课稿
尊敬的各位专家好!
我说课的课程是《C语言程序设计》。
我将从以下六个方面进行述说:课程简介、课程设计、教学内容、教材、教法和学法、教学过程。其中整个课程的整体设计包含在教学内容中,单元设计包含在教学过程中。
1、说课程简介:
首先关注本课程的基本情况,C语言具有高级语言和汇编语言的共同特点,因此多用来编写大型系统软件及应用软件。应用领域也是相当广泛:工业系统设计、单片机应用设计、嵌入式系统设计、各类应用程序开发、数据库开发、Internet应用等。
课程性质:本课程是我院非计算机类专业的一门重要专业基础能力课程,它以《计算机应用基础》的学习为基础,主要训练学生计算机编程基本思想和基本技能,为后续的应用性课程学习打好基础。本课程的总学时为72学时,4个学分。
适用专业:电子信息工程技术、应用电子技术、电气自动化技术、通信技术、计算机多媒体技术、多媒体设计与制作、汽车电子技术、汽车技术服务与营销。
本课程于2007年确定为院级精品课程、2010年确定为院级网络课程
2、说课程设计:包括课程定位、设计理念、设计思路、设计方法、课程目标
(1)课程定位(本课程的先行、后续课程):
本课是专业基础能力课程,前续课程是《计算机应用基础》,后续课程有《单片机应用技术》、《可编程控制技术》、《动态网页设计》等,特别是《单片机应用技术》现多为C语言版,因此学好《C语言程序设计》这门课至关重要。
(2)设计理念:
以程序设计方法为主线、以培养能力和提高兴趣为目标,兴趣是学习的重要动力,在程序设计中感受快乐。我们程序设计者都有这种体会:输入程序,输出快乐!
(3)设计方法:
基于项目的工作过程设计——用一个教学项目贯穿于整个教学过程,体现了软件项目开发的整体性、连贯性;同时,又根据项目开发的先后步骤,将教学项目划分为11个任务,每个任务又由一个或几个训练子任务来完成,体现问题的分而治之的解决方法。教学过程以任务来驱动——在教学方法上从具体工作任务入手,通过具体的训练内容来完成任务,教学过程是能力训练过程,所有教学内容都不是从教学生知识点出发,而是将知识点融入到相应的任务中,让学生通过实际的训练任务练就相应的能力。
(4)设计思路:
开放性——以C语言编程能力的需求为依据,聘请校外专家审核教学计划,针对高职学生特点设计项目。
职业性——以程序员职业能力为导向,以典型工作过程为依据,按照国际行业标准选取教学内容,依托“校园歌手计分系统” 设计教学情境。
实践性——以工作过程为主线、以项目为载体,实施“项目(任务)驱动、案例教学、边讲边练”教学模式。对课程内容进行重构和重组,充分体现了高职“理论够用,实践为重”的原则。
(5)课程目标:
通过本课程的教学,学生能掌握C语言程序设计的基础知识和基本技能,树立结构化程序设计的基本思想,养成良好的编程习惯,培养严谨务实的分析问题与解决问题能力,并为后续的专业应用性课程和系统开发课程的学习打下良好的基础。
3、说教学内容:包括选取依据、选取原则、选取方案、整体设计、内容组织、表现形式
(1)选取依据:
根据课程目标,选取课程内容,选取依据是:以提高学生程序设计能力为核心;以应用性项目开发为主线;以C语言语法和结构为基础;以工作任务(学习任务)为载体。
(2)选取原则:
生产性——依据职业岗位能力和程序员岗位群的工作任务所需的知识、能力、素质要求选取项目,以生活真实项目为载体;
相关性——尽量选取与学生学习、生活相关的项目;
发展性——依据当前主流技术和今后发展趋势,为后续课程和学生持续发展服务;
实施性——教学活动易于展开,可实施性强
(3)选取方案 :
以实现课程目标为依据,设计综合性的学习任务(项目)。项目的开发实施能将课程的全部内容具体化,并具备一定的综合性和可扩展性。再对这一综合性的学习任务进行研究,分析出完成该学习任务所需要的知识点,再将任务细化分成若干个子任务,每一个子任务要能包含一个完整的工作过程,子任务之间有相对的独立性,同时遵循知识的连续性。
(4)整体设计:
依据上述选取依据、原则及方案,本课程设计的综合性项目为“校园歌手大赛计分系统的设计”,课程结束时会在学习该课程的班级范围内举行一个真实的“歌手大赛”,使用学生设计的计分系统。在研究和分析完成该项目所需要的知识结构的基础上,将课程内容进行重构,细分为了11个相对独立的子任务。每个任务模块包含了达到其实际能力所要完成的训练任务,其对应的知识点、能力目标、教学重难点及学时分配,均体现在课程教学的整体设计之中。
(5)内容组织:
在组织课程内容时改变程序设计类课程一贯采用的“语法”为主线,改以工作任务为载体,以工作过程(即程序设计的过程)为依据,打破现有的教材体系,整合、序化教学内容,科学设计学习性工作任务。每个子任务相对独立,任务的设计涵盖了教学内容的所有知识点,并遵循了知识的连续性和扩展性。
各任务对应学时及重难点分配具体如表中所示。
任务一、 计分系统界面设计
|
4学时
|
|
任务二、 计算一名选手得分
|
10学时
|
|
任务三、 找出最高分和最低分
|
8学时
|
|
任务四、 计算一名选手最后得分
|
10学时
|
重点
|
任务五、 选手得分排序
|
8学时
|
重点
|
任务六、 N名选手得分计算及排序
|
6学时
|
重点及难点
|
任务七、 设计简易评分系统
|
6学时
|
|
任务八、 处理选手姓名
|
6学时
|
难点
|
任务九、 设计完整评分系统
|
4学时
|
|
任务十、 利用指针设计评分系统
|
6学时
|
难点
|
任务十一、保存和查询评分系统数据
|
4学时
|
|
内容组织对比
学科式课程体系 基本工作过程的课程体系
C语言基础
|
数据类型及运算符
|
if及switch语句
|
for及while循环
|
一维数组
|
二维数组
|
函数调用
|
字符数组
|
结构体与共用体
|
指针
|
文件
|
计分系统界面设计
|
计算一名选手得分
|
找出最高分和最低分
|
计算一名选手最后得分
|
选手得分排序
|
N名选手得分计算及排序
|
设计简易评分系统
|
处理选手姓名
|
设计完整评分系统
|
利用指针设计评分系统
|
保存和查询评分系统数据
|
(6)表现形式:
主要包括立体化、电子化及网络化的教学资源包。表现形式是多种多样的:有教案和课件、教学标准、整体设计、单元设计、实训指导书、实训任务书、项目案例库及习题库等。
4、说教材:包括教材选用、参考资料、学习论坛
(1)教材选用:本课程选用由高俊文主编的《C/C++程序设计》。教材按照依据教育部考试中心发布的《全国计算机等级考试考试大纲》编写而成,结构清晰,通俗易懂,应用大量的程序实例,强化程序设计能力,注重实际应用能力的培养。每章还设计了实训指导,以供读者上机演练。由于本课程以工作过程为导向,打破了教材的原有体系,为方便学生学习,与企业共同编写活页讲义,已完成初稿,准备在此基础上对教材进行修订。本课程教学团队正在编写任务驱动的项目式教材,准备九月份投入使用
(2)参考资料:
谭浩强著.C程序设计教材及学习辅导(第四版).清华大学出版社
吕凤翥编著.C语言程序设计 清华大学出版社
(3)C语言学习论坛:
http://bbs.bccn.net/forum-5-1.html
5、说教法与学法:包括学情分析、教学方法、教学手段、学法分析、评价方式
(1)学情分析:
我系开设此课相关专业的学生实际情况:与《计算机基础》在同一学期授课,因此他们的基础就是入校前在高中或中职学过的一些计算机基础知识。另外,要想学好《C语言程序设计》,数学基础和逻辑分析能力还有待加强。如何解决这些问题呢?运用多种教学方式和教学手段,把以学生为中心教学法或行动导向教学法落实到教学中。
(2)教学方法:
根据课程内容和学生特点,强调和突出学生是教学的主体,知识和技能是学生主动学习获得的,而不是被动地由老师教出来的。在学习的过程中,老师更多地是起指导和帮助的作用。
课堂上一方在采用传统的教学方法,如讲授法、演示法、练习法、实验法等,另一方面积极开展分组教学法、角色扮演法、案例教学法、情景教学法等,另外考虑到学生个体的差异性,有意识地实施分层次教学法,充分融合了以学生为中心教学法(SCL)和德国职业教育——行动导向法。
教学方法实例:以冒泡排序法为例,我们采用情景教学法,目的是进行数据的排序。我们请五个同学上前来进行演示,即按高矮进行排队,通过调整这五个同学的顺序,从而达到理解冒泡排序法的算法思路。这种教学方法极大地调动了学生的学习积极性,激发了学生的学习兴趣。
(3)教学手段:
每个任务都制作了PPT课件,对于教学中的重点和难点部分,采用多媒体技术辅助教学(例如重点部分用音效来强调,引起学生的注意力,难点的部分用动画来展示,提高了直观性和趣味性,便于学生理解和掌握。)
利用网络课程,精品课程等现代化信息技术实施自主学习,体现终身教学理念。本课程有院级的网络课程,为学生提供了丰富的网络资源,包括课程的教学标准、授课计划、电子课件、实训项目。网站还提供了在线答疑、在线作业。除此之外,还提供更多的相关网络资源链接,学生课余自主学习资源非常丰富。
(4)学法分析:
学习指导——主要有观察发现法、自主探究法、合作交流法、模拟实践法
学习目标——以“打印九九乘法表”为例:通过课堂学习,提高解决问题的能力,使理论与实际有机结合,提高学生的实际应用能力(应用阶段);情景导入、生活素材展示,引导学生探究学习,培养学生思维能力(探究阶段);设疑问答,感受知识点;小组合作,开阔思路;明确了解教学目标,认识多重循环在整个编程过程中的重要性(明了阶段)。
(5)评价方式:
采用形成性评价方式,从学习态度、学习过程和学习结果三个方面来综合评价,特别注意“实践考核”是以分小组的方式做一个小型的综合项目为任务,考核方法采用学生互评与教师评价相结合。
经过具体的教学实践,我们取得了很好的教学效果,学生给予了很高的评价,由教务处组织的学生评教结果显示,课程组的所有教师近3年的评价平均成绩在90分以上。我们对采用任务驱动教学模式前后的教学效果进行了对比分析,发现采用“任务驱动”教学模式的学生,程序设计能力,解决实际问题的能力普遍提高,不再对编写程序有畏难情绪,同时语法的掌握水平也没有降低。我们将对“任务驱动”教学模式继续进行完善,把好的经验推广到其它课程的教学中,解决还存在的一些不足,锐意进取,让教学质量进一步提高。
课程整体采用项目制以及任务驱动教学模式后,学生的程序设计能力明显得到提高。在“校园歌手大赛”活动中,学生使用了自己用C语言程序设计的“计分系统”,学以致用,学生们学到了知识,提高了能力,体会到了程序设计带来的快乐。
6、教学过程:包括教学过程分解、课堂教学步骤、
(1)教学过程分解:
首先确定任务描述,以任务为导向,进行工作过程分析,程序设计的过程包括数据分析、设计算法、编写程序、调试程序、评估整理。重点和难点主要集中在数据分析和算法设计上,强调程序设计的方法和编程思路,重点培养学生的分析问题和解决问题的能力。知识点的引入和学习是贯穿在工作过程中的。
(2)课堂教学步骤:
六步法(任务导入→任务分析→示范→学生模仿→纠错重做→总结提高)
(3)单元设计实例:
首先是进行任务描述,明确教学目标。然后是具体的教学设计。在教学中采用“任务驱动”的教学模式,以任务的完成为导向,以工作过程为主线。在教学中自始至终以学生为主体,引导学生按照工作过程,即程序设计的一般过程来一步步地完成任务。在这个过程中,会遇到一些问题,教师及时地给予指导,需要新的知识来解决的,教师重点讲解。
以任务五、选手得分排序为例,第一步是分析数据类型和存储结构,前面学习过用变量来存储和计算一名选手的得分,这个任务中有多个选手的得分,如果用很多个变量来解决就会非常麻烦。学生提出有没有简单一些的方法?这时引入新的知识点,也是这个单元的教学重点,即数组,用来解决一组相同类型的数据的问题。任务驱动导致新知识的学习,学生就知道了所学的知识是用来解决什么问题的。
整个任务安排如下图表。
单元设计教学过程
上课前,明确本次课的教学目标
一、应知:
1、掌握数组的定义与构成方法;
2、理解数组的存储结构。
二、应会:
1、会定义一个数组并会进行赋值;
2、会使用循环对数组进行输入和输出。
明确本次课的重点、难点
一、重点:
1、数组的定义及输入输出
2、排序的算法 ;
二、难点:排序的算法的理解
本单元设计任务的教学方法
一、情景教学法:对于较难理解的排序算法思想(冒泡法或选择法),主要采用情景教学法,启发学生积极参与、扮演、讨论,寻找解决途径和问题的答案的方法。
二、“讲、学、练”相结合:对于完成整个任务所需要的相关知识点,采用演示、讲解和练习等方式。使学生在编程实践中加深对概念的理解,熟练掌握相关的技术细节。
教学准备(如教具、学具的准备等)
本单元设计任务的具体教学安排(教案)
一、导入新课(启发提问 )
二、列举现实生活的实例(用到排序的场景)
提问:1、二个或三个变量排序是怎么实现的?
2、四个或以上变量排序又该如何实现?
三、复习程序编写的一般步骤(提问)
四、先简介两种排序算法的基本思想,再分别请两组(每组5名)同学上台情景扮演,加深理解所学知识
五、学生自己尝试着编写程序。包括定义数组和变量、给数组进行输入,排序算法描述、输出数组。
六、上述过程中遇到问题,老师给予协助。
七、 学生继续完善程序的编写及调试,一部分先完成的学生协助老师辅导其它同学,做到互帮互带,课堂氛围良好。
八、小结本次任务的重难点及存在的问题,从而进行思维拓展。
相关阅读推荐:
› 用C语言程序设计完成数学序列求和说课
› C语言程序设计说课稿 数组
› C语言程序设计课程说课稿