多元学与教融合的多核程序设计课程教学模式*
2013-04-29于方
于方
摘 要: 为了应对新的信息技术环境下计算机程序设计教学体系的变化,研究了多核程序设计课程的教学模式。提出将多元学与教思想融入多核程序设计教学过程中的观点,从理论和实践两个教学环节分别研究了具体的教学模式和教学评价体系,实践证明,该模式具有较强的可操作性,取得了较好的教学效果。
关键词: 多核程序设计; 多元学与教思想; 教学模式; 教学评价体系
中图分类号:G433 文献标志码:A 文章编号:1006-8228(2013)06-69-03
Multi-core programming design course teaching mode integrated with multiple studying and teaching
Yu Fang
(Baotou Teachers College, Information Science and Technology College, Inner Mongolia, Baotou, Neimenggu 014030, China)
Abstract: In order to deal with the change of computer programming design teaching system in new information technology environment, multi-core programming design course teaching mode is discussed. An idea of integrating with multiple studying and teaching thought in teaching process is introduced. The concrete teaching mode and teaching evaluation system are studied from theory and practice. The scheme is more practical and operable, and it gets better teaching effects.
Key words: multi-core programming design; multiple studying and teaching thought; teaching mode; teaching evaluation system
0 引言
多核平台的普及推进了多核程序设计课程在高校计算机专业的开设,但由于多核计算技术自身的特点,使得此课程的教学方式应区别于传统的程序设计类课程,因此有必要研究新型的教学模式以适应新的程序设计教学需要。多元学与教思想是指在教学过程中,为实现教学目标、完成教学任务而采取的教与学相互作用的活动方式的总称,其内涵可从教学内容的呈现方式(组织策略)、教学模式(传递策略)和教学活动的方式(管理策略)三个维度上加以描述[1]。本文借鉴多元学与教思想,研究了多核程序设计理论课程的教学呈现方式、实验课程的教学活动方式和基于该教学模式的课程评价体系,完整地提出了一套适合多核程序设计课程的教学模式。该模式具有较强的可操作性,为计算机程序设计类课程的教学模式改革和教学大纲修订提供了新的参考和思路。
1 基于交互与启发的理论课教学呈现方式
多核程序设计是一门综合性要求较高的程序设计课程,能够实现对其他计算机专业课程和知识体系的综合与提升,帮助学生建立系统的、完整的专业理论体系,培养学生的系统设计能力、综合应用能力和动手实践能力等,开拓学生的专业学术视野[2,3]。教学目标是结合多核编程工具,以多线程并行程序设计为主,通过编程作业和课程设计培养学生的多核编程能力。考虑到多核课程的教学要求和培养目标,本文设计了交互式与启发式相结合的教学模式来呈现理论课教学内容。
1.1 基于多媒体的交互式教学
以往传统的程序设计课程多数是在普通教室中完成,即便是在多媒体教室中授课,也只是教师使用多媒体手段讲授课程,学生被动听讲,不能实时参与到教学过程中来。多核程序设计课程的一个明显特点是程序运行环境必须是多核平台,所以单核微机上无法演示多核编程的过程和效果。因此,本文建议将多核程序设计课程的理论教学基于多媒体环境的多核平台下实施。课程安排在多核微机实验室(不同于实验上机),教师在理论知识讲解过程中,应用多媒体授课系统进行讲授,教师可以控制学生的学习过程,保证学生的学习注意力集中;在需要进行程序设计方面的演示和调试时,教师下放学习权限,让学生自己操作多核微机,实时验证刚学习过的知识。此外,在教学过程中不仅教师讲授,还要穿插课堂讨论与交流,提高学生的学习兴趣,以此来培养学生的自学能力和交流能力,使学生在互动中思考,集思广益,获得更多的知识。这样将理论和实践实时结合,教师和学生频繁互动,能够加深学生的学习体会、增强学习记忆,同时营造了积极主动的学习气氛,有助于学生掌握所学内容。需要注意的是,教师须合理安排理论学习和实际操作的时间,以保证课堂教学内容的正常完成。
1.2 基于案例的启发式教学
多核程序设计课程有一个重要特点是很多案例需要在多核平台下进行验证,这对于大部分学生来说是既陌生又好奇的。陌生的是:多核平台是如何架构的?好奇的是:如何在这样的平台上使用多个核心进行并行编程?本文采取案例式教学方法激发学生的探究式学习兴趣、提高学生的学习层次,以下给出具体案例的选取方法。
⑴ 选取典型性、综合性和示范性好的实例,使学生体会到利用所学多核程序设计知识所能取得的实际效果。如采用多核并行程序设计方法求解大规模矩阵乘法(500阶以上)、最短路径(1000个结点以上)求解等基本科学计算问题时,通过界面友好的程序性能评测系统,可直观地看到计算时间的大量减少和计算效率的大幅提高,体会到多个核心同时并行工作的过程和效果,这会极大地激发学生的学习兴趣,增强探究式学习动力,为以后的学习树立信心。
⑵ 阅读精选的经典多核程序设计案例,使学生理解并掌握经典、规范的多核程序设计方法和技巧,将其融入到学生的个体学习过程中。同时,可适当要求学生对精选案例程序进行修改、完善和调优。这有助于增强学生的编程能力,并逐渐形成融合正规化和个性化编程风格的良好编程习惯,提高学生的程序设计创新能力。
在教学过程中,采用基于案例的启发式教学有以下几个好处:一是缩短程序设计学习周期,提高学习效率,增强学生学习程序设计的创新能力;二是通过对经典案例的学习、修改和完善,培养学生的程序集成能力,对今后基于构件进行软件开发打下坚实基础;三是通过分析经典案例对应用问题中重点、难点的解决之道,提高学生独立分析问题、解决问题的能力,有助于积累有益的编程经验,提高并达到自主进行应用程序设计开发的目的[4]。
2 基于任务驱动的实验课教学模式
程序设计类课程的实验教学是整门课程的核心,也是对理论教学效果的惟一检验途径,因此实验教学方法是否得当至关重要。传统程序设计课程的实验教学方法基本是针对所学语法规则和算法思想进行程序设计,即大多是验证性实验教学,不仅实验目标单一,学生操作兴趣不大,而且实验中没有将所学程序设计方法和生活实际应用问题联系起来,对于设计性和综合性要求高的实验根本达不到目标要求,实验教学效果不佳。多核程序设计课程有其自身的特殊性和优势性,学生对于如何利用多个CPU以及能够达到什么样的程序效果非常期待,可以充分考虑学生学习的兴趣点来进行实验教学设计,即基于任务驱动教学法进行实践教学,提高教学质量。
基于任务驱动的实践教学是指围绕教学目标把实验教学任务划分成多个具体的子任务,以子任务之间的关联为线索,通过实验成果展示和评价学习任务等手段促进实验教学任务高效完成。以验证性实验和综合性实验为例,具体做法如下。
⑴ 设计小型综合性实验任务来进行验证性实践教学。
此部分实验一般针对所学程序设计语言的语法规则等进行验证。基于任务驱动的教学法摒弃单一、固定的模式,即不安排若干个小实验分别验证某个语法的使用是否正确,而是精心设计一个可以综合考量使用熟练程度的实验任务来验证其正确性,同时能够检验学生综合运用程序设计语言的能力,避免断章取义、片面理解语法语义规则。例如,在学习Windows下使用MPI进行多核程序设计时,并不只是单纯验证MPI每一个函数的使用方法,而是设计一个综合小实验来考核掌握程度,即使用多个常用MPI函数实现某种具体的功能。实验功能的选择应考虑实用性强、可视性好等特点,使学生在着手做实验之初就有明确的目标和较强的学习欲望,避免了实验低效无趣,有助于高效地完成实验教学目标,取得良好的实验效果。
⑵ 综合性实验任务以子任务划分、依据任务之间关联推进、成果展示评价来完成并考核。
对于较大规模的综合性实验任务,依据实验要求和层次将其划分为若干个子任务,每个阶段任务的完成设定相应的评价指标。例如,可以设定程序需要达到的基本性能指标,或者对不同组的学生所设计的程序进行性能比较,目标明确有助于安排合理的实验计划、保证适当的实验进度,这样能够使学生充分调动自身的学习能力和团队协作能力,为最终达到较好的实验目标而进行实践练习,目的性强、自主性高,自然实践教学效果也好。以实现矩阵乘法并行算法设计求解为例,实验任务可进行如下划分:首先了解各类矩阵乘并行算法思想;然后比较各类算法的时间、效率,得到较优算法选择;接着根据较优算法思想设计并实现多核平台下的矩阵乘并行算法;最后选择不同的矩阵规模测试运行时间效率,同时与其他组同学设计的算法进行比较,得到算法优劣分析和改进方法。
笔者曾在辽宁师范大学计信学院担任三年级计算机专业本科学生计算机体系结构(并行计算)课程的实验指导,在教学过程中采用任务驱动方法进行实验教学,分别设定了不同的实验任务并分阶段完成。从实际教学效果来看,该方法使实践教学内容条理清晰、层次分明,便于学生更集中地掌握局部教学内容;有效激发了学生的学习热情和互相之间协作的团队精神,较好的完成了实验教学目标。
3 多元学与教模式下的教学评价体系
多核程序设计这门课程的理论考核具有较高的难度、广度和深度等综合性要求,实验课程的教学目标要求学生熟悉理解多核架构,并且具备多核平台上进行多核多线程并行程序设计的能力。在融入多元学与教的教学模式下,其评价体系也应进行相应改变,下面就教学目标和教学评价进行深入讨论。
⑴ 教学目标考核
多核程序设计主要的教学内容包括:并行计算与多核构架基本知识、基于Linux和Windows平台的多线程并行程序设计方法;基于多核处理器的并行算法分析、设计与实现;多核软件性能分析工具及使用方法等。学生学完多核程序设计这门课后要掌握多核的硬件体系结构、并行编程模型、并行程序设计等重要知识点,教学目标的考核重点体现在学生的算法设计和并行编程方面。算法设计是学生编程能力高低的主要标志,学生应学会逐步分析问题、数学建模和数据结构设计,养成良好的算法设计习惯,掌握并行算法设计的常用方法和基本策略,并按照这些步骤和思路进行设计;编程能力体现在学生对所学语言的语法和规则的掌握程度、对解决应用问题算法思想的分析能力、对算法表示方式的理解和程序设计语言语句的实际应用能力。此外,还要具备一定的程序调试能力,能读懂错误提示,掌握常用的调试方法,快速、及时地纠正错误。
⑵ 教学评价方法
对程序设计类课程的评价一般是定量考核,通常采用笔试题考核理论知识掌握程度,上机题测试实践动手能力程度,通过给予一定的分数来获得对教学效果的评价。多核程序设计课程的综合性特点决定学生平时的学习和积累作用对学习效果的影响很大,教学效果的考核不是几个理论问题或者几个编程问题就可以准确考量的。
因此,本文提出除定量考核外,还对教学过程进行定性标准衡量,即考核学生的阅读程序能力、算法设计能力、编写代码能力和程序调试能力。主要从以下几方面进行重点考察:多核程序设计语言编译系统环境的安装、设置和使用;多线程程序的编辑、编译、运行、调试和改错;经典案例代码的阅读、分析、画出系统流程图等;完成基本的验证性实验,通过现场设计、编程、运行和调试,得出正确结果;完成综合性、实用性实验项目的分析、设计、编程与运行,验证结果的可用性程度。这些能力的考核体现在日常的理论教学和实验教学过程中,教师可以根据考核能力的不同方面来设定不同的标准和层级,通过层次比较法确认每个学生的学习水平和能力,从而对后续的学习和实践给出正确指导,这也是多元学与教的一种具体体现,用于更好地促进教学进程。
4 结束语
随着多核技术的发展与普及,目前以及未来大多数的软件开发都将以多核为基础硬件平台。多核程序设计课程的开设对于培养适应时代变化的计算机类人才至关重要,研究多核程序设计的教学体系对于计算机专业教学大纲修改、执行,以及为社会培养适应性强的高质量人才有重要意义。本文结合“学与教”方式基本类型与日常教学的对应关系[5],将多元学与教方式融入了日常的多核程序设计教学过程中,通过对课堂教学和实验教学模式的研究,探讨了具体的教学设计过程、教学评价策略等内容,既考虑了教学活动的教育性与严肃性,又兼顾了学习活动的生动性与主动性,充分挖掘了教师的教学潜能,同时积极调动了学生的学习兴趣。多元学与教方式改进了计算机程序设计类课程教学模式,更好地促进了教学过程的有益推进,实践证明,也更适合于多核程序设计课程的理论教学与实验教学。
参考文献:
[1] 王东玲,谢百治.信息技术条件下多元学与教方式融入医学教学的研
究[J].中国电化教育,2012.2:113-117
[2] 陈天洲.《多核程序设计》概述[J].计算机教育,2007.7:39-41
[3] 陈天洲.多核课程建设探索与实践[J].计算机教育,2007.3.
[4] 阿里甫·库尔班,米尔古丽·买买提依明.案例式任务驱动的C程序设
计教学方法[J].计算机教育,2011.l1:53-55
[5] 刘雍潜,李龙,谢百治.多元“学与教”方式与日常教学[J].电化教育研
究,2010.10:91-98