大数据专业编程课程教学改革与实践

2019-08-15 00:44李勇
教育现代化 2019年103期
关键词:编程语言讲授编程

李勇

(解放军信息工程大学,河南 郑州)

计算机和互联网的快速发展和不断普及,尤其是大数据时代的来临,人们的工作和生活已经发生了巨大的改变,由此也促进了高校计算机技术教育的不断发展,学科的不断融合与发展,诞生了诸如大数据等新型专业和方向。

一 大数据专业的特点

大数据专业是一个涵盖计算机、数学和统计学的交叉学科,要求具有扎实的计算机、数学和语言学基础和较宽的学术视野;具备信息检索、数据挖掘和语料管理等实际操作的能力,并且具备较好的信息处理软件开发和工程实践能力、较好的专业素养和较强的创新意识。由于该专业的复合性和当前信息处理工作实际,需要讲授的编程课程包括《C语言》《Java语言》《Python语言》等,需要讲授以编程为基础的课程有《数据结构》《数据库技术》《数据挖掘》和《自然语言处理技术》等课程。因此,编程语言的掌握对于完成该专业的学习是尤其重要的,也是系统的掌握计算机、数学等基础理论和研究方法的前提。大数据主要是对自然语言的信息处理,其中包括文本信息、语音信息、视频信息等各个层次的处理。根据当前技术发展的现状和教学实际,文本信息的处理是重点,所以在编程课程的教学中,涉及到字符串、列表和集合等信息处理的知识对于该专业学习的重点。

二 目前编程课程教学存在的问题

编程课程作为计算机相关专业的基础必修课程,主要目的是通过学习计算机语言以及程序设计方法,逐渐培养学生的编程能力、用计算机解决实际问题的能力。对于理工科的学生来讲,循序渐进的更需要学习多门计算机语言课程。学习计算机语言并用来编写程序解决实际问题,体现了科学就是生产力,也是理论联系实际的一个重要体现。

(一) 教学内容针对性不强

由于语言信息处理专业不是纯粹的计算机专业,而是相关领域的交叉学科。该专业融合了计算机、数学、外语等不同学科的知识,自身的课业负担很重。但是当前编程课程的教学内容,教材的选择并没有考虑这些因素,而是使用通用的编程教材,采用一般的课程教学模式。同时,当前大数据时代造就了信息处理技术日新月异,新知识新手段在教材中很难体现,在编程课程中无法完成,导致教学过程中学生学习兴趣不高、感觉学到的编程知识没有用武之地。

(二) 理论与实践教学环节脱节

计算机编程的相关课程概念和思想较为抽象和复杂,逻辑性非常强。如果单纯采用传统的教学方式,对于初学者来说必然会造成一定的难度[1]。虽然教学过程中都强调理论与实践相结合,但是在具体操作上是以理论讲授为主,实践练习为辅,还是边讲理论边实践,亦或是实践为主,理论为辅,都没有形成固定的模式。导致在注重知识体系的完整性方面和学生自学学习、创新能力的培养上没有很好的契合,同时学生编程的思维能力和团队精神的培养上也是此类课程需要解决的问题。

(三) 学生难以具备解决实际问题的能力

编程的最终目的要解决实际问题,计算机软件工程包括需求分析、架构设计、算法设计、编程实现和扩展维护等过程。因此既需要语言沟通讨论需求、数学思维设计算法、计算机思维来设计数据结构,同时还需要编写代码来完成程序。学生常常眼高手低,教师在课堂上讲授学生能够听懂,但是在课下同样的问题让学生自己解决时,又会感觉无从下手。因此,如何培养学生的计算机抽象思维方式以及独立解决问题的能力是课程的关键。

(四) 缺乏科学合理的考核方案

当前编程课程考核同多数考试一样,经常采用一张试卷来判定学生的学习效果,导致学生经常上课不认真听讲,考试临时抱佛脚突击复习,有时虽然能考出好的成绩,但是考试一过知识很快就会忘记,由于没有学以致用,所以不利于培养学生解决实际问题的能力,尤其不利于对编程课程的学习。同时由于缺乏对学生整个学习过程的监督和管理,教师对学生的真实情况掌握不清楚,更不能针对考试提出改善教学效果的措施。

三 关于编程课程的教学改革与实践

(一) 教学内容的改革

根据大数据专业的特点分析,该专业主要使用计算机的理论和方法,对数学上的一些算法和语言学上的规则,采用编程语言进行实现。所以编程课程的教学内容一定要恰当合适,有些编程课程要按部就班的打好基础,有些则可以有所取舍,只讲授与该专业相关的内容。教学内容的选择通常取决于教材的选择,本科生的教学一般以教材的内容为主,所以需要根据大数据专业选择合适的教材,必要的时候可以考虑自编教材,这样更容易对该专业的教学更有针对性。

对于《C语言》课程,可以采用通用的教材,对于所有内容从数据类型、程序结构、函数和数组、指针和结构体都需要讲授,因为它是所有编程语言的基础。C语言作为结构化程序设计语言,简洁紧凑,执行效率高,数据类型丰富,兼具高级语言和低级语言的特点,非常适合做教学编程语言,同时C语言的基础内容在其他的语言中都有所体现;对于《C++面向对象程序设计》,采用C++语言讲授,该课程对于语言本身的掌握并不是重点,重要需要掌握面向对象程序设计的思想进行编程;对于《C#语言》重要的是掌握使用C#语言来进行桌面应用程序的设计,以及字符串、集合和列表、数据库等与文本信息处理相关的内容;对于《Python语言》,通过Python语言讲授其进行文本处理的便利性,通过JavaScript等网页脚本语言讲授其进行网页清洗、文本抽取等工作的优势。对于《Java语言》,重点是掌握Java语言编写的程序能够实现跨平台,以及可利用大量的自然语言处理的开源程序和类库(大多采用Java语言编写)。因此,根据大数据的专业定位和培养目标,不同的编程语言有不同的讲授重点。在教学内容的选择上,切勿所有编程语言重点不分,让学生感到无所适从。

(二) 教学方法的改革

1. 授课方式采用小班授课,提高理论和实践授课质量。

编程语言课采用小班方式授课,教师可以兼顾每个学生,对学生做全面的了解,对学生的理论问题和程序设计问题能够快速地发现并解决,有利于学生对课堂内容的掌握。教师讲授过程中,首先讲解教材的理论内容,包括基本的编程思想、编程方法、具体的概念和原理,并讲解相关的例题进行[2]。然后通过信息处理方面的程序实例,例如从分词、语言的形态分析、信息检索等抽取相应的知识点供学生上机实践,提高学生的动手编程能力,产生了比较好的教学效果。

2. 课堂教学手段形式多样话,充分调动学生学习积极性。

编程课程理论性强,其中的概念和算法通常比较枯燥,如果没有适合的教学方法来调动学生学习的兴趣,很难产生良好的教学效果。例如汉诺塔问题可以制作Flash动画,让学生清楚程序的执行过程,调动学生的学习积极性[3]。在学习编程语言的字符串和集合知识的时候,可让学生进行简单的文本分词、词频统计的练习、既让学生练习了所学内容,又让学生对大数据专业有进一步的了解。通过混合式教学和慕课等多种教学手段,能够很好的促进编程课程的学习。

3. 丰富多彩的授课方式,培养学生自主学习能力。

大数据融合了多学科的课程体系,教师需要对不同类型编程课程的特点有大致的了解,才能够选取适合的教学模式。该专业常用的教学模式有问题讨论式教学、项目驱动式教学和启发式教学等。对于编程课程理论性比较强的内容,可以采用问题讨论式教学。例如面向对象编程思想,由教师提出面向对象编程同面向过程相比,其优缺点、使用领域等问题。下面学生之间进行讨论,并且总结出最后的结果,教师基本不参与讨论,仅在最后给予辅导和评价。从而培养学生独立思考、主动学习和探索未知问题的能力。对于操作性比较强的内容,可以采用项目驱动式教学。例如,在C语言的教学过程中,可以进行通讯录程序的练习,根据学习内容的深入,先后不断的加入存储、排序和查找等内容。对于项目驱动式教学,教师注意要随着课程的不断深入来进行程序的扩充,由于新知识在旧知识基础上逐步导入,逐层推进,学生更容易掌握,但此过程同时要引导学生独立思考。学生的课后作业也可以根据自身情况,参加教师的项目和课题,提高学生分析、解决问题以及自身的编程能力。或者对于抽象的知识可以采取启发式教学,结合实际问题、直观形象的具体实例来引起学生联想,启发学生的抽象思维,同时培养学生举一反三、独立创造性的逻辑思维能力[4]。

(三) 考核方式的改革

科学合理的考核方式是教育评价的重要手段之一,因此必须建立恰当的考核方式,并且注重过程监督和综合素质的培养。编程课程的最终目的是能够使用计算机编写程序来解决实际问题,因此上机考试应该是编程课程考核的最终形式。但是如果所有编程课程均采用上机考试也存在一些问题。例如,在上机考试中,教师列出几道编程题目,如果学生答同样的题目,使得考题覆盖面不广;如果让系统随机抽出一些题目,又很难保证难度相同以及评判客观。

因此,根据编程课程类型的不同,可以分批采用不同的考核模式。对于《C语言》《C#语言》等课程,该课程也是国家计算机等级考试二级的科目之一,完全采用上机考试时可行的,所以可以通过引进或者开发考试系统来实现。对于《C++面向对象程序设计》等课程,完全上机考核不能完全反应学生水平,所以可以采用笔试考核和上机考核相结合的方式。笔试可在期末考试实施,全面考察学生对所学课程基础知识和基本理论的掌握情况;上机考核可在平时、期中考试和课程设计中实施,主要通过考查学生对小程序、中等程序和较大规模程序的设计和编写能力,考核学生解决实际问题的能力和运用知识的综合能力[4-6]。

四 结语

随着大数据时代的计算机技术发展越来越快,通过大数据编程能够解决的问题也越来越多,对于我们在教学过程中提出的挑战也越来越大。更多的院校成立的大数据专业或方向,它是一个多学科交叉融合的新兴学科,编程课程所占的比重比较大,既要注重基础理论,又要紧跟技术发展的步伐,教师如何较好、学生如何学好、考试如何考好都是一些需要解决的问题。因此,要根据该专业和编程课程发展的实际,与时俱进,做好教学改革,才能培养合格的大数据专业人才。

猜你喜欢
编程语言讲授编程
基于对计算机软件Java编程及应用的分析
基于JavaScript编程语言之 闭包技术在焦点轮播上的应用
编程,是一种态度
数学课堂“限时讲授”教学策略
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
基于计算机应用软件开发的Java编程语言研究
计算机应用软件开发中编程语言的选取
浅谈数学课堂讲授的时机选择