
教学与教案设计_谌卫军.ppt
152页1教学与教案设计 谌卫军 清华大学计算机系 2内容结构1. 课程定位2. 教学内容设计3. 教案设计4. 课堂教学5. 我的故事31. 课程定位 ö了解该课程在课程体系中的定位ö了解课程的教学对象ö教学理念与教学目标41)该课程在课程体系中的定位几年级的课程?前置课程?后继课程?授课学时,实验学时5“计算机程序设计基础”计算机软件专业的第一门专业基础课 ,大一上学期;前置课程:无;后继课程:数据结构、操作系统、编 译原理等授课48学时,实验48学时62)了解课程的教学对象讲课不是个人秀,而是让学生学到知 识,有进步“知己知彼,方能百战不殆”,课程深 度,讲课速度?学生构成一般是复杂的7授课对象:软件专业大一新生5/6010/6035/6010/60曾经参加过 程序设计类 比赛(市、 省、全国)使用过C语 言或其他 语言,编 写过一些 小程序熟悉电脑操 作,熟悉各 种应用软件 的使用,但 没写过程序没有接触 过太多的 计算机 结论:大部结论:大部 分同学没有分同学没有 任何编程基任何编程基 础83)教学理念和教学目标了解了课程和学生以后,要制订教 学理念和教学目标个人观点:能力比知识更重要,任 何一门课程,应该是以提高学生的 各种能力为目标,而不仅仅是知识 的传授。
9以“计算机程序设计基础”为例学生善于ü 读书;ü 学习C语言的语法学生不善于ü 解决实际的编程问题10课程目标掌握C语言的基本语法让学生掌握程序设计的基本原理和方 法,提高他们的能力能力包括:自学能力、算法分析和设 计能力、动手实践能力和创新能力111int x, y, t;x = y = 3; t = ++x || ++y;y的值为: (A)0 (B)4 (C)3 (D)12一个字符串,有小写字 母、大写字母和空格, 编写一个程序,把小写 字母放在最前,空格放 中间,大写字母放最后 ,且小写大写字母原来 的顺序不能乱 某年的计算机等级考试 试题,考察的是知识某年微软工程院的面试题, 考察的是能力知识知识 vs vs 能力能力In general, we hope that after the course, the students will pass the programming test of a leading software company such as Microsoft, if they go to a job interview. 122. 教学内容设计 ö内容为目标服务ö教学大纲:讲哪些内容,每部分 内容多少学时ö重点、难点、创新点131)内容为目标服务根据教学目标来安排教学内容及学 时数。
以“计算机程序设计基础”为例,目 标是提高学生能力,则教学内容要 做相应的调整,少讲知识型内容, 多讲能力型内容14language syntax1/3programming examples2/315if (if (表达式表达式1) 1) 语句语句1 1;;else if (else if (表达式表达式2) 2) 语句语句2 2;;else if (else if (表达式表达式3) 3) 语句语句3 3;;…………else if ( else if (表达式表达式m) m) 语句语句m m;;else else 语句语句m+1m+1;;如果表达式1为真,执行语句1;否则如果表达式2为真,执 行语句2;否则如果表达式3为真,执行语句3;否则,…, 如果表达式m为真,执行语句m,否则执行语句m+1语法.16还是语法.for (for (表达式表达式1 1;; 表达式表达式2 2;; 表达式表达式3)3){ {语句块;语句块;} }一般形式:一般形式: 真假结束循环17在8×8的棋盘上,放置8个皇后(棋子),使两两之 间互不攻击所谓互不攻击是说任何两个皇后都要 满足:(1)不在棋盘的同一行; (2)不在棋盘的同一列; (3)不在棋盘的同一对角线上。
因此可以推论出,棋盘共有8行,故至多有8个皇后, 即每一行有且仅有一个皇后这8个皇后中的每一个 应该摆放在哪一列上是解该题的任务编程案例182)教学大纲讲什么,讲多久,先讲什么、后讲 什么19章节名称主要内容学时第1章程序设计概述3第2章数据类型与表达式 数据类型、常量、变量、运算符和表达式等3第3章顺序结构程序设计C语句、数据的输入与输出2第4章选择结构程序设计关系运算符和表达式、逻辑运算符和表达式、 if语句、switch语句2第5章循环控制for语句、while语句、do-while语句、 break和continue语句、程序举例5第6章数组一维数组、二维数组、字符数组、程序举例3第7章函数函数使用、变量作用范围、函数调用实现过程3第8章指针指针的基本概念、指针变量、指针与数组、指 针与字符串8第9章结构体结构体、结构体数组与指针、链表等6第10章算法引论算法分析、查找算法、排序算法、递推算法、 基于分治和回溯策略的递归算法9第11章编程规范与程序调试3203)重点、难点、创新点课程内容一定要主次分明;课程内容要有创新,仍然是服务于 教学目标21以“计算机程序设计基础”为例正确的学习方法编程规范程序的调试与测试函数调用的实现过程223. 教案设计 ö搜集材料ö融会贯通ö教案设计的一些要求和技巧231)搜集材料教案制作要“站在巨人的肩膀上”, 要搜集尽可能多的相关课程的资料 ,如课件、参考书、习题等;资料来源:其他教师、互联网(其 他大学的相关课程、互联网作为知 识来源)24搜集其他大学相关课程的资料构造一个著名大学列表用google搜索每所大学计算机系的 主页在系主页中,会有课程列表和描述 ,寻找感兴趣的课程,再通过链接 找到相关课程的主页25美国大学研究生院计算机系排名.txt国内呢?2627282930直接用google去搜索相关课程 3132与教材配 套的PPT33互联网作为知识来源维基 百科34百度 百科352)融会贯通资料多了是一种幸福,也是一种负 担,需要把别人的东西真正变成自 己的东西,从N到1;资料的使用方法:原样照搬法、东 拼西凑法、加工改进法。
36原样照搬法:不可取!没有任何一个课件是完美的, 没有理解的课件是无法使用的 37öfor循环语句for循环的语法for循环使用方法举例for循环编程举例常用方法1:东拼西凑法38for循环的语法:来源1for (for (表达式表达式1 1;; 表达式表达式2 2;; 表达式表达式3)3){ {语句块;语句块;} }一般形式: 真假结束循环39for循环使用方法举例:来源2/* Frog lifetime */ int days; for(days = 155; days 0; days--) { work_all_day(); sleep_all_night(); } die_quietly();40for循环编程举例:来源3德国数学家高斯,在上小学的时候,老师出了一道难题,计算1+2+3+…… + 100,高斯很快就在自己的小石板上写出了答案5050,老师非常惊讶,高斯怎么算得这么快呢?原来,高斯不是一个数一个数按部就班地加起出来的,而是发现这些数字有一个规律,一头一尾依次两个数相加,它们的和都 是一样的:1+100=101,2+99=101,一直到50+51=101,一共是50个101,所以,他很快就把答案算出来了。
请编程解决该问题41总之,既要精挑细选,又要有 机地融和,形成一个完整、和 谐的整体42常用方法2:加工改进法该问题(案例)是别人提出的,但你 觉得不满意,可以对它进行改进,成 为一个更好的例子43例例. . 编程求编程求π π的近似值的近似值当最后一项的绝对值小于等于当最后一项的绝对值小于等于 时,忽略掉以后项时,忽略掉以后项44思路分析451. 循环语句:循环控制条件+循环体;2. 循环控制条件的设计:题目已指明,当最后 一项的绝对值小于等于 10-6 时,循环结束;3. 循环体语句的设计:需计算每一项的值,并 把它们累加起来ci = bi / ai ai+1= ,初值为 ; bi+1 = ,初值为 思路分析(续)ai + 2 1 -1 * bi 1461. 任何一种循环语句均可,事件驱动 ,最好是while或do-while;2. 初始值的设置;3. 先计算、后累加;4. 第一项和最后一项具体实现47void main( ) {int num = 0; // 总项数double pi = 0, a = 1.0, b = 1.0, c = 1.0; // a为分母, b为分子while( fabs(c) 1e-6 ){pi = pi + c;// 累加每一项num = num + 1;// 总项数加1a = a + 2.0;// 计算下一项的分母b = -b;// 分子变正负号c = b / a;// 计算下一项}pi = 4.0 * pi; printf(“pi = %.6f\n“, pi);printf(“num = %d\n“, num);}48运行结果:运行结果: pi = 3.141591pi = 3.141591,, num = 500000num = 500000循环控制条件不同,则得到的精度不同:循环控制条件不同,则得到的精度不同:ØØ将将1e-61e-6变为变为1e-71e-7::pi = 3.141592pi = 3.141592,, num = 5000000num = 5000000ØØ将将1e-61e-6变为变为1e-51e-5::pi = 3.141573pi = 3.141573,, num = 50000num = 50000ØØ将将1e-61e-6变为变为1e-41e-4::pi = 3.141393pi = 3.141393,, num = 5000num = 5000493)教案设计:组织结构章节结构清晰,各部分内容之间前 后关联、逻辑性强50第1章“程序设计概述”这是一个计算机的时代;计算机功能强大(深蓝、语音识别 )软件与程序计算机程序设计计算机语言一个典型的C语言程序51操作系统第3章“存储管理”单道程序存储管理分区存储管理页式存储管理虚拟存储技术Linux的存储管理524)教案设计:内容安排内容安排的一般模式:对于每一部分 内容A,为什么要引入A?A是什么 ?如何使用A?Why-What-How例如:“循环结构”的讲授53Why循环结构?程序员失去循环语句,世界将会怎么样?54计算机的执行速度–10,000,000行C代码/秒• 程序员的编程速度–12行可用的C代码/每天 • 编写一个运行时间为1秒的程序,需要 多少天?55for (for (表达式表达式1 1;; 表达式表达式2 2;; 表达式表达式3)3){ {语句块;语句块;} }一般形式: 真假结束循环What?56How?int i;for(i = 100; i 0; i -= 2) {printf(“%d\n”, i);}57Why函数?提高工作效率,减少重复劳动!生活中亦如此. 5859在编程时.我想从键盘读入一个数据我想生成一个随机数我想计算一个字符串的长度我想知道一个人的星座和属相用scanf函数!用rand函数!用strlen函数!自己编写函数! 60什么是函数?Ø 数学里面的函数:正弦函数、余弦函数、指数函数 等等;Ø C语言里面的函数:也称为子程序(subroutine) ,它是一组程序代码(包括数据和指令),用来完 成某个特定的功能。
Ø C语言的函数既可以有返回值,也可以无返回值, 不像Pascal等语言,严格地区分为函数(function )和过程(procedure)61函数原型void main 。
