Intel多核程序设计课程教学改革建议

2015-09-27 02:47:33龙显忠南京邮电大学计算机学院软件学院南京210023
现代计算机 2015年27期
关键词:上机程序设计编程

龙显忠(南京邮电大学计算机学院、软件学院,南京 210023)

Intel多核程序设计课程教学改革建议

龙显忠
(南京邮电大学计算机学院、软件学院,南京 210023)

0 引言

随着计算机网络和多媒体技术的发展,需要处理的数据呈现出一系列特征,例如:数据量大、数据类型多样化、数据变化速度快等,即:我们已经进入一个大数据时代。为了快速有效地处理这种类型的数据,无论是在计算机硬件方面还是对相应的编程技能都提出了更高的要求。从早前的单核处理器到现如今的多核处理器,从单线程编程到多线程编程的改变都体现了计算机技术的发展。相对于传统的串行计算处理技术,当下流行的并行计算模型包括:消息传递接口(Message Passing Interface,MPI)、共享存储并行编程(Open Multi Processing、OpenMP)、Hadoop MapReduce、Spark等。利用这些模型对大数据进行处理,可以提升计算的速度和精度。因此,如何培养学生学习处理大数据的计算机硬件知识和编程技能也已成为亟待解决的问题。此外,基于多核的思想,许多科研工作者在此基础上进行了研究,例如:多核架构下基于OpenMP的Huffman压缩算法并行程序设计研究[1]、基于多核的并行程序设计及优化[2]、基于多核环境下的多线程并行程序设计方法研究[3]。无论是教学还是科研,高校开设Intel多核程序设计课程已经成为必然,该课程旨在让学习者能够从计算机硬件和程序开发两个角度进行学习。它是以Intel公司生产的多核处理器为背景,详细介绍了多核体系结构和多核处理器的相关知识,并讲解了在多核平台上进行软件开发的理论与方法[4-5]。在该课程的学习过程中,需要学生们已经掌握C或C++语言的编程技巧,了解计算机系统的构成,所以,多核程序设计可以认为是《C/C++语言程序设计》、《计算机系统结构》、《操作系统》等相关课程的后续课程。然而,在实际的教学过程中,我们发现存在一些问题,例如:学生对学习该课程的重要性认识不足,部分学生对前期所学的计算机语言出现遗忘现象,课堂所学理论不能够很好地应用到实际的编程中。针对上述问题,本文拟从教学内容、教学方法、实践教学和改革考核方式等方面提出一些建议。

1 存在的问题

目前开设多核程序设计课程的高校大多都将它作为计算机专业的限选课,一般都在大三第二学期进行讲授。然而,在整个大学期间,大三这一学年所要学习的专业课都非常多,学生的学业压力大。不少学生一开始是被它的“多核”名字所吸引才选修这门课程,他们在学习的过程中会发现虽然该课程与之前学过的计算机系统结构或者操作系统在一些知识点上有重合,但是在涉及到多线程编程方面仍然显得很陌生,特别是对众多的线程库函数需要花很大的精力和时间去熟悉。另外,大多数学生之前也没有接触过多核软件工具,例如Intel C++编译器、Intel VTune性能分析器、线程检查器、线程档案器等,对如何使用这些工具来编辑并调试分析自己的程序仍旧存在许多疑问。同时也要求大家掌握使用Microsoft Visual Studio软件调用线程库函数去编写多线程程序。由于本课程的课时比较少,授课内容较多,同学的自学能力不足,导致大多数学生逐渐失去学习本课程的兴趣。

因为受到总的授课学时限制,该课程安排的集体上机次数较少,有限的上机次数教师只能给部分学生解答他们遇到的编程问题。同时,学生们课后动手编写程序的自觉性不高,对调试程序过程中出现的问题不能独立地分析思考。少量学生在编程的过程中,当遇到对C或C++语言出现遗忘的情况时,不能主动地去复习一下之前学过的知识点。另外,应试教育思想仍旧在一定程度上影响着当代大学生,一些学生认为只要自己能够顺利通过期末考试拿到学分就行了,这种错误的想法导致他们不能潜心地去通过多编写程序来提升自己的编程能力。基于上述原因,很多学生上机之后只是写个实验报告匆匆交差,不能从根本上锻炼自己的编程能力。

多核程序设计课程的教学目的是为了让学生们了解多核体系结构和多核处理器的相关知识,并在多核平台上编写程序,培养并提高学生的多线程编程能力,从而使他们能够使用所学的理论知识解决实际应用中出现的问题。然而,目前高校多核程序设计实践教学的基本模式是教师安排与课堂所讲知识点相关的编程任务,学生通过上机去验证课堂所学的例题。因此,学生们只是通过上机对课堂所学的理论知识进行了一次巩固练习,很少有教师能够将课程的理论和实际应用中的问题进行结合去布置相关作业。这样就导致了学生所学的东西都脱离不了书本,不能密切联系实际做到活学活用的目的。

2 解决方法

由于课程授课学时的限制,教师应该有重点地去选择一些章节来讲解,对一些跟前续课程有重合的知识点进行简单介绍或者直接省去不讲。对于教材上的例题也是有针对性地去讲,把剩下的一些题目留给同学们课后自己思考,培养学生独立学习能力。除了讲授教材上涉及到的一些重要知识点外,也需要给学生们介绍在相关的文献中是如何结合这些知识点进行应用的。力争在教学的过程中也能够引导部分学生对科研产生兴趣,拓展学生们的视野,不能仅仅是为了学习课本上的知识而学习。另外,因为计算机技术的发展速度比较快,所以教师还应该在上课前,通过查阅资料更新并补充课本中没有涉及到的知识点,让学生们能够了解到最前沿的信息。

兴趣往往是一个人学习的最好驱动力,在开始讲授多核程序设计课程时,教师应该向学生阐述学习这门课的重要性,可以列举一些众所周知的例子,例如:在当前大数据时代背景下,通过在多核平台上进行并行程序的开发可以达到应用所需的实时性和准确性。在激发学生们学习该课程的兴趣并让他们明白开设这门课程的必要性之后,能够在一定程度上让他们自觉地去认真学习。同时,还应该锻炼学生举一反三的学习能力,例如,在学习Win32线程同步实现的时候,我们知道有五种同步实现的方式,即:全局变量、事件、临界区、互斥量、信号量。为了完成某个功能,要让学生知道既可以分别使用这五种方式中的一种去编程也可以结合使用其中的几种。此外,在作业布置方面,也可以布置一些只有通过查阅课外资料才能作答的题目,培养他们收集信息自我学习的能力。

多核程序设计是一门既有理论教学又有实践环节的课程,在实际的教学过程中,基本上是先讲授一部分理论知识之后再进行上机操作的。在上机前应该鼓励学生在自己的电脑中安装编程所需的软件,并按照课本中的说明配置好编程环境,这样做的好处是即使同学在学校机房上机的过程中没能完成当堂的编程任务,也能在课后通过操作自己的电脑来接着调试。另外,也可以尝试在课程的理论知识学习到一定程度的时候给学生布置一道稍微大点的编程题,使学生在后续的学习过程中能够带着问题不断地思考和积累,到期末课程结束时再完成整个程序的编写工作。

目前的考核方式主要还是采用期末考试,考核内容基本上是课本上所讲授的一些理论知识点,没有突出实际应用。因此,如果条件成熟的话,可以考虑增加上机考试,通过机考可以考查学生编写和调试程序的能力。另外,还应该加大对学生平时成绩的考核,主要包括出勤、课堂回答问题、作业、实验报告等。

3 结语

本文首先分析了高校开设多核程序设计课程的必要性以及存在的一些问题,包括:学生兴趣不足、编程能力有待提高、理论脱离实际应用。针对这些问题,提出了从教学内容、教学方法、实践教学、考核改革等四个方面进行解决,从而做到丰富课堂所教内容,培养学生独立学习的能力,提高学生的编程技能。

[1]胡荣.多核架构下基于OpenMP的Huffman压缩算法并行程序设计研究[D].长沙:湖南大学,2011:1-57.

[2]王堃.基于多核的并行程序设计及优化[D].南京:南京大学,2012:1-69.

[3]王晗.基于多核环境下的多线程并行程序设计方法研究[D].郑州:中原工学院,2014:1-57.

[4]多核系列教材编写组.多核程序设计[M].北京:清华大学出版社,2007

[5]陈天洲,曹捷,王靖淇.《多核程序设计》概述[J].计算机教育,2007,13:39-41.

Multi-Core Technology;Programming Practice Ability;Parallel Programming;Course Teaching

Suggestion on Teaching Reformation of Intel Multi-Core Programming Course

LONG Xian-zhong
(School of Computer Science&Technology,School of Software,Nanjing University of Posts and Telecommunications,Nanjing 210023)

南京邮电大学引进人才科研启动基金项目(No.NY214168)

1007-1423(2015)27-0024-03

10.3969/j.issn.1007-1423.2015.27.007

龙显忠(1985-),男,河南信阳人,博士,研究方向为模式识别、机器学习

2015-08-11

2015-09-20

Intel多核程序设计课程作为高校计算机科学与技术专业的专业课,对于培养学生的编程实践能力具有重要意义。在实际的课程教学中往往会出现学生不能够将理论与实际应用联系起来、上课能听懂但是不能独立编写程序。基于以上问题,从改进教学内容和方法、加强动手能力的锻炼,以及改革考核方式等方面提出相关的建议。

多核技术;编程实践能力;并行程序设计;课程教学

As a professional course for college students of computer science and technology,Intel Multi-Core Programming course has important significance for training students'programming practice ability.In the process of learning,students cannot connect the theory to the practical application and write procedures independently.Based on the above problems,proposes some suggestion from teaching content,teaching method,practice teaching and assessment reformation.

猜你喜欢
上机程序设计编程
周金应
编程,是一种态度
少先队活动(2021年2期)2021-03-29 05:41:04
元征X-431实测:奔驰发动机编程
标准化护理程序对体外膜肺氧合术患者上机各阶段用时的影响
编程小能手
学生天地(2020年17期)2020-08-25 09:28:48
基于Visual Studio Code的C语言程序设计实践教学探索
计算机教育(2020年5期)2020-07-24 08:52:56
纺织机上诞生的编程
从细节入手,谈PLC程序设计技巧
电子制作(2019年9期)2019-05-30 09:42:04
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用