不完善的程序
发现错误及不完善之处
完善后的程序
分析
执行程序
找出原因
完善程序
没发现错误及不完善处
最终完善的程序
完成
图1 程序设计知识点的讲解设计示意图
比如:在讲解程序设计的三种基本结构时,选择了设计如图2所示的计算器案例[2][3],表单的外观设计是前面章节已经完成的,现在是要设计事件的代码。根据表单右边的说明,很自然的会想到要在除“=”按钮之外的其它所有命令按钮的单击事件添加代码:
图2 计算器表单外观
This.Parent.Text1.Value=This.Parent.Text1.Value+This.Caption
希望执行表单时单击除“=”按钮之外的其它所有命令按钮时,命令按钮上显示的文字会出现在文本框中,并且连续出现。完成该步骤后执行表单,单击按钮,查看是否达到预期目的。结果发现文本框中只显示出一个半字符,其它的字符看不到,这时请同学们思考为什么?根据前面章节所学知识,同学们不难发现问题出在哪,并解决该问题,只需设置文本框的Format属性的值为T即可。通过分析给出“=”命令按钮的代码:
y=This.Parent.Text1.Value &&获取表达式
y=&y &&利用宏代换求出表达式的值
This.Parent.Text1.Value=STR(y,50,6) &&显示表达式的值
这时“=”命令按钮的代码是一个顺序结构。完成该步骤后执行表单,输入一个式子,单击“=”按钮后出现一个正确结果,这时可请一个同学上来查找计算器功能的不完善之处。让学生自己发现不完善之处。学生会发现,当要输入一个新式子之前,需要将前一次的计算结果清除,再输入,不能自动清除。这时可以告诉同学们,要解这一问题,目前同学们所学知识还不能解决这一问题。这里就给同学们设置了一个“悬念”,这时可以非常自然的引出单分枝的概念,进一步解决这一问题。在这个过程中,学生带着问题听课,效果会更好。然后,再次让学生发现新的不完善之处,当输入一个非法的数学式子时,不能够给用户给相应的提示。这里又给同学们设置一个“悬念”,然后非常自然的引出双分枝的概念,进一步解决这一问题。再次提出如果用户没有输入数学式子就单击了“=”按钮,不能给出正确的提示这一不完善之处,从而引出多分枝的概念。
在讲解函数这个知识点的内容时,在精讲最常用的函数时,除了讲解一个函数的功能外,还选择一到两个函数,精讲自学这个函数的方法,并留出部分函数,让学生自学,有意识的培养学生的自学能力。在讲解表单控件时也采用同样的方法,进一步提高学生的自学能力。
这种教学方式的改变不单单是改变传授知识的教学方式,而且适应了学生的思维方式。从而提高了学生解决实际问题的能力并培养了学生的创造性思维,提升了学生的自主学习能力。
3.4实践教学优化设计
设计了“验证性实验→设计性实验→综合性实验→个性化探索实验”的“逐层递进”式实践教学模式。
“验证性实验”是对变量、函数、表达式、数据表、数据库、SQL查询等基本操作命令进行验证性的实验;通过“验证性实验”的练习有助于学生理解数据库应用技术的基本概念,并掌握数据库的基本操作命令。
“设计性实验”是在“验证性实验”的基础上,采用任务驱动法,对一些实际问题进行分析,并运用面向对象程序设计的方法进行程序设计(包括表单设计、报表设计、菜单设计);通过“设计性实验”的训练有助于学生掌握数据库应用技术的技能,提高学生的学习兴趣。比如:学生在完成了进一步完善功能的计算器表单(增加了括号功能及恢复数学式子的功能)设计后,在实验报告中写到,完成了计算器的设计后有一种成就感,对计算器不再感到神密,对VFP的学习兴趣更浓了。
“综合性实验”是在“设计性实验”的基础上,指定一个应用系统,要求学生对该系统进行需求分析、总体功能设计、数据库设计、各模块程序设计(包括表单设计、报表设计、菜单设计)以及各模块程序的组合与调试运行,并对最终完成的系统进行连编与发布。通过“综合性实验”的训练有助学生了解并掌握运用VFP设计数据库应用系统的全过程。学生在完成“综合性实验”后,在实验报告中写到,完成了系统的连编与发布后,很有成就感,假期有时间一定要设计一个完全属于自主设计的系统。
“个性化探索实验”是在“综合性实验”的基础上,由学生自己结合所学专业或自己的兴趣,自由选择一个应用系统,对该系统进行需求分析、总体功能设计、数据库设计、各模块程序设计(包括表单设计、报表设计、菜单设计)以及各模块程序的组合与调试运行,并对最终完成的系统进行连编与发布。目前,由于时间关系,“个性化探索实验”没有要求所有学生都完成,只是鼓励好同学完成这一实验。
3.5网络教学优化设计
对于要求学生自学的内容,学生除了可以通过教材还可以通过精品课程网站的阶梯课堂来获取相关知识。阶梯课堂内容的组织是采用二级目录树的结构,一级目录是按照章节从前向后,二级目录是对各章细分出多个知识点,便于用户查看。对于每一个知识点,首先给出该知识点的文字描述的内容,如果需要图片,则在文字中混排有相关的图片。根据该知识点的情况,给出一到三个例题,对于每一个例题,有图文混排的文字讲解,对于操作性很强的例题,还给出了使用屏幕捕捉软件录制的案例讲解视频,并提供案例源文件的下载。最后给出针对该知识点的交互式的练习题。
阶梯课堂的这种组织形式,无论是对自学的学生还是正在学习该课程的学生,使用起来都很方便。对于自学的学生,就按目录树由前向后,一个知识点一个知识点的学习就可以了。对于正在学习该课程的学生,可能只关注某个知识点,可以根据目录树快速找到关心的知识点内容。
阶梯课堂包含了教材的全部内容,所以它不但对于自学的学生很有用,对于正在学习该课程的学生拓宽知识面也很有帮助,由于课堂时间有限,有很多知识点课堂是没有时间讲的,这些知识学生都可以从阶梯课堂里获取。
屏幕捕捉软件录制的视频,播放时,学生可以清晰的听到老师讲解的声音,并可看清老师操作的每一个步骤,老师在什么位置单击了鼠标,弹出了什么样的对话框,在什么位置单击了鼠标右键,弹出了什么样的菜单,选择了哪一个菜单项,这些都是听计算机课的重点。学生在播放这种视频时,比听老师讲课有更多的自由,如有一段没听懂可让其重新播放,如某句话没听清可以让其重播放,某一个步骤没看清可以让其重播放,还可以听一段暂停下来,照着做一段,再听一段再做一段。