计算机基础实践教学的启发与思考

2014-10-27 00:03刘畅谌卫军郑莉
计算机教育 2014年11期
关键词:计算机基础教学创新思维实践教学

刘畅 谌卫军 郑莉

摘要:实践教学在计算机基础教学中的作用不容忽视,如何在计算机基础教学过程中更好地发挥实践教学应有的作用,使得学生不仅能应用课堂所学知识,还能激发创新思维,是实践教学的目的之一。文章通过对c++语言程序设计课程中学生提交的优秀大作业进行介绍与点评,展示学生在应用c++时体现出的创新性和良好的综合素质;通过分析每个优秀作业的优点,指出基础教育课程中的实践教学应如何更好地激发学生兴趣和灵感,以锻炼学生的综合能力。

关键词:实践教学;计算机基础教学;创新思维;c++语言程序设计

0、引言

21世纪已经步入信息时代,国家对于信息人才的需求也越来越强烈。针对国家的特定需求,高校更加注重复合型人才的培养。作为其中的重要一环,计算机教学之路也在逐步地探索和改革中日益完善。对于面向各个专业的计算机基础教学,教师在传授课堂基本知识的基础上,需要考虑如何更好地启发不同专业学生对于计算机的兴趣,使学生能够将所学知识应用在各自领域中。实践教学在启发学生兴趣和锻炼学生动手能力方面尤为重要。笔者中的第一作者通过担任c++语言程序设计课程助教一职,对实践课程中的优秀作业进行点评,总结出计算机基础教学中实践教学在启发学生自主探索学习方面的一些经验。

1、实践教学在计算机基础教学中的定位

计算机基础教学是培养大学生综合素质和创新能力不可或缺的重要环节,是培养复合型人才的重要组成部分。其中一项重要内容就是要潜移默化地使学生养成一种新的思维方式,即能够运用计算科学的基础概念对问题进行求解、系统设计和行为理解,亦即建立计算思维。培养学生的计算思维,使其能够在各自专业领域应用该思维系统地分析问题、解决问题是计算机基础教学的目的之一。

随着教学方法的进步,计算机基础教学的理论知识在课堂中可以很好地得到传授,如多媒体教学等;而在实践教学方面,侧重点更在于对理论知识的实践与验证,旨在培养学生应用所学知识解决具体问题的能力,希望能够启发学生的兴趣,应用计算思维自主设计问题并探索解决问题的方法。因此,实践教学不仅仅是简单地完成教学指导书中的相应内容和对课堂理论教学进行实践验证,还要达到启发学生思考并提问进而实践创新的目的。

2、特定风格随机音乐旋律的生成及计算机变奏编曲

2.1 音乐生成程序创作背景

特定风格随机音乐旋律生成程序以计算机音乐为背景,旨在通过计算机生成随机音乐旋律,以此为作曲家提供灵感。该程序针对当前已有随机音乐生成程序不能对给定旋律进行变奏、编曲的缺陷进行改进,主要目的是生成特定风格的旋律和对给定旋律进行变奏编曲,如中国五声音阶风格、埃及古典音乐风格、西方浪漫派风格等,能够根据用户提供的简单要求,随机生成一段音乐旋律并给旋律添加伴奏以构成完整的音乐。

程序基于控制台应用进行开发,从TXT文本文件读取给定旋律的基本信息,通过设计的和声、旋律与伴奏生成算法,最终输出一组具有指定风格的MIDI格式音乐。

该程序作者是经管学院的学生,其业余爱好为弹钢琴和声乐创作。从该生的大作业中可以明显看出兴趣是最好的老师。当学生从被动地完成作业转变为由兴趣主动驱使时,往往能够创作出极具想象力与创造力的作品,因此鼓励学生自主学习,在自己感兴趣的领域进行创作,而不仅仅局限于已经成形的、网络上的大量参考程序很有必要。

2.2 程序主要技术难点及解决方法

该程序中的一个难点在于c++高级开发的自主学习,即音乐的生成和保存问题。该问题涉及声音的处理,这在c++语言程序设计课程中没有讲授。该生在经过充分调研的基础上,最终选择MIDI作为程序的输出方式。MIDI是一种二进制文件,主要由头块和紧接着的多个音轨块构成,C++中的fstream类正好可以方便地进行二进制文件的创建和读写,因此该生通过上述的MIDIFile类、Chunk类等实现MIDI文件的制作。

第二个难点在于生成音乐过程中的音乐记号表示问题。虽然将随机的序列按照算法映射到音符上可以产生随机音乐,但是这种音乐没有参考价值,也称不上是音乐,此外如何将音符在计算机中表示也很困难。该生灵活地运用c++中自底向上的设计思想,先构造最简单的音符类,然后在此基础上构建和旋类,最后构成和声类。

最后一个难点是生成音乐过程中随机音乐和非随机音乐之间的平衡问题。该生通过查阅声乐方面的书籍和文献,确定程序中生成音乐的“非随机”模块,进而应用这些“非随机”模块作为基本元进行随机组合,从而平衡了生成音乐过程中的随机性与非随机性。

从这个过程可以看出,在兴趣的驱使下,学生变得更为主动,能够自主探索解决问题的方法;同时,教师也应当为学生指明大方向,授之以渔,培养学生独立思考的能力。

2.3 程序类图及核心算法设计

特定风格音乐生成器类图设计逻辑清晰,可以看出该生对于c++类的掌握和应用十分娴熟,这是设计出良好程序的前提保证。

该程序核心算法可以分为两部分,其一是音乐部分算法,其二是文件部分算法。前者又分为和声模块生成算法及旋律伴奏生成算法,后者又分为事件的处理和文件的操作。由于生成算法中涉及过多的声乐知识,此处便不再赘述。

2.4 程序点评

首先,从c++语言程序设计课程的教学目的和要求出发,该生完全掌握了所要求的内容,能够运用C++面向对象设计的思想灵活设计程序;对类的设计逻辑清晰,封装性良好;运用了课程上所讲授的所有内容,展现出良好的c++程序设计能力。

同时,该生能够结合自己的业余兴趣爱好,从声乐角度出发进行创作,利用C++这个有力的工具实现具有指定风格的随机音乐生成。最终验收效果良好,每次运行指定风格的生成模式会产生一组MIDI文件,每个都会播放出相似风格但不同的钢琴演奏曲。由此可见,该程序很好地达到了作者的预期,为作曲者提供灵感。endprint

相比其他守旧的程序,该程序最大的亮点在于学生结合了自己的兴趣,能够将所学知识应用在音乐创作上,学以致用。实践教学的初期选题阶段应该以此种案例作为榜样,鼓励学生探索创新,结合自身爱好进行创作,从而拓宽学生思路,激发创作灵感。

3、基于MFC的上位机软件设计

3.1 程序背景及功能介绍

基于MFC的上位机软件设计程序针对全国大学生“飞思卡尔”杯全国智能车竞赛,采用C++语言,基于MFC框架,对智能车自主寻线部分所采集回的图像进行处理。

由于下位机微控制器MCU没有图像显示功能,因此该程序作者萌发了在上位PC机编写软件的想法,以实现数据的可视化,方便图像处理工作的开展,从而进一步检验智能车寻线算法的正确性。

该程序能够完成如下功能:摄像头原始图像以及处理之后的图像显示;可直接在上位机编写图像处理算法,通过代码移植的方式简化开发过程;车模运行过程中其他基本信息的示波器方式动态显示;上位机与下位机的交互界面,实现参数传递。基于MFC的上位机软件设计如图l所示,轨道灰度图如图2所示,图像直方图如图3所示。

与上一个从兴趣出发所设计的程序不同,该生的程序源自实际需求,其在参加竞赛培训时联想到所学c++的知识并将其应用在数据处理中,达到非常好的实践效果。教师同样可以鼓励学生结合自身专业,从实际需求出发设计出能够解决其他课程问题的程序,也能对学生起到很好的锻炼作用。

3.2 程序主要技术难点及算法设计

该程序是一个综合性非常强的程序,其整合了上下位机串口通讯、智能车摄像头图像获取及显示、图像分析处理、波形显示等。其中每一部分都具有一定的技术难度。

首先,该生未接触过MFC,需要自行学习。对于MFC单文档视图的整体结构把握、类与类之间的函数相互调用以及数据共享中的许多细节问题,该生要下很大工夫研究。

其次,对于串口通讯协议的设计,尤其是虚拟示波器模块的“通讯协议”以及相关类设计需要深入考虑,同时,如何接受多条数据类型、起始位、数据数目不定的曲线信息,也是程序逻辑设计的难点所在。

最后,由于该程序的应用性很强,需要和底层下位机相互交互,因此需要对动态链接库的动态加载以及与单片机端相协调的函数接口进行分析与设计。

在程序算法设计方面,图像的获取与显示采用双缓存技术,实现后台采集与前台显示的独立,保证数据的稳定与高效;运用vector容器进行数据管理,从而提高数据处理的简便性以及数据接受过程中的稳定与高效;采用序列化信息存储方法,将基本信息保存为二进制文件,使得应用程序在下次运行时能够调用保存的大量配置信息,增加程序复用性。

3.3 程序点评

该程序最大的特点就是综合性和应用性强。据了解,该程序已经使用在该生飞思卡尔实验队伍里,对智能车所获取的数据进行分析与处理。

这也就是我们最希望看到的结果。c++语言程序设计课程不仅仅是想要学生了解基本概念、运行机制与原理,更希望学生能够将所学知识应用到实际生活中。与传统照本宣科的课程不同,c++语言程序设计课程教学最重要的一点就是亲自动手实践,不仅需要完成相应实验内容,还要求学生发挥想象力与创造力,设计出优秀的工程程序。

4、结语

计算机科学与技术系语言设计类课程中的实验课旨在锻炼学生利用课程中学习到的理论知识解决实际问题。实践教学中大作业是实现该目标的一种好方法,从初期的选题设计、中期的编码调试到后期的结题文档书写等,都能够起到很好的应用所学知识的作用。我们期望越来越多的学生能够结合自身兴趣和专业,利用所学知识解决与自身密切相关的问题,切身体会到C-H-语言的实用魅力。因此,教师在教学过程中要注意调动学生的积极性,展现计算机在各个领域中的作用与魅力,从而激发学生的潜在兴趣,使学生得到全方位的锻炼,实现培养具有计算思维的复合型人才的宗旨。endprint

猜你喜欢
计算机基础教学创新思维实践教学
计算机等级考试与高校计算机基础教学
浅谈基于计算机竞赛模式下的计算机基础教学建设与应用型人才培养
关于微课在中职计算机基础教学中的运用思考
在经济新常态下地方本科院校大学生创新创业教育研究
茶学专业校企合作实践教学探索
《电气工程毕业设计》 课程的教学设计
高职院校商务礼仪课程教学改革探索刍议
巧用“错误”激活数学课堂的实践与思考
培养职校生创新思维能力的研究
《数据库高级应用》教学创新方法研究