《程序设计与计算思维(基于C语言)教案.docx》由会员分享,可在线阅读,更多相关《程序设计与计算思维(基于C语言)教案.docx(37页珍藏版)》请在三一办公上搜索。
1、教案中国科学技术大学教案使用说明一、本教案适用于本科生“计算机程序设计”课程。二、配合教材程序设计与计算思维:基于C语言使用。三、教案中“习题课”的授课顺序可视具体情况调整。教学方法说明常用教学方法说明如下:1.讲授法讲授法是教师通过简明、生动的口头语言向学生传授知识、发展学生智力的方法。它是通过叙述、描绘、解释、推论来传递信息、传授知识、阐明概念、论证定律和公式,引导学生分析和认识问题。运用讲授法的基本要求是:(I)讲授既要重视内容的科学性和思想性,同时又要应尽可能的与学生的认知基础发生联系。(2)讲授应注意培养学生的学科思维。(3)讲授应具有启发性。(4)讲授要讲究语言艺术。语言要生动形象
2、、富有感染力,清晰、准确、简练,条理清楚、通俗易懂,尽可能音量、语速要适度,语调要抑扬顿挫,适应学生的心理节奏。讲授法的优点是教师容易控制教学进程,能够使学生在较短时间内获得大量系统的科学知识。但如果运用不好,学生学习的主动性、积极性不易发挥,就会出现教师满堂灌、学生被动听的局面。2 .讨论法讨论法是在教师的指导下,学生以全班或小组为单位,围绕教材的中心问题,各抒己见,通过讨论或辩论活动,获得知识或巩固知识的一种教学方法。优点在于,由于全体学生都参加活动,可以培养合作精神,激发学生的学习兴趣,提高学生学习的独立性。一般在高年级学生或成人教学中采用。运用讨论法的基本要求是:(I)讨论的问题要具有
3、吸引力。讨论前教师应提出讨论题和讨论的具体要求,指导学生收集阅读有关资料或进行调查研究,认真写好发言提纲。(2)讨论时,要善于启发引导学生自由发表意见。讨论要围绕中心,联系实际,让每个学生都有发言机会。(3)讨论结束时,教师应进行小结,概括讨论的情况,使学生获得正确的观点和系统的知识。3 .直观演示法演示法是教师在课堂上通过展示各种实物、直观教具或进行示范性实验,让学生通过观察获得感性认识的教学方法。是一种辅助性教学方法,要和讲授法、谈话法等教学方法结合使用。运用演示法的基本要求是:(1)目的要明确。(2)现象要明显且容易观察。3)尽量排除次要因素或减小次要因素的影响。4 .练习法练习法是学生
4、在教师的指导下巩固知识、运用知识、形成技能技巧的方法。在教学中,练习法被各科教学广泛采用。练习一般可分为以下几种:(1)语言的练习。包括口头语言和书面语言的练习,旨在培养学生的表达能力。(2)解答问题的练习。包括口头和书面解答问题的练习,旨在培养学生运用知识解决问题的能力。(3)实际操作的练习。旨在形成操作技能,在技术性学科中占重要地位。5 .读书指导法读书指导法是教师指导学生通过阅读教科书或参考书,以获得知识、巩固知识、培养学生自学能力的一种方法。6 .任务驱动法教师给学生布置探窕性的学习任务,学生查阅资料,对知识体系进行整理,再选出代表进行讲解,最后由教师进行总结。任务驱动教学法可以以小组
5、为单位进行,也可以以个人为单位组织进行,它要求教师布置任务要具体,其他学生要极积提问,以达到共同学习的目的。任务驱动教学法可以让学生在完成“任务”的过程中,培养分析问题、解决问题的能力,培养学生独立探索及合作精神。7 .参观教学法组织或指导学习到育种试验地进行实地观察、调查、研究和学习,从而获得新知识或巩固已学知识的教学方法。参观教学法一般由校外实训教师指导和讲解,要求学生围绕参观内容收集有关资料,质疑问难,做好记录,参观结束后,整理参观笔记,写出书面参观报告,将感性认识升华为理性知识。参观教学法可使学生巩固己学的理论知识,掌握最新的前延知识。参观教学法主要应用于各种植物品种改良技术的工作程序
6、、后代选择方法和最新研究进展等方面内容的教学。参观教学法可以分为:“准备性参观、并行性参观、总结性参观”。8 .现场教学法是以现场为中心,以现场实物为对象,以学生活动为主体的教学方法。本课程现场教学在校内外实训基地进行,主要应用于育种试验布局规划、试验设计、作物性状的观察记载方法等项目的教学。9 .自主学习法为了充分拓展学生的视野,培养学生的学习习惯和自主学习能力,锻炼学生的综合素质,通常给学生留思考题或对遇到一些生产问题,让学生利用网络资源自主学习的方式寻找答案,提出解决问题的措施,然后提出讨论评价。自主学习法主要应用于课程拓展内容的教学,如项目教学未涉及的小作物具体的育种方法和特点,组织学
7、生H主学习,按照论文的形式并撰写学习小论文,交由老师评价。锻炼学生提出问题、解决问题和科技写作能力。中国科学技术大学本科课程教学大纲课程名称计算机程序设计(八)英文名称ComputerProgramming(八)学时学分理论学时60实验学时40学分4理企课20Wl学分实验40Wj学分开课单位信息科学技术学院面向对象全校一年级本科生预修课程无开课教师姓名职称年龄所在单位王雷副教授50信息学院自动化系联系电话及Email63601509,wangl课程属性通修口学科群口专业口方向口全校公选课体育选项口俱乐部口英语拓展课口自由选修课口其他口春夏秋冬口选修必修中文口英文口双语百分制口五分制口二分制闭卷
8、口开卷口论文口其他新课号:理论数学大纲大纲撰写者王雷一、教学H标才租基本要求(500字以内)本课程从零基础开始培养学生的编程实找能力、自主学习能力与计算思维能力。通过本课程的学习,学生应理解与掌握C语言的常用语法元索、结构化程序设计方法、模块化程序谀计方法、基本的系统级编程方法:能利用结构化方法编写基础功能模块、利用模块化方法解汰红杂的问题、花F指针进行系统级编程以提高计算效率;在编程实践中锻炼培养计算思维与白主学习能力,为后续学习计芽机类课程以及将来从事与计以相关的科学研究与技术开发工作打下坚实的基础.二、课程简介中文:(500字以内)本课程以迭代的方式进行内容组织与教学实践.苜先概述预备知
9、识,然后通过简单的示例快速引入最常用的C语古语法元案:在介绍C语言主要成分的基础上,阐述计算思难中抽象与自动化的思更在结构化程序设计中的应用:在详细介绍函数等概念的址础上,阐述计算思维中问题分解的思想以及接口、递归等概念在模块化程序设计中的应用:呆后以指针为核心,闸逑在内存中对数组、函数、结构体、文件箸进行操作时最底层的机制.以及程序运行与数据处理时的本原理,揭示计算思维在程序设计中应用的现实基础,本课程注Hi)II识体系的建立、原理本质的解析、学习过程的考核,以期实现对学生媒合能力索质的培养.英文,(100o字符以内)Thiscourseiterativelyorganizescontent
10、andteachingpractice,firstsummarizesthepreparatoryknowledge,andthenquicklyintroducesthemostcommonlyusedClanguagegrammarelementsthroughsimpleexamples;onthebasisofintroducingthemaincomponentsofClanguage,explainstheapplicationofabstractandautomatedideasincomputationalthinkinginstructuredprogramming;onth
11、ebasisofdetailingconceptssuchasfunctions,expoundstheideaofproblemdecompositionincomputationalthinkingandtheapplicationofconceptssuchasinterfaceandrecursioninmodularprogramming;andfinallytakesthepointerasthere.Explainsthelowest-levelmechanismsforoperatingonarrays,functions,structures,fileszetc.inmemo
12、ry,aswellasthebasicprinciplesofprogramoperationanddataprocessing,andrevealstherealisticbasisfortheapplicationofmputationalthinkinginprogramming.Thiscoursepaysattentiontotheestablishmentoftheknowledgesystem,theanalysisoftheessenceoftheprinciple,andtheassessmentofthelearningprocess,inordertorealizethe
13、cultivationofstudents*comprehensiveabilityandquality.三、教学重点、难点(500字以内)教学重点:内存与地址、发达式、程序结构、函数的输入输出、模块化设计、数组与指针、基于指针的内存操作。教学难点:递归与算法、模块化设计、计经思维的应用、指针与贷表.四、教材名称及主要参考书教材:(128字以内)计算机程序设计:从C语言到计算思雄:,电子工业出版社,2022.9参考书:(250字以内)1.Kernighan,B.W.,Ritchie,D.M.S1徐宝文,李志译.C程序设语力(第2版),北京:机械工业出版社,2004.2,计算机程序设计(C语百版
14、,费伯琪等编著,机械工业出版社,2011.3. CPrimerPlUS(第6版),StePhenPrata著.妾佑译,人民由口电出版社,2016.4. C程序设计(第五版),源浩强著,清华大学出版社,2017五、课程章节由要内容及学时分配第一章预备知识4学时)1.1 引古1.2 本书的组统架构1.3 计算与计算思维1.4 谙方与程序设计1.5 小结与能力要求笫:章程序设计入门(4学时)2.1 引言2.2 数据与运算2.3 输出与输入2.4 条件判断与选择2.5 循环与数与2.6 C程序规范2.7 小结与能力要求第三章结构化程序设计(16学时)3.1 引言3.2 基本数据类型3.3 表达式与运算
15、规则3.4 控制语句与堪本算法3.5 数殂与批域数据处理3.6 结构体1.j复杂信息处理3.7 结构化与计算思维实践3.8 小结与能力要求第四章模块化程序设计(12学时)4.1 引才4.2 模块化思想4.3 函数4.4 模块化设计与实现4.5 模块化与计算思维实践4.6 小结与能力要求笫五章系统级编程初探(16学时)5.1 引言5.2 指针的基本概急与用法5.3 函数中的指针5.4 指针用于内存操作5.5 小结与能力要求六、基层教学组织意见课程组长/本科专业教学负竞人签字:年月B七、学院意见教学院长签字:年月日实骁教学大纲大纲撰写者王雷、刘勇实验项目数10是否上机是口否一、课程简介(史Ii立实
16、验课程此处需填写,结合理论课的实脸此处无需填写)中文;(500字以内)英文:(1000字符以内)二、实验教学目标与基本要求(500字以内)配合理论课教学.以应用为目标,以问题为导向,从简单到复杂逐步训练学生的程序设计能力,引导学生使用计算思维方法进行问他分析与求艇.三、实验项目内容及学时分配序号实验项目内容学时实验内容类型1程序设计入n练习4蕤证型2结构化程序设计4设计型3结构化程序设计4设计型4结构化程序设计4设计型5模块化程序设计(14设计型6模块化程序设计4设计型7系统级埔程练习(14设计型8系统级编程练习4综合型9综合设计实脸(14琮合型10综合设计实验三3),即从第3个数开始,每个数
17、等于前2个数之和。2 .钱币问题(贪心法)假设1元、2元、5元、10元、20元、50元、100元的纸币分别有c,cl,c2,c3,c4,c5,c6张.现在婆用这些钱来支付K元,至少要用多少张纸币?用贪心法的思想,每一步尽可能用面值大的纸币。【课后作业】自习作业:1 .通过网络搜索,学习本讲中各种算法的更多实例。2 .编写并运行所有的例题,尝试进一步优化例题中的算法。线上学习:预习胫课中下节的内容并完成其中的练习。【小结】1、递推法、穷举法、贪心法是编程时常用的三种基本算法。2、我们学习C语言的过程就如同算法的迭代过程,需要多练多思考。【教学后记】本堂课向学生介绍了程序设计时常用的三种基本郛法一
18、一递推法、穷举法、贪心法,通过举例和引导让学生逐步掌握这些算法的精颌,并体会利用计算机解题的成就感。第10讲数组与批量数据处理【教学目的】使学生逐步掌握数组的定义、初始化和各类用法。【教学重点】一维数组和二维数组的定义、初始化和引用0【教学难点】二维数组和字符数组的应用。【课时计划】2课时【教学方法】讲授法、举例法、类比法【教学过程】课前回顾:、纪习前面讲授的三种基本结构,尤其是循环结构。二、幕课学习情况新谡内容:一、3.5.1维数组3. 5.1.1数组与地址4. 5.1.2一维数组的应用5. 5.1.3从文件读取数据二、3.5.2多维数组6. 5.2.1定义与初始化7. 5.2.2二维数组的
19、应用:矩阵运算三、3.5.3字符数组8. 5.3.1定义与初始化9. 5.3.2字符数组的应用【板书设计】1 .绘制一维数组元素在内存中的存储形式和对应的地址偏移量。2 .绘制二维数组元素在内存中的存储形式和对应的地址偏移量。【课后作业】1 .编程实现求向量的内积:向员a=aba2,ar)和b=bizb2,blJ的内积定义为ab=alb+a2b2+anbft2 .上机编程实现系统库字符出函数的功能,包括申拷贝、申比较、求中长等.【小结】1.维数组和二维数组是生活中经常遇到的问题模型所需要采用的构造数据类型.2、采用数组解决问题时,从数据的输入、处理再到输出,都需要采用循环结构来编程。【教学后记
20、】采用数组来批改处理数据,需要我们更多地思考数据在内存中如何存放更合理?采用怎样的算法处理数据更高效?第11讲结构体与复杂信息处理【教学目的】使学生逐步掌握结构体的定义、初始化和各类用法,并进一步能熟练使用结构体数组。【教学重点】结构体和结构体数组的定义、初始化和引用。【教学难点】结构体数组的应用。【课时计划】2课时【教学方法】讲授法、举例法、类比法【教学过程】课前问做:一、更习上一讲讲授的数组的概念及文件基本操作。二、慕课学习情况新课内容:一、3.6.I结构体的基本用法3.6. 1.1定义结构体类型3.7. 1.2定义结构体变量3.8. 1.3初始化结构体变量3.9. 1.4结构体的操作3.
21、10. 1.5简单的结构体应用二、3.6.2结构体数组三、3.6.3结构体嵌套四、3.6.4向文件写数据【板书设计】1 .绘制结构体变员在内存中的存储形式和对应的地址偏移量:。2 .绘制结构体数组在内存中的存储形式和对应的地址偏移量.【课后作业】设计并编程实现一个小型的图书信息管理系统。【小结】1、结构体数组是生活中经常遇到的问题模里一一二维表格/数据库表格所需要采用的构造数据类型,它能帮我们处理纪杂的大量信息。2、采用结构体数组解决问题时,数据的输入、输出操作一定要精细化,以防数据输入钳误导致无法使用。更实用的是采用文件操作为结构体数组提供输入/输出。【教学后记】结构体数组是面向数据库应用编
22、程里非常克要的一环,因此相关基础一定要打牢。编程时一定要培养耐心、细心和功无不克的决心。第12讲习题课(1)【教学目的】巩固前三章的内容。【教学重点】作业、实物题的解决思路以及常见错误的分析。【教学难点】无。【课时计划】2课时【教学方法】基于课件进行讲解、在IDE中演示程序、分组讨论法【教学过程】授课内容:一、讲解前三章实验中的常见问题。二、举例说明如何从个简单的具体问题出发,抽象、描述算法与编程。【课堂练习】3 .算法描述:提出一个问题,学生描述弗法,卜课前提交。4 .讨论与本课堂专业相关的个问题的解决思路【课后作业】提交作业:完成课堂练习所描述问题的程序设计。【教学后记】助教应在每次实验中
23、及时记录遇到的问题,整理成素材,供习题课使用.第13讲结构化与计算思维实践(教学目的】让学生了解结构化编程在不同场先中的应用。【教学重点】如何针对问题定义数据、选择算法。【教学难点】问题的模型化。【课时计划】2课时【教学方法】基于课件进行讲解、在IDE中演示程序【教学过程】课前回顾:上一讲中讲授的结构体概念及结构体数组的应用。新课内容:、3.7.1问题分解与抽彖3.7.1.1问题描述与功能分解3.7.1.2数据与流程设计二、3.7.2编码实现三、3.7.3测试与完善3.7.3.1运行测试3.7.3.2异常处理四、3.7.4拓展与总结五、3.8小结与能力要求【课常练习】程序填空:较为复杂的结构化
24、编程程序填空。【课后作业】1 .编写并运行例题,尝试修改例题:2 .继续完善上一讲的课后作业小型图书信息管理系统。【小结】1 .问题千变万化,需要锻炼抽象能力以建立合适的模型.2 .针对模型设计合适的算法,以使程序获得自动化的能力。【教学后记】1 .结构化方法适合小规模的程序设计,但问题本身可以比较兔杂.2.程序设计最核心的问即依然是建模,所以需要先掌握足够的专业知识,才能更好地进行程序设计。第四章模块化程序设计第14讲模块化与函数【教学目的】模块化设计、函数的定义与简单调用方法。【教学重点】函数定义.【教学难点】函数的调用才是真正的代码执行。【课时计划】2课时【教学方法】讲授法、直观演示法、
25、自主学习法【教学过程】课前回顾:一、上节课内容新课内容:一、4.1引言二、4.2模块化思想三、4.2.1精简程序代码四、4.2.2改善程序结构五、4.2.3增强程序的通用性六、4.3函数七、4.3.1函数定义八、4.3.1.1定义函数头九、4.3.1.2实现函数体【课堂练习】1单选题:人脸识别C+实现2单选题:返回值类型3单选翅:main的特殊性4主观题:编写函数求最大【课后】自习作业:1.新教材P98-103书面提交作业:1 .求两个想数的最大公约数和最小公倍数,要求编写两个函数,一个函数求最大公约数,另一个函数根据求出的最大公约数求最小公倍数。在主函数中由键盘输入两个整数后调用这两个函数,
26、并输出结果。2 .编写函数,求一个数的立方根,若立方根不是整数,则返回其整数部分.要求:主函数从键盘输入一个数,调用此函数,输出此数的立方根的整数部分.【小结】1 .C程序由函数组成.2 .函数是C程序模块化的基础。3 .C语言里模块即函数;函数是一堆指令的集合,完成特定功能,是C程序的基本单位4 .函数的定义都是并列的并且顺序任意5 .函数的定义I序与程序运行时函数的执行顺序无关6,函数需先定义后使用(指逻辑上)7 .函数的定义分为两部分:定义函数头和实现函数体(即函数实现)8 .函数的功能通过(被)调用体现出来,函数不能直接执行自身9 .函数调用实现:流程控制转移和相互间的数据传递:10
27、.调用者称为主调函数,被调用者称为被调函数:11 .函数调用具体解析,返回值,参数传递等及函数声明后续介绍【教学后记】通过具体的函数实现及调用实例,楮助同学们理解并掌握模块化程序设计的方法。准确认识函数作为模块,在程序中承担的作用及意义。在后续小节的学习中进一步深刻的掌握相关内容.第15讲函数调用与声明【教学目的】深入理解并掌握函数参数传递方式和使用方法,理解函数声明的重要性并掌握其正确用法。【教学重点】形参与实参、函数返回值、函数声明。【教学难点】参数为地址时的函数调用原理。【课时计划】2课时【教学方法】讲授法、直观演示法、练习法【教学过程】课前回顾:一、上节课内容新课内容:一、4.3.2函
28、数调用二、43.2.1形参与实参:.、43.2.2值传递机制四、4.323传递地址值五.、4.324函数返回值六、4.3.3函数原型声明七、4.3.4深入理解函数八、4.3.4.1多参数与多函数九、43.4.2数组作函数参数【课堂练习】程序填空:与形参、实参有关的程序填空练习。【课堂板书】1 .简略的调用函数组成程序示意图,体现函数间的关系,接口的意义尤其是在调用中参数的特点等。2 .函数调用的实质运行过程示意图,不做硬性要求掌握。3 .画出内存中形参和实参的传值的示意图4 .画出函数中传址的形参访问实参数组的过程示意图【小结】1 .形参只是个形式,重点是数据类型与次序。2 .实参是真正被处理
29、的对象.数量与次序应与形参一致,数据类型应与形参尽可能一致,当不一致时要注意可能的类型转换问即。3 .地址作为实参时,在函数中的操作直接在该地址对应的空间中进行,无需通过返回值反馈结果。【课后作业】1 .编写函数,其功能是在float型一维数组中查找最大值并返回到调用程序。2 .编写函数,其功能是输入的个字符串按反序存放,在主函数中输入和输出字符串.3 .写一个函数,聘两个字符串连接。在主函数中输入字符串并输出字符串连接结果。【教学后记】由于本章节内容安排在“指针”章节之前,所以在向学生讲解地址、内存的间接访问的问题时有一定难度。结合图示和例题,让学生对参数传址过程建立起比较形象的概念,也有利于以后对指针的理解。第16讲自顶向下设计【教学目的】理解函数的意义,掌握自顶向下设计方法.【教学建点】如何编写功能完善、结构合理的函数,【教学难点】无。【课时计划】2课时【教学方法】讲授法、直观演示法、讨论法、练习法【教学过程】课前回顾:一、上节课内容新课内容: