应用型本科电子信息类专业编程能力培养
2018-11-21耿鹏程勇王青云
耿鹏,程勇,王青云
(南京工程学院通信工程学院,江苏南京 211167)
电子信息类专业所涉及的领域是我国目前发展迅速的行业,代表着新经济、新动力和新兴产业方向。随着我国设备制造技术的日趋成熟,各个制造商之间竞争激烈,使得设备本身的利润大大降低。因此,当前的电子信息行业正面临着由“面向设备制造”到“面向信息服务”的转型[1]。这也是我国逐步由“制造经济”转向“服务经济”的具体体现之一。在此背景下,电子信息类行业的发展也逐渐由“硬件为主”转向了“软硬兼施”。在研发阶段,也十分注重硬件设计软件化的方式。例如近年来的研究热点:软件定义网络[2](Software Defined Network,SDN),其主要思想就是把底层设备之间的差异屏蔽掉,对设备上的控制权进行分离处理,利用集中的控制器来统一管理,以软件的形式定义任何想实现的网络路由和传输策略,从而实现更加灵活和智能的网络功能。软件开发、测试和维护能力在电子信息类专业中的地位越来越高,要求我们必须重视针对电子信息类专业的软件类课程规划,以提高大学生专业内的编程能力,努力培养符合新形势发展要求的人才。
对应用型本科而言,需要与传统的高、精、尖学术性人才培养模式进行区别,要求在基础理论知识够用的前提下注重工程实践能力的培养[3]。因此,应用型本科院校的电子信息类专业更加应该重视系统级的开发、设计和维护能力培养,将软件教育和硬件教育相结合,进行课程体系教学改革。该文以南京工程学院通信工程学院为背景,对应用型本科电子信息类专业学生的编程能力培养做一个初步探索,包括课程体系结构、课程内容和创新性教学模式等内容。
1 电子信息类专业编程能力培养现状
当前,我国应用型本科电子信息类专业对学生编程能力培养的课程设置主要体现在四个环节之中。一是体现在“C语言、C++语言”和“Java 语言”等语言类课程教育中;二是体现在“信号与系统、通信原理、数字信号处理”和“计算机网络”等课程的仿真教学中;三是体现在基于“单片机、ARM”和“DSP”等硬件平台的软件系统教育中;四是体现在另设的纯软件开发类课程中,如“Web 开发、数据库系统”和“Android 系统开发”等。例如,南京工程学院通信工程学院的电子信息工程专业,其教学安排中的课程进度与编程能力培养的关系如图1所示。可以看出,与编程能力培养相关的课程体系存在着课程延续性不足的缺点。一方面,C语言课程仅仅是教会了学生正确编程的能力,并没有讲究程序的规范性和软件系统的有效组织性,需要在大二阶段添加“数据结构”这门课程;另一方面,并没有针对专业特点的仿真工具进行独立设课,而是在具体专业基础课程中现学现用,这样必定达不到预期的学习效果,建议在大一阶段设立类似“Matlab 仿真技术”的短学时课程。
编程能力的培养重点在于实践操作,各个院校的电子信息类专业与编程能力培养相关的实践环节主要包括:实验、课程设计、项目训练和毕业设计等。例如,南京工程学院通信工程学院的电子信息工程专业,其构建的实践能力体系明确了四个环节:课内实验和独立实验、电子信息类专业基础实训、电子信息类专业综合实训、毕业设计[4],其中与编程能力培养相关的实践环节进度如图2所示。从图2中可以看出,与编程能力培养相关的实践体系存在着覆盖度不够的缺点,建议在独立实验和电子信息类专业基础实训中增加软件相关内容。
另外,从教学方式上来看,现阶段电子信息类专业的大学教育仍然以知识灌输性课堂教学为主[5]。在这种模式下,学生仅仅根据教师的课堂要求进行记录,最终以考试通过为根本目的。这使得学生的学习无法建立一个学以致用的方向感,并且学习过程变得枯燥无味。经统计,在南京工程学院通信工程学院的学生座谈会中,每届学生都会提出所学课程不知道有何用处的问题。工科的相关课程本身就具有相对较难的特点,再加上没有方向感,使得学生丧失了学习积极性。因此,我们建议做如下改进:一方面,在一系列经典课程上,可以引进知名大学的慕课教育[6],采用线上线下相结合的O2O(Online To Offline)教学模式[7],即学生提前在课堂外进行慕课自学,然后由教师在课堂内组织问题讨论式教学;另一方面,针对专业性较强的课程,应采用项目式教学模式[8],让学生知道所学知识的具体应用场景,增加学生学习的方向感和成就感。
该文将基于电子信息类学生的编程能力培养现状,从理论与实践课程体系建设和创新性教学模式两方面进行分析,探讨一种行之有效的教育模式,以提高应用型本科院校学生的编程实践能力。
2 课程体系建设
图1 课程进度与编程能力培养关系图
图2 与编程能力培养相关的实践环节进度图
图3 大学生能力与时间关系图
可以将应用型本科大学生的能力划分为基础理论记忆能力、团队合作交流能力、知识应用能力、学习与判断能力和解决复杂问题能力等五方面,此五方面的能力强弱与大学四年的时间关系如图3所示。可以看出,由于大一至大二期间的理论知识相关课程较多,此阶段学生的基础理论记忆能力较强,随着后期实践课程的增加,此能力会相对减弱。团队合作交流能力是一个持续重要的方面,它不仅体现在项目合作之中,也能体现在课程教学过程之中,例如,可以分组讨论一些课程学习过程中的难点问题。知识应用能力、学习与判断能力和解决复杂问题能力会随着专业学习的逐步深入而逐渐增强。大学生的编程能力也符合这一关系图规律,依据此背景,我们将理论课程与实践课程进行融合,构建一个层次划分的课程内容[9]和实践环节如表1所示(将基础理论记忆能力、团队合作交流能力、知识应用能力、学习与判断能力和解决复杂问题能力分别简称为能力1、能力2、能力3、能力4 和能力5)。
3 创新性教学模式
应用型本科电子信息类专业教学模式中仍然存在着一些不利于能力培养的问题,例如,偏向传统知识的传授;教学过程以教师为中心,缺乏互动,无法调动学生积极性;教学内容陈旧等[10]。这些问题直接造成学生的编程能力较差,难以适应社会工作岗位的要求。目前国内高校已经逐渐认识了这一缺陷,引入了许多新的教学模式,如慕课教育、翻转课堂、项目式教学和O2O教学模式等。此类教学模式的具体实施方法可以参见文献[6-8],该文仅对表1所涉及的课程进行分类,探讨课程可能适应的教学模式。
对于经典课程,如高级语言程序设计、数据结构、计算机通信与网络、信号与线性系统、数字信号处理和通信原理,可以引进知名大学的慕课教育。若该校在某些课程教学上处于国内较先进地位,或某些课程需要进行本地特色教育,则可自建小慕课教育课程SPOC(Small Private Online Courses)。 在具体实施上,可在课程学习期间规定一定的课外学时,要求学生必须在线学习一定学时,期间任课教师进行灵活答疑。在课堂内,由于学生已经进行了自学,对相关知识较为熟悉,可采用分组讨论式教学方法。这样便最终形成了采用线上线下相结合的O2O 教学模式,实践证明,此教学模式既加深了知识学习,又有利于提高学生的团队合作交流能力。
对于实用性、专业性较强的小众课程,如Matlab仿真技术、单片机原理及应用、嵌入式系统、LINUX 系统基础、DSP 芯片及应用、安卓系统软件开发和各类实践教学环节,应采用项目式教学模式。此种教学模式将理论学习与工程实践有效结合起来,以项目的形式,通过经历 “确立项目任务—制订工作计划—组织项目实施—检查考核评估—总结评比归档”五大项目过程,实现“做中学”和“基于项目的教育和学习”,充分发挥学生的主观能动性,培养学生自学能力、动手能力、分析能力,合作能力,充分开发学生潜能[11]。实践证明,项目式教学模式可以让学生知道所学知识的具体应用场景,增加学生学习的方向感和成就感,从而调动学生的学习积极性。
4 结语
统计表明,近年来电子信息类专业学生从事软件开发工作的人数占到毕业生总数的百分之五十以上。在此背景下,需要更加重视电子信息类专业的软件类课程规划,对教育教学方法进行改革,提高学生专业内的编程能力,以适应新形势的就业要求。该文分析了电子信息类学生的编程能力培养现状,对应用型本科院校中该类专业学生的编程能力培养进行了初步探索,包括课程体系结构、课程内容和创新性教学模式等内容,努力培养符合新形势发展要求的大学生。
表1 基于能力图的编程能力培养课程层次划分表