基于案例驱动的研究生程序设计类课程教学方案

2018-03-30 03:26阚运奇
无线互联科技 2018年24期
关键词:研究生课程程序设计教学方法

阚运奇

摘 要:目前大学毕业生可以跨专业报考研究生,所以很多计算机专业的研究生本科所学专业有很多种,该类型研究生普遍存在程序设计基础薄弱、编程能力较弱的问题,所以在学习程序设计类课程时较为吃力,需要设计教学方案提高程序类课程设计的教学效果。因此,文章研究了基于案例驱动的研究生程序设计类课程教学方案。

关键词:研究生课程;程序设计;教学方法

大学毕业生可以跨专业报考研究生,目前部分研究生本科所学专业非计算机专业,该类型研究生虽然本科阶段学习过“C语言”“汇编语言”等基础类课程,但是由于学习的程序设计类课程数量较少、时间短,并且程序设计实践环节薄弱,导致该类研究生普遍程序设计基础薄弱,编程能力较弱,在学习程序设计类课程时较为吃力,无法掌握程序设计的方法并进行程序设计。目前有针对该问题的教学成果发表[1-5],可提高非计算机专业研究生学习程序设计课程的效果,取得了较好的教学效果。本文提出了一种基于案例驱动[6-10]的研究生程序设计类课程教学方案,教学过程由兴趣引导,并以案例作为驱动深入浅出地讲解程序设计知识,提高非计算机专业研究生的学习效果。

程序设计类课程是计算机研究生课程的主要组成部分,包括“并行计算”“数据图像处理”“仿真系统”等课程[11],是每个研究生需要学习的课程。本文以“并行计算”为例,探讨分析了一种程序设计课的教学方案[12-17],能提高学生的学习兴趣,使研究生对程序类语言课程有更好的理解,流程如图1所示。

1 兴趣引导

很多非计算机专业研究生对于程序设计较为陌生,个别学生有排斥的心理,对于程序课程的理解不够,针对这种情况,可以选取生活中的小案例,引导其对程序设计产生兴趣,比如在并行计算课程讲授初期,课程组选取了求圆周率的小程序作为引导案例,该案例的原理较为简单,应用基础数学原理即可完成求解过程,并且求解的方式有多种,大部分学生对于该问题的求解并不陌生,很容易掌握。

2 案例驱动

当学生掌握常规求解方案后,即引入利用“随机点”的求解思路,让学生对于该方案进行思考,与前一方案进行对比分析。

方案二思路,利用随机点求近似圆周率值方法,如图2所示。

(1)在正方形中画一个圆,用AS表示方形的面积,AC表示圆的面积,r表示半径。(2)在正方形内随机生成点。(3)确定既在正方形内又在圆形内点的数量。(4)在圆形内点的数量除以在正方形内点的数量,结果付给r。(5)圆周率约等于4r。(6)随机生成的点越多近似度会更高。

对比两种方案的优劣,总结其求解的主体思想,然后在方案一的基础上,再给出方案二的求解方案报告,最终形成两种求解方案。

3 由浅入深训练学生编程能力

通过引导、训练与讲解让学生掌握圆周率的逐求解思路,并在潜移默化中形成算法的设计,这样可以使学生明白程序设计并不困难,进而对程序设计产生一定的兴趣。

在此基础上,可以鼓励学生用C语言等基础编程语言编写简单的串行代码,在编写过程中要提醒学生注意语法格式要正确。前期经过算法的训练,学生已经有较为清晰的思路,再降低编写代码的难度,也增强了学生的信心。在学生编写代码结束后,要详细地检查代码,发现错误要及时给予纠正,并鼓励其用多种方法来实现求解方案。通过多次训练,学生逐渐对编写程序拥有信心。

在学生掌握了串行代码的基础上,开始講解并行程序设计思路,其原理即是:将原由一个进程执行的任务分解成N个进程能执行的任务。

该原理较为简单,思路清晰,学生比较容易掌握,在掌握了并行设计思想以后,以实践课的形式让学生配置并行计算环境,并进行并行程序执行的实验。

讲解实现并行程序的函数,让学生掌握函数的使用方法以及函数的变形函数。由于并行计算是以串行计算为基础,所以学生理解和实践起来并不困难。

整个并行计算的课程贯穿了求解圆周率的两个方案,让学生对课程的各个知识点的学习更加连贯,同时也降低了学习的难度。

4 结语

部分研究生本科所学专业非计算机专业,该类研究生普遍程序设计基础薄弱,编程能力较弱,在学习程序设计类课程时较为吃力,无法掌握程序设计的方法并进行程序设计。本文提出了一种基于案例驱动的研究生程序设计类课程教学方案,教学过程由兴趣引导,并以案例作为驱动深入浅出地讲解程序设计知识,提高非计算机专业研究生的学习效果。为巩固教学的效果,下一步可以针对研究生课程设置的特点讨论程序设计类课程的实践方案。

[参考文献]

[1]赵欣.《面向对象技术》研究生课程教学改革探讨[J].大连大学学报,2018(3):134-137.

[2]石连栓.留学研究生程序设计课程教学的探索与实践[J].计算机教育,2018(2):132-134.

[3]魏唯,刘威,董学阳.非计算机专业VisualC++研究生课程建设探索[J].教育教学论坛,2016(4):180-181.

[4]徐新海,唐玉华,林宇斐.跨专业并行计算基础课程教学设计[J].计算机教育,2014(23):106-109.

[5]齐晓慧,王永川,董海瑞.研究生“线性系统理论”课程教学改革与实践[J].中国电力教育,2010(32):82-84.

[6]曹佳.综合实验为驱动的教学法在研究生网络编程类课程中的应用[J].计算机教育,2016(5):44-47.

[7]蔡美玲,刘相滨.面向计算思维能力培养的Excel案例驱动式教学探究[J].教育观察,2018(19):80-83.

[8]杜春.基于案例驱动的Java教学的探讨[J].电脑知识与技术,2018(28):123-125.

[9]高铭悦,潘正高,吴文平.基于案例驱动的数据挖掘课程教学方法研究[J].鄂州大学学报,2018(5):102-103,106.

[10]姚丽莎,李春梅,张怡文.分层项目驱动案例教学模式的C++程序设计课程改革[J].科技视界,2018(25):133-134,147.

[11]阮露.并行设计思想在专用车公司中的应用研究[J].汽车实用技术,2018(12):93-94.

[12]郭笑,吴志勇,周建宏,等.大范围土壤含水率数据融合并行计算方法研究[J].水电能源科学,2018(11):22-25.

[13]周雪,于平,翁爱华,等.基于MPI和OpenMP的重力及重力梯度数据并行正演算法研究[J].世界地质,2018(3):897-904.

[14]张路青.基于MPI的数据融合并行化容错技术研究[J].舰船电子工程,2018(8):46-49,60.

[15]刘帅.多分量地震数据各向异性叠前时间偏移并行算法研究[D].北京:中国地质大学,2018.

[16]张志国,张慧娟,徐洪洲.基于MPI的遥测源码多站拼接并行化算法研究[J].舰船电子工程,2018(4):111-113.

[17]任燕.基于MapReduce与距离的离群数据并行挖掘算法[J].计算机系统应用,2018(2):151-156.

猜你喜欢
研究生课程程序设计教学方法
基于Visual Studio Code的C语言程序设计实践教学探索
教学方法与知识类型的适宜
从细节入手,谈PLC程序设计技巧
云计算环境下研究生课程信息化体系的重塑与优化
高职高专院校C语言程序设计教学改革探索
英国电子信息类课程观摩与思考
PLC梯形图程序设计技巧及应用
我的教学方法