_程序设计基础_的实施方案与改革实践_何钦铭
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12
“程序设计基础”的实施方案与改革实践
浙江大学 何钦铭
今天我与各位教师交流一门具体课程——“程序设计基础”的教学改革经验和教学实施方案。
1 教学中存在的问题
李未院士讲到“程序设计”是计算机学科的核心课程,吴文虎教授也谈到“程序设计”课程的教学经验,凡是主管这门课程的教师都知道,这门课程很难上,学生在学习过程中很难理解教学内容,掌握起来也有难度。原因有以下几方面:
(1) 教师以自己为中心,重教轻学;
(2) 教学中重理论轻实践,纸上谈兵,忽略了对程序设计能力的培养;
(3) 信息技术在中学的普及存在差异,教学中对学生个性化学习需求关注不够。
因此,大学教师在教学中需要重点解决的两个问题是: (1) 如何提高学生的实际编程能力;
(2) 如何在考虑学生基础差异性的基础上实施教学。
2 浙江大学教学改革与实践
浙江大学从90年代初开始进行该课程的教学改革,目标是:
(1) 培养学生的程序设计能力; (2) 解决学生基础差异的问题。
经过十多年的探索,我们总结出一套经验,目前基本形成了比较完整的教学体系,该课程还于2004年被评为“国家精品课程”。突破口概括起来有两点,第一,课堂
教学中采用案例驱动教学方式;第二,建立较好的教学实践体系。
2.1 改革研究的主要内容
总结十多年的改革,我们研究的主要内容有以下五个方面:
(1) 教学内容的组织方式:以程序设计为主,语言知识为辅。
(2) 在课堂教学中采用“案例引入的主题式教学”方法。 ① 教学内容分主题,以程序设计作为贯穿各主题的主线。
② 各主题的教学过程是:“案例分析-要点讲解”、“自学/上机实践”、“疑难解答”。
(3) 建立实践训练体系:通过2类训练/3种作业,从知识点、内容主线和应用面3个层次上逐步提高编程能力;不同类型的学生在这个体系中都有自己的发展空间。
(4) 强化动手能力的考核方式。
笔试(50%)+(在线编程考试+平时编程练习)(50%) (5) 借用网络支撑环境建设,包括考试系统和网站等。
13
① 支撑实践教学的开展。 ② 鼓励个性化、自主学习。
2.2 突破口一——案例驱动教学
2.2.1 以程序设计为主线,编程案例为驱动
学生在高中阶段接触到计算机并学习了如何使用计算机,到了大学阶段,“程序设计基础”是大一或大二学生深刻理解计算机核心理念和思路的第一门课。在没有计算思维方式的情况下,学生的学习具有一定困难。如果照本宣科,以理论为主,学生无法学习到核心内容,也就对程序设计产生畏难情绪,很难接受。案例教学是很好的方法,通过具体案例让学生理解程序设计的理念和方法。教师在教学中把整个课程分为多个主题,每个主题通过案例引入程序设计的解决方案,其中贯穿讲解程序设计的方法,再引导学生进行上机实践,在上机过程中发现学生的疑难问题,并统一进行讲解。这四部曲周而复始,循环往复,以程序设计为主线,编程案例为驱动,其中程序设计贯穿各主题(纵向),编程应用为驱动(横向),通过实践训练学生的编程能力。
2.2.2 教学案例
如在讲解循环结构时,我们遵循“案例分析-要点讲解”、“自学/上机实践”、“疑难解答”的教学过程,用以下几个具体案例进行案例教学:
(1) 输出华氏摄氏温度转换表 学习的循环结构:for
(2) 用格里高利公式求π的近似值 学习的循环结构:while (3) 统计一个整数的位数 学习的循环结构:do-while (4) 判断素数
学习的循环结构:break /continue (5) 求1! + 2! + …. + 100! 学习的循环结构:嵌套循环
2.3 突破口二——程序设计实践能力的培养
2.3.1 加强实践存在的障碍
在“程序设计基础”课程中,提高学生的实践能力至
关重要,也是最核心的内容,具体就是让学生通过练习达到学习的目的。但在实际操作中,无论是在学生方面还是在教师方面都存在一定困难。
计算机专业学生一般四年内的编程量应在2万行以
上,重点学校学生应在4万行以上。分解到每个学年,第一年至少完成程序5000行以上,本课程应在2000行以上。以每个编程题30行计算,至少需要练习60道编程题。以一个班30名学生计算,教师批改作业量至少在6万条以上,这基本不可能完成。因此本课教师布置的作业量少,而学生无法得到充分锻炼。
第二,学生的计算机基础悬殊太大,作业量大,基础弱的学生完不成任务;作业量少,根本无法满足基础强学生的要求。
因此,学生的差异、教师工作量的差异导致本课的实际训练量不够,学生编程能力的培养和提高就存在严重障碍。
2.3.2 培养与提高学生实践能力的主要途径与方法
为了培养和提高学生的实践能力,我们开展了课程实践教学和课外实践活动(竞赛)。
课程实践教学培养学生的基本实践能力,实践训练体系包括2类训练/3种作业,从知识点、内容主线和应用面3个层次上逐步提高编程能力。
(1) 基本编程训练
包括自测作业(系统,在线判题)和主题作业。这两种训练是平常作业,有近100道题。
(2) 综合编程训练(project)
包括大型作业、小组合作、自己命题、分组答辩。学生小组合作做项目,鼓励学生创新,考核以答辩方式进行。学生在学习过程中找素材,团队合作,提高了自学能力、团队合作能力、探索能力和创新能力。
课外实践活动培养学生的创新实践能力,满足一部分优秀学生的发展需求。
我们采取了多层次、多方位的编程实践训练,采用了多种手段激发学生学习兴趣,学生根据自身水平和兴趣选择适合的训练方式,不同水平的学生在课程中都有锻炼机会。我们还提供了丰富的资源供学生自学,让不同程度的学生有不同的发展空间,鼓励个性化、自主性学习。