CodeLab与计算机程序教学(二)

时间:2022-09-04 08:57:28

CodeLab与计算机程序教学(二)

编者按:在2008年11月15日召开的“第四届全国计算机教育论坛”上,一位从大洋彼岸远道而来的特殊嘉宾为我们带来了西方的教育教学理念,引起了普遍关注。他就是美国纽约市立大学布鲁克林学院(CUNY)计算机与信息系教授David M. Arnow。David教授是计算机科学课程改革的主要倡导者,主要研究领域包括实验性分布式计算软件和计算机科学教育。在这次论坛上,他详细介绍了自己开发的基于Web的交互式程序设计编程语言学习系统――CodeLab,与各位老师交流了自己的教学经验和体会,赢得与会者的好评。本刊记者(以下简称记)在会议期间采访了David教授(以下简称D),就计算机教育教学等内容进行了深度访谈,以资国内同行了解和借鉴。

记:您能简单介绍一下CodeLab教学系统吗?

D:CodeLab是基于网络平台使用的软件编程教学和学习工具。它的核心是一组设计独特、完全互动、简单易操作、超过200套的编程练习库,包含编程教学提纲。CodeLab提供练习的自动校验功能,给予学生及时的知识巩固或诊断性的回馈意见。

那些采用CodeLab给学生布置作业的教师发现学生在作业中犯的错误减少了,在考试和项目中的成绩提高了,编程的自信心增强了。此外,CodeLab还拥有教师管理工具,让教师轻而易举地将练习融入教学中。

通过网络平台界面,教师可以组织教学提纲,精选、制定和定制练习题,还可以指定作业提交到期日。最

后,系统会跟踪所有学生的作业,而教师可以通过基于网络或基于电子邮件的系统轻松掌控学生学习能力表现的所有记录,这个记录可以和现有的评分体系结合到一起。

它的使用流程图如图1所示:

图1 CodeLab使用流程图

记:CodeLab系统是如何工作的?

D:CodeLab系统的工作状态可以从3个方面加以阐释:

1. 对教师和学生

教师可以轻而易举地将CodeLab结合到自己目前的教案中:给开发人员发一封电子邮件,教师可在24小时内获得账户;作为课程管理员,拖拽式地为学生选择练习题,并在日历上点击设置到期日。学生注册CodeLab时,系统会自动为教师生成学生分数册,它替教师记录学生们的所有练习活动。

学生到CodeLab网站填写一个简单的注册表(用户名、密码、姓名),就可以立即使用CodeLab了。学生姓名会在学生注册时自动加入分数册,每个学生开始使用时可获得10个“免费赠送”的练习。

2. 主动地学习

“学习源于实践”是CodeLab 的座右铭。CodeLab 向学生提供完全积极有效的学习经验,学生通过编写代码解决问题,是基于网络的给予学生真实编程实践的学习系统。

3. 即时有效、量体裁衣的反馈和评估

CodeLab自动测试和反馈评估每个学生提交的编程代码,它可以查找出学生的编程逻辑和语法错误的功能是其他任何计算机编程课程的学习工具所不能企及的。轻按鼠标,学生可以在数秒内马上看到对答题的评估,而不用等待指导老师的邮件回复或到隔壁老师办公室去确认更正他们的答题错误。CodeLab 系统可以自动证明学生已编写的正确代码数量,完成CodeLab的所有题目,学生可以得到编写数百行正确代码的见证。CodeLab的评估确认是客观的,不受人为错误评判的影响。

记:Codelab适合在什么情况下使用?

D:CodeLab适合新的编程语言导论课程。它可以作为教师授课和实验室或编程项目之间的一座桥梁。学生在计算机房或编程项目中使用CodeLab,练习所学章节内容,立刻巩固所学知识,减少对于基本编程语法运用的困惑,避免在这方面花费大量的时间。CodeLab非但没有给学生增添作业负担,反而减少了学生在项目上花费的时间;而教师花费在练习题目上的时间明显减少,有了更多时间教授学生软件设计的思路、编程组织的方法和算法。

另外,由于这是一个在线学习软件,学生可以在有互联网接入的任何地点任何时间使用。每一课题中的练习由简到难,学生可以从简单的练习开始,从中获得自信和技能,然后逐步完成更复杂的练习,并最终在学生的课堂编程项目中得到运用。CodeLab还可以有效巩固学生编程词汇,帮助学生在阅读指令的时候更加仔细并严格地根据提示编程。学生会很快认识到计算机编程语言是很严谨的,必须用一种严格一致/严谨的风格编写程序。

记:您认为教学中各种教学资源(教师、学生、Codelab等)的关系是什么,能否用图表示出来?

D:简单地说,我的课程模式如图2所示。

以教师为主导,以教材为主线,教师为学生分配任务,是在CodeLab上做练习、阅读教材,还是听教师授课,引领学生学习教材内容。在布鲁克林学院,我的班上有超过一半的学生是新移民,他们是非英语母语者,来自亚洲、东欧和南美等国家,他们喜欢用CodeLab 帮助他们更好地消化用英语授课的讲座及英语课本内容。

我的课堂教学流程如图3所示。

我要求学生在课下阅读教材,在CodeLab上做练习,做项目等。上课开始后进行小测验,一般是基于CodeLab的练习,检测学生的预习和阅读情况,时间是2~5分钟。在此基础上,教师基于学生的预习进行讲座授课,然后让学生在实验室做大型的项目,给学生实践的机会,我应用程序实例帮助他们完成项目。最后在课上阅读教材,回顾所学知识,引导学生对下一节的阅读内容做一个预习,并给学生布置CodeLab上的作业,要求学生课下完成。

学生在实验室里不能完成整个项目,但是他们可以着手准备,我帮助他们做准备工作。课堂外,学生们完成项目实习、我布置的阅读和CodeLab练习(与阅读内容相关的部分)。我会告诉学生阅读的精髓,如果有一些关键点和难点,我会提前实践并指出。这样他们看到预习内容后,就会满怀希望地阅读内容,我再据此做课堂讲座。学生阅读,我来引导他们学习,这是一个前进式的循序渐进的流程。(未完待续)

上一篇:说故事聊通识谈高教 下一篇:“网络存储技术”课程教学探讨与实践