教学与教案设计谌卫军.ppt
教学与教案设计,谌卫军清华大学计算机系,内容结构,课程定位教学内容设计教案设计课堂教学我的故事,1.课程定位,了解该课程在课程体系中的定位了解课程的教学对象教学理念与教学目标,1)该课程在课程体系中的定位几年级的课程?前置课程?后继课程?授课学时,实验学时。,“计算机程序设计基础”计算机软件专业的第一门专业基础课,大一上学期;前置课程:无;后继课程:数据结构、操作系统、编译原理等。授课48学时,实验48学时。,2)了解课程的教学对象讲课不是个人秀,而是让学生学到知识,有进步“知己知彼,方能百战不殆”,课程深度,讲课速度?学生构成一般是复杂的,授课对象:软件专业大一新生,5/60,10/60,35/60,10/60,曾经参加过程序设计类比赛(市、省、全国),使用过C语言或其他语言,编写过一些小程序,熟悉电脑操作,熟悉各种应用软件的使用,但没写过程序,没有接触过太多的计算机,结论:大部分同学没有任何编程基础。,3)教学理念和教学目标了解了课程和学生以后,要制订教学理念和教学目标个人观点:能力比知识更重要,任何一门课程,应该是以提高学生的各种能力为目标,而不仅仅是知识的传授。,以“计算机程序设计基础”为例学生善于 读书;学习C语言的语法学生不善于 解决实际的编程问题,课程目标掌握C语言的基本语法让学生掌握程序设计的基本原理和方法,提高他们的能力能力包括:自学能力、算法分析和设计能力、动手实践能力和创新能力。,某年的计算机等级考试试题,考察的是知识,某年微软工程院的面试题,考察的是能力,知识 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.,2.教学内容设计,内容为目标服务教学大纲:讲哪些内容,每部分内容多少学时重点、难点、创新点,1)内容为目标服务根据教学目标来安排教学内容及学时数。以“计算机程序设计基础”为例,目标是提高学生能力,则教学内容要做相应的调整,少讲知识型内容,多讲能力型内容。,language syntax1/3,programming examples 2/3,if(表达式1)语句1;else if(表达式2)语句2;else if(表达式3)语句3;else if(表达式m)语句m;else 语句m+1;如果表达式1为真,执行语句1;否则如果表达式2为真,执行语句2;否则如果表达式3为真,执行语句3;否则,,如果表达式m为真,执行语句m,否则执行语句m+1。,语法.,还是语法.,for(表达式1;表达式2;表达式3)语句块;,一般形式:,在88的棋盘上,放置8个皇后(棋子),使两两之间互不攻击。所谓互不攻击是说任何两个皇后都要满足:(1)不在棋盘的同一行;(2)不在棋盘的同一列;(3)不在棋盘的同一对角线上。因此可以推论出,棋盘共有8行,故至多有8个皇后,即每一行有且仅有一个皇后。这8个皇后中的每一个应该摆放在哪一列上是解该题的任务。,编程案例,2)教学大纲讲什么,讲多久,先讲什么、后讲什么。,3)重点、难点、创新点课程内容一定要主次分明;课程内容要有创新,仍然是服务于教学目标,以“计算机程序设计基础”为例正确的学习方法编程规范程序的调试与测试函数调用的实现过程,3.教案设计,搜集材料融会贯通教案设计的一些要求和技巧,1)搜集材料教案制作要“站在巨人的肩膀上”,要搜集尽可能多的相关课程的资料,如课件、参考书、习题等;资料来源:其他教师、互联网(其他大学的相关课程、互联网作为知识来源),搜集其他大学相关课程的资料构造一个著名大学列表用google搜索每所大学计算机系的主页在系主页中,会有课程列表和描述,寻找感兴趣的课程,再通过链接找到相关课程的主页,美国大学研究生院计算机系排名.txt,国内呢?,直接用google去搜索相关课程,与教材配套的PPT,互联网作为知识来源,维基百科,百度百科,2)融会贯通资料多了是一种幸福,也是一种负担,需要把别人的东西真正变成自己的东西,从N到1;资料的使用方法:原样照搬法、东拼西凑法、加工改进法。,原样照搬法:不可取!没有任何一个课件是完美的,没有理解的课件是无法使用的。,for循环语句for循环的语法for循环使用方法举例for循环编程举例,常用方法1:东拼西凑法,for循环的语法:来源1,for(表达式1;表达式2;表达式3)语句块;,一般形式:,for循环使用方法举例:来源2,/*Frog lifetime*/int days;for(days=155;days 0;days-)work_all_day();sleep_all_night();die_quietly();,for循环编程举例:来源3,德国数学家高斯,在上小学的时候,老师出了一道难题,计算1+2+3+100,高斯很快就在自己的小石板上写出了答案5050,老师非常惊讶,高斯怎么算得这么快呢?原来,高斯不是一个数一个数按部就班地加起出来的,而是发现这些数字有一个规律,一头一尾依次两个数相加,它们的和都是一样的:1+100=101,2+99=101,一直到50+51=101,一共是50个101,所以,他很快就把答案算出来了。请编程解决该问题。,总之,既要精挑细选,又要有机地融和,形成一个完整、和谐的整体。,常用方法2:加工改进法,该问题(案例)是别人提出的,但你觉得不满意,可以对它进行改进,成为一个更好的例子。,例.编程求的近似值当最后一项的绝对值小于等于 时,忽略掉以后项,思路分析,循环语句:循环控制条件循环体;循环控制条件的设计:题目已指明,当最后一项的绝对值小于等于 10-6 时,循环结束;循环体语句的设计:需计算每一项的值,并把它们累加起来。ci=bi/aiai+1=,初值为;bi+1=,初值为。,思路分析(续),ai+2 1,-1*bi 1,任何一种循环语句均可,事件驱动,最好是while或do-while;初始值的设置;先计算、后累加;第一项和最后一项。,具体实现,void 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;/总项数加1 a=a+2.0;/计算下一项的分母 b=-b;/分子变正负号 c=b/a;/计算下一项 pi=4.0*pi;printf(pi=%.6fn,pi);printf(num=%dn,num);,运行结果:pi=3.141591,num=500000,循环控制条件不同,则得到的精度不同:将1e-6变为1e-7:pi=3.141592,num=5000000将1e-6变为1e-5:pi=3.141573,num=50000将1e-6变为1e-4:pi=3.141393,num=5000,3)教案设计:组织结构章节结构清晰,各部分内容之间前后关联、逻辑性强,第1章“程序设计概述”这是一个计算机的时代;计算机功能强大(深蓝、语音识别)软件与程序计算机程序设计计算机语言一个典型的C语言程序,操作系统第3章“存储管理”单道程序存储管理分区存储管理页式存储管理虚拟存储技术Linux的存储管理,4)教案设计:内容安排内容安排的一般模式:对于每一部分内容A,为什么要引入A?A是什么?如何使用A?Why-What-How例如:“循环结构”的讲授,Why循环结构?,程序员失去循环语句,世界将会怎么样?,计算机的执行速度10,000,000行C代码/秒程序员的编程速度12行可用的C代码/每天 编写一个运行时间为1秒的程序,需要多少天?,for(表达式1;表达式2;表达式3)语句块;,一般形式:,What?,How?,int i;for(i=100;i 0;i-=2)printf(“%dn”,i);,Why函数?,提高工作效率,减少重复劳动!,生活中亦如此.,在编程时.,我想从键盘读入一个数据我想生成一个随机数我想计算一个字符串的长度我想知道一个人的星座和属相,用scanf函数!用rand函数!用strlen函数!自己编写函数!,什么是函数?,数学里面的函数:正弦函数、余弦函数、指数函数等等;C语言里面的函数:也称为子程序(subroutine),它是一组程序代码(包括数据和指令),用来完成某个特定的功能。C语言的函数既可以有返回值,也可以无返回值,不像Pascal等语言,严格地区分为函数(function)和过程(procedure)。,函数原型void main()函数调用 函数定义,函数的使用模式,声明该函数,定义一个函数,使用该函数,如何使用函数?,5)教案设计:问题驱动通过问题(例子)来引出内容,通过问题来复习内容,不要干巴巴地直接讲,而是用到什么讲什么。其他专业也应该适用,如法律条例很多,可用具体案件引出。,某参考书的目录,问题描述“编写一个程序,计算所有课程的GPA(Grade Point Average)”4分制(04),一个典型的C语言程序,计算方法 将每门课程的学分乘以学时,累加后除以总学时,得出平均分。,例如:某学生的五门课程的学时和成绩为:A课程4个学时,成绩92(A);B课程3个学时,成绩80(B);C课程2个学时,成绩98(A);D课程6个学时,成绩70(C);E课程3个学时,成绩89(B)。,GPA(4*43*32*46*23*3)(432 63)3.00,为简化问题,假设所有课程成绩均不低于C,且学时数相同。,让用户输入成绩分别为A、B、C的课程数计算总分数(分子)计算总的课程数(分母)计算GPA在屏幕上显示计算结果,基本思路,变量的定义与使用(数据类型、整型、实型)算术运算输入和输出,#include/*编译预处理,文件包含*/void main()/*主函数*/int nA,nB,nC;/*成绩为A、B、C的课程数*/double totalCourses,totalPoints,gpa;printf(你得了多少个A?);scanf(“%d”,6)教案设计:案例教学案例教学是一种重要的教学手段,将讲授内容融入在案例之中。通过案例教学,可以实现具体与抽象、理论与实践的有机结合,从而培养学生分析问题、解决问题的能力。哈佛商学院的经济管理案例。,案例不是简单的小例子,而是精心设计的,具有完整内容的单元,往往覆盖多个知识点。,Page 70,字符数组,定义和引用,例:static char str8=112,114,111,103,114,97,109,0;static char str8=p,r,o,g,r,a,m,0;static char str8=program;static char str=program;,字符串字符串常量,例如:china没有字符串变量,用字符数组来存放字符串字符串以0为结束标志字符数组的初始化,输出一个字符串,main()static char c10=I,a,m,a,b,o,y;int i;for(i=0;i10;i+)printf(%c,ci);printf(n);,运行结果:I am a boy,案例1.凯撒密码,问题背景:史上最早的一种加密系统是由Julius Caesar发明的:若需要加密的字母是字母表中的第N个字母,那么就用第(N+K)个字母来代替它,其中K是某个固定的整数(凯撒使用的是K=3)。通常把空格字符看成是第0个字符,即总共有27个字符。例如,若K=1,则消息“ATTACK AT DAWN”就会被加密为“BUUBDLABUAEBXO”。,问题描述:读入一部词典和加密后的文字,程序将确定所使用的K值,并显示经过解密后的原始内容。原始内容仅包含字母和空格。输入:词典不超过100行,每行是一个大写单词,长度不超过20,词典以#结尾。加密后的文字只有一行,长度不超过250。注:词典不一定包含原文所有单词,且无序。,K=1,2,3,26,逐一进行测试;根据K值,对密文进行解密,得到一行文字,即“单词”序列;将这些“单词”与词典进行比较,统计出有效单词的个数;选择有效单词数最多的。,算法思路,对密文进行解密,得到“单词”序列;单词抽取;在词典中查找特定的单词;有效单词的统计;有效单词个数的最大值。,关键技术,案例要生动有趣,而且要富有挑战性,能吸引人。,案例2.猜数字游戏,问题描述:电脑随机产生一个数字不重复的四位数,由玩家来猜,每猜一次,电脑将显示形如“*A*B”的结果,A代表位置正确数字也正确,B代表数字正确但位置不正确,例如:2A2B。总共有10次机会。,案例设计对于计算机程序设计课程的案例,包括以下内容:问题描述、问题分析、算法设计、编码和测试。以“猜数字游戏”为例,问题描述:电脑随机产生一个数字不重复的四位数,由玩家来猜,每猜一次,电脑将显示形如“*A*B”的结果,A代表位置正确数字也正确,B代表数字正确但位置不正确,例如:2A2B。总共有10次机会。,如何随机产生一个数字不重复的四位数?对于玩家猜测的一个四位数,如何计算相应的A和B的数量?如何实现“总共有十次机会”?,问题分析,在ANSI C中生成随机数1、要产生随机数需要在程序开头加入头文件#include 2、rand()是产生随机数的函数,int rand(void);它可生成0至RAND_MAX的整数,RAND_MAX=0 x7FFF=32767,已知目标数和猜测数,如何计算相应的A和B的数量?,假设目标数为T1 T2 T3 T4,猜测数为G1 G2 G3 G4;一种方法:Ti和Gi相比,相同则A加1;不相同则把Ti和剩余三个猜测位相比,若有相同者,则B加1。,随机产生一个数字不重复的四位数,将它拆分为四位数字T1 T2 T3 T4;让用户输入一个数字不重复的四位数,将它拆分为四位数字G1 G2 G3 G4;计算相应的A和B的数量;如果结果为4A0B,则成功;否则,将猜测的次数加1,如果不超过10,则转第2步;否则猜测失败。,算法思路,编码与测试,略,7)教案设计:启发式教学教学的目的是让学生获得知识、提高能力,而要做到这一点,前提是学生的参与。而学生的参与程度取决于各种教学设计,如启发式教学。启发式教学的最高境界是:教师尚未细述,而学生已经给出了答案。,例1:“存储管理”,如何实现多道存储管理?内存的分配内存的回收内存的管理(数据结构),例2:“变量的定义与使用”,why变量?,茄子750克、肉片50克、葱姜蒜50克、酱油、盐、糖、鸡粉适量,水淀粉适量。,有何共同点?,例3:“数据文件格式解析”,该案例用于复习以下内容二进制、十六进制整数编码实数编码,问题描述:,K线数据(结束时间、开盘价、最高价、最低价、收盘价、成交金额、成交量等)一只股票的所有K线数据保存在同一个文件当中;已知一个数据文件和所有的K线信息,要求解析数据文件的格式(文件头的长度、记录的长度、每个字段的含义)。,文件样例,基本思路:,切分记录。数据文件的大体结构为:文件头、记录1、记录2、记录3、,但文件头的长度不知,记录的长度不知;找到某个记录所对应的交易信息;将两者进行比较,寻找规律。,6F 45 CA 71 48 4E 00 B0 52 4E 00 B0 2A 4E 00 B0 3E 4E 00 B0 9D 90 76 04 5E 0A 39 00 4C BC 16 00BE 09 1F 00 3C 00 00 00,结束时间:2009-9-8下午14:55,开盘20.04,最高20.05,最低20.01收盘20.03,金额7488万,成交量37382手。,9C 45 CA 71 F0 14 00 B0 0E 15 00 B0 E6 14 00 B0 0E 15 00 B0 6A 78 02 95 DF D5 17 00 25 08 0E 00BA CD 09 00 31 00 00 00,结束时间:2009-9-8下午15:00,开盘5.36,最高5.39,最低5.35收盘5.39,金额840万,成交量15621手。,记录样例,谜底揭晓,时间:4个字节,格式:YYMMDDHHMM,年份用2位表示,要减去1990;开盘价、最高价、最低价、收盘价、金额各占4个字节,低28位为有效数字,高4位为指数,大于8则进行除法;小于8则进行乘法;成交量:4个字节,整数;其他:不知,样例,8)教案设计:创新教学方法结合课程的内容和特点,善于发现和总结规律,提出新的、适合于该类课程的教学方法。以“计算机程序设计基础”为例。,问题描述,源代码,算法,1.大量的编程案例,2.编程模式,3.在线训练系统,教学方法,编程模式定义:一些经常使用的算法片段。累加模式:计算一组数据之和;最大值模式:寻找一组数据当中的最大值/最小值。,对其他专业的启发?,在线训练系统即使算法思路正确,也不一定能编写出相应的代码并正确运行。“机考”、“机练”,平时作业和期末考试均为编程题,学生提交的是源代码;为了便于学生自习,开发了一个功能强大的在线训练系统。,9)教案设计:内容要生动有趣听课是一个体力活,时间长了容易疲倦;生动有趣的内容容易留下深刻的印象,且记得牢。,方法一用生活中的例子来类比,把单调抽象的内容变成具体形象的内容。,过山车有何特点?,若干节车厢组成物是人非有序大小相同有名字(风神、飞天凤凰),例1:一维数组的定义和引用,什么是数组?,定义:一组有序、有名、具有相同数据类型 的变量。有名:数组有一个名字,如RollerCoaster;有序:数组元素连续存放,0,1,2,;同类型:长度相同,如int,double,char;变量:数组元素的值可变。,例2:二进制,这是什么?是某种可爱的动物?或仅仅是一些ASCII字符的组合?,在计算机科学中,基本信息单元是bit(位)!每个bit是一个二进制数:0或1;任何信息都可用若干个bit所组成的位流来表示(即编码:整数、实数、字符等);(why bit?)二进制的bit容易用计算机硬件来表示和实现,如电路的接通与断开、电压的高与低,等等;但对于人来说,二进制的位流是一个“梦魇”,因此需要把数据的外在含义和内部实现区别开来,即程序员的角度和计算机的角度。,计算机,程序员,例3:虚拟存储管理,方法二风趣幽默、寓教于乐。,例1:逻辑运算符和逻辑表达式,用逻辑运算符将关系表达式或逻辑量连接起来的式子,就是逻辑表达式。,C 语言提供了 3 种逻辑运算符,包括:(1)&(逻辑与,双目运算符)(2)|(逻辑或,双目运算符)(3)!(逻辑非,单目运算符),a&b,如何用逻辑表达式描述:报纸上的征婚广告,女征男,年龄大于30,有车、有房、年薪大于10万。,int Age,NumOfCars,NumOfHouses;double Salary;if(Age=30)&(NumOfCars 0)&(NumOfHouses 0)&(Salary 100000)arrange a meeting.,例2:函数的参数传递,实参:在调用一个函数时,所指定的参数称为“实际参数”,可以是常量、变量或表达式;形参:在定义一个函数时,所指定的参数称为“形式参数”,必须是一个变量。,调用者,函数,实参,形参,返回值,接收变量,匹配?个数?方向?,void main()int salary,nCars,nHouses;salary=3000;nCars=0;nHouses=0;DayDreaming(salary,nCars,nHouses);printf(%d%d%d,salary,nCars,nHouses);void DayDreaming(int salary,int cars,int houses)salary=salary*3;cars+=2;houses+;,例3:递归函数,从前有座山,山上有座庙,庙里有一个老和尚和一个小和尚,老和尚正在给小和尚讲故事。讲的是什么故事呢?他说,从前,void tell_story()int old_monk,young_monk;tell_story();/递归调用,?,void tell_story()static int old_monk,young_monk;old_monk=old_monk+1;/年龄大了一岁 young_monk=young_monk+1;if(old_monk=60)/递归形式 tell_story();else printf(对不起,已退休!);/递归边界,方法三图片和动画的使用,一图胜千言。,相传在古印度的Bramah庙中,有位僧人整天把三根柱子上的金盘倒来倒去,原来他是想把64个一个比一个小的金盘从一根柱子上移到另一根柱子上去。移动过程中遵守以下规则:每次只允许移动一只盘,且大盘不得落在小盘上。,例:汉诺(Hanoi)塔问题,A,B,C,在A柱上有3只盘子,从小到大分别为1号,2号,3号。怎么移?,2,1,3,分七步!,10)教案设计:一个例子北京市第五届青年教师教学基本功比赛参赛教案获最佳教案奖,文件,4.课堂教学,教师的状态课堂交流辅助工具的使用,1)教师的状态声音响亮,给人的感觉很投入、很有激情适当的表情和肢体动作正确处理好授课内容与PPT之间的关系,2)课堂交流以学生为中心,师生互动、课堂交流充分。交流形式包括:老师提问学生回答,学生提问老师回答,学生提问学生回答。在教案设计和课堂教学安排中,要大量地使用“课堂交流”这一方式。,假设我们有4个二进制位:它所能够表示的最小数为-8;它所能够表示的最大数为 7;假设我们有n个二进制位:它所能够表示的最小数为;它所能够表示的最大数为;,2n-1,2n-11,例如:n 8,取值范围:-128(-27)127(27 1);n16,取值范围:-215 215 1;n32,取值范围:-231 231 1。,例1:有符号二进制数的取值范围,例2:if语句的形式之一,if(表达式)语句1;/语句1,只一句如果表达式为真,执行语句1;否则什么都不做例如:if(x y)printf(“最大值是%d”,x);,if(temperature 38)printf(You have a fever.n);printf(Go see the doctor n);,有点问题吧?,计算绝对值,问题描述:计算x的绝对值|x|,把结果保存在abs变量中。,方案1if(x=0)abs=x;if(x 0)abs=-x;,方案2abs=x;if(x 0)abs=-x;,方案3if(x=0)abs=x;else abs=-x;,哪一个正确?,void main()int homer,*lisa;int*bart3;lisa=,1,12ff6c,12ff70,12ff74,12ff78,12ff7c,430430,bart0(int*),bart1(int*),bart2(int*),lisa(int*),homer(int),0012ff7c,0012ff7c,00430430,0012ff7c,0012ff70,0012ff7c,0012ff74,例3:多级指针,例4:回文问题,问题描述:回文是指具有如下特性的一个短语:该短语顺过来读和反过来读所得到的字母序列是完全相同的。例如:“level”就是一个回文。编写一个程序,输入一个短语,然后判断它是否是回文。,回文判断用首尾比较算法,将字符串的第一个字符与最后一个字符进行比较,第二个字符和倒数第二个字符进行比较,.。若出现不相等的情形,则立即退出。,算法思路,str 0 1 2 3 4 5,level,str0 str4:l l;str1 str3:e e;str2 str2完成!,若字符串长度为N,则最多需要 次比较即可。,N/2,#include#include void main()char str80,flag;int i,j;printf(输入一个字符串:);scanf(%s,str);i=0;j=strlen(str)-1;flag=Y;for(;i j;i+,j-)if(stri!=strj)flag=N;break;if(flag=Y)printf(%s是一个回文n,str);else printf(%s不是一个回文n,str);,如何测试本程序?汉字回文?,测试数据:,输入一个字符串:aa是一个回文,输入一个字符串:aaaa是一个回文,输入一个字符串:abab不是一个回文,输入一个字符串:abaaba是一个回文,输入一个字符串:abbabb不是一个回文,输入一个字符串:abccbaabccba是一个回文,输入一个字符串:abcdefghijklabcdefghijkl不是一个回文,3)辅助工具的使用根据所授课程的特点和内容,选择合适的辅助工具,其目的是以直观、形象的形式展示相应的内容。,分而治之(divide-and-conquer)的算法设计思想:Divide:把问题划分为若干个子问题;Conquer:以同样的方式分别去处理各个子问题;Combine:把各个子问题的处理结果综合起来,形成最终的处理结果。,基于分治策略的递归算法,Visual studio,猜数字游戏,#include#include#include void main()int Target,T1,T2,T3,T4;int Guess,G1,G2,G3,G4;int nA,nB,NumGuess;double d;/随机产生一个数字不重复的四位数 srand(unsigned)time(NULL);while(1)d=(double)rand()/(RAND_MAX+1);Target=1000+(int)(d*9000);/将它拆分为四位数字 T1=Target/1000;T2=(Target/100)%10;T3=(Target/10)%10;T4=Target%10;if(T1!=T2),NumGuess=0;while(1)printf(输入一个不重复的四位数:);scanf(%d,if(nA=4&nB=0).,main,AnnulusArea,printf,scanf,CircleArea,函数调用关系图,void main()double inner,outer,area;printf(请输入内圆的半径和外圆的直径:);scanf(%lf%lf,double AnnulusArea(double inner,double outer)double InnerArea,OuterArea,area;,2.0,5.0,5.我的故事,1)阶段一:初始阶段刚毕业留校,没有任何教学经验,不知如何上课。第一门课:在课件制作上,把教材上的内容照搬上PPT,写了很多字;在上课时照本宣科。结果:学生很不满意。,2)阶段二:学习阶段教师的责任感要求把课讲好,不为别的,只为学生。去参加学校组织的教学培训;去旁听教学名师的课程;去网上搜集国内外同行的优秀讲义并融会贯通。,3)阶段三:提高阶段参加清华大学第二届青年教师教学基本功比赛,获理工科组一等奖;参加北京市第五届青年教师教学基本功比赛,获理工科组一等奖;清华大学“青年教师教学优秀奖”;第十二届霍英东教育基金会高等院校青年教师奖。,总 结,课程定位准确:了解课程、了解学生、先进的教学理念和教学目标教学内容合理:内容安排合理,重点突出,有创新点教案设计优秀:参考借鉴、融会贯通、追求完美课堂教学:充满激情、课堂气氛热烈,最后两句话,与各位同仁共勉为何要做好教学工作?为了不辜负学生的信赖和期待。教学之路,前途光明,道路曲折。,Thanks,