APP下载

本科生学习参与对其能力发展的影响的实证研究

2015-12-23刘珊珊吕林海

教学研究 2015年6期
关键词:应用型本科

刘珊珊 吕林海

第38卷第6期教学研究Vol38 No6

2015年11月Research in TeachingNov. 2015

应用型本科电子信息类学生

编程能力培养的探索与实践

包理群李锦珑兰聪花(兰州工业学院电子信息工程学院,甘肃兰州730050)

[收稿日期]20150515[基金项目]甘肃省十二五教育科学规划项目(GS[2013]GHB0940)

[作者简介]包理群(1983),女,甘肃定西人。副教授,硕士,主要研究方向为程序设计、嵌入式系统等相关课程的研究和教学。[摘要]硬件编程能力是应用型本科电子信息类学生的专业核心能力,本文分析了电子信息类学生编程能力培养现状、问题和难点,结合教学实践,探讨了教学案例设计与硬件编程应用相结合、实践教学采用软件仿真与实物调试相结合、编程思维与学习主动性培养等教学改革思路,教学成效显著。

[关键词]应用型本科;电子信息类学生;编程能力;教学案例设计

[中图分类号]G642.0[文献标识码]A[文章编号]10054634(2015)060085040引言

在教育领域,目前把大学分为学术型、应用型和技能型大学,应用型本科是针对我国普通本科培养单一学术性人才模式的一种改革,它要求专业基础知识够用,更注重知识的综合应用和解决实际问题能力的培养[1]。应用型本科的主要任务是实施应用型本科教育,培养适应社会需求的应用型人才。应用型人才,就是指相对于高精尖理论型、学术型人才而言,掌握应用型知识、更具有实践能力的人。2014年,教育部提出将600所地方本科院校转向应用型[2],也体现了应用型人才对我国经济和社会发展的重要性[2]。对于新建或新办应用型本科院校,不能穿新鞋、走老路,照搬旧模式,否则会与传统大学办学模式相似,失去自己的办学特色和竞争基础,因此大力推进教学改革势在必行。

电子信息是一门应用计算机等技术进行信息处理和信息控制的学科,编写程序完成数据采集、数据处理及硬件控制是该学科的主要技术领域。编程能力对于电子信息领域相关专业的学生都有要求,学习和掌握编程技术可以让学生熟悉电子信息产品的运行原理和运行方式,提高电子信息产品的软件研发能力。应用型人才更注重知识的综合应用和解决实际问题能力的培养,因此基于硬件环境的编程能力对于电子信息类学生显得尤为重要,研究电子信息类应用型人才编程能力的培养具有十分重要的现实意义[3]。

1电子信息类学生编程能力培养现状

目前,我国应用型本科院校电子信息类学生编程能力培养主要在两个环节完成:一是在“程序设计”类课程(如《C语言程序设计》等)的教学中;二是在后续相关专业课程(如单片机、ARM、DSP等)的学习中。

程序设计基础课程一般在大一第二学期开设,该课程概念抽象、语法繁多,刚进入大学的学生在学习方式和思维方式须有较大改变,学生普遍感到难学;学生对课程知识的应用领域没有认识,导致学习兴趣不足;传统的程序设计教学侧重于语法知识,大多数教材都是以成绩管理为例讲述相关算法,没有与专业应用相结合,也使学生感到枯燥乏味;在后续专业课程的学习中,编程能力又成了制约这些课程学习的主要瓶颈,造成学、用脱节,这也是当前高校电子信息类学生培养中存在的主要问题和难点,有些学生对编程感兴趣,但又不能与硬件环境相结合;有些学生对硬件设计感兴趣,但缺乏硬件平台上的编程能力,直接导致学生发展后劲不足和难以适应市场需求。

综上,编程能力是电子信息类学生的薄弱环节,直接制约了学生技术应用能力和实践创新能力的培养,难以满足对应用型人才的社会需求。本文以提高电子信息类学生编程能力为出发点,结合教学实践,探索教学改革思路。

2基于编程能力培养的教学改革

2.1教学案例设计与硬件编程应用相结合

程序设计类课程教学中,设计与单片机、ARM、DSP等实际编程应用相结合的、具有实际应用背景的教学案例,然后找到本课程相关知识在该案例解决中的应用。新的教学内容开始时,不直接讲述课程知识点,而是先提出一些具有实际意义的硬件编程实例让学生去思考,看能否用已有的知识找到解决方法,然后再引入新的教学内容。《C语言程序设计》课程是电子信息类专业的核心专业基础课,是后续单片机、DSP、ARM等嵌入式开发类课程的重要语言和编程基础。下面以《C语言程序设计》课程教学中两个具体案例进行说明。

第6期包理群李锦珑兰聪花应用型本科电子信息类学生编程能力培养的探索与实践

教学研究2015

1) “位运算”教学。

“位运算”是一种特殊的运算,在嵌入式系统编程中,“位运算”比其他运算更常用,而教材的这部分内容通常不涉及其应用领域,因此可在“位运算”这一部分内容讲授时设计和引入“单片机/ARM控制流水灯显示”项目,让学生了解“位运算”的应用领域,既增强了学生学习本课程的兴趣和积极性,也实现了与后续专业课程的有效衔接。

2) “数组”教学。

“数组”是程序设计中一种非常重要的数据结构,是学生学完基本类型的“变量”之后接触到的第一种构造数据类型。这部分内容的教学可与电子信息专业的后期专业应用相结合,例如,在“单片机控制数码管显示”问题中,就用到了对数组的访问;“求最大值、最小值”问题是数据应用中最基本的算法,传统教学在讲述该算法时还是以学生成绩最高分、最低分为例。该算法也在传感器采集数据滤波问题中用到,因此在讲述这部分内容时,可以设计这些专业应用实例,引导学生的学习兴趣,加深学生对基础知识的理解。下面以《C语言程序设计》课程中“一维数组的应用”一节教学内容设计为例进行说明。

学习内容:一维数组的应用。

学习目标:熟悉一维数组的使用,掌握应用一维数组进行数据处理的方法,实现与后续单片机、ARM、DSP等电子信息类专业课程的有效衔接。

学习重点:应用一维数组进行数据处理的方法。

学习难点:数组元素的引用(数组下标的灵活使用)。

【任务要求】

从下列数据中找出最大值并输出:

18.5,16.3,21.4,13.2,8.6,7.5,19.2,25.3,15.7,13.8。

【课堂讨论】

求最值在电子信息数据处理中的应用:例如传感器采集数据的滤波。

【任务分析】

1、数据存储

float temper[10];

2、数据处理

int max=0;

temper[max]与temper[1]比较:

temper[max]与temper[2]比较:max=2

……

temper[max]与temper[9]比较:

3、数据输出 temper[max]

【程序代码】

#define NUM 10

main()

{ float temper[NUM]={18.5,16.3,21.4,13.2,8.6,7.5,19.2,25.3,15.7,13.8};

int i,max=0;

for(i=1;i

/*如果找到了更大的数组元素,则max 记录其下标值*/

if(temper[i]>temper[max])

max=i;

printf("The highest temperature is %.1f degrees ", temper[max]);

}

【课堂练习】

编写程序,从下列数据中找出最小值并输出(自己动手,掌握算法核心思想):

18.5,16.3,21.4,13.2,8.6,7.5,19.2,25.3,15.7,13.8

【应用举例】

演示单片机控制数码管显示时、分、秒应用系统,如图1所示现在是13时15分32秒。分析此实例中的如下关键代码(假设变量hour、min、sec分别保存时、分、秒数值),巩固“数组下标的灵活使用”这一知识点。

dispbuf [0]= code[sec%10];

dispbuf [1]= code[sec/10];

dispbuf [2]= code[min%10];

dispbuf [3]= code[min/10];

dispbuf [4]= code[hour%10];

dispbuf [5]= code[hour/10];

图1数组应用——单片机控制数码管显示

【任务拓展】

如何在后三个数码管上显示一个三位十进制整数qtity(动脑思考:实际问题中数组下标的灵活应用)。

2.2实践教学采用软件仿真与实物调试相结合目前大多数高校在单片机等课程的实践教学中只采用实验箱[4],学生只通过简单的连线就完成了硬件电路连接,而且实验箱的线路连接已经固定,因此学生不能深入掌握硬件电路的工作原理和设计方法[5],更不会自己设计硬件电路;在程序编写时也是简单的模仿实验例程,不能真正提高学生自主分析和解决问题的能力,也难以激发学习兴趣。

Proteus软件是英国Labcenter公司开发的电路分析与实物仿真软件。可实现单片机、ARM等与外部设备的仿真,可在没有实际硬件的场合实现软硬件联合调试。学生只需要一台电脑就可以完成原理图设计、PCB设计、软件编写到软硬件联合调试整个过程,有效避免了学生只能在做实验时调试程序,课堂教学、实验教学和课后自学相脱节的难题。因此,在实践教学中,可以采用Proteus系统仿真与实物调试相结合的方法,让学生更方便、直观地感受硬件编程环境和编程场景,为学生在硬件平台上的软件编程能力培养创造和提供条件。

以单片机系统实训为例,将其分为Proteus系统仿真与实物调试两个环节,图2是笔者设计的实训题目——“多功能电子万年历”的单片机系统仿真图,具有日期时间显示和调节、闹钟参数设置、温度显示、音乐播放等功能。实习内容分为基本任务和拓展任务,以满足不同层次学生的培养要求。通过该仿真环节的实现,培养学生以下几方面的技术应用能力。

1) 单片机应用系统设计方法(包括硬件电路和软件编程);

2) 按键、液晶、发光二极管、蜂鸣器等基本输出设备的使用和编程控制;

3) 时钟芯片、温度传感器等常用集成电路芯片的编程;

4) 分析和解决问题的能力、查阅资料的能力和团队合作能力。

图2单片机控制多功能电子万年历仿真图

2.3编程思维与学习兴趣的培养

传统的程序设计教学,往往把精力和时间花在语法知识上,而没有把程序设计思路作为教学重点,学生不具备编程的抽象思维能力。因此,教师要转变教学观念,从案例入手,在案例中引出问题,在问题的解决中消化知识点,然后再引导学生应用所学知识解决实际问题[6],以此激发学生的学习兴趣,培养编程思维。

采用基础实验实习实训学生竞赛的实践教学培养体系和分层递进的实践项目,将编程能力的培养贯穿于大学四年的学习之中,让编程能力培养在四年学习中不间断,一般学生的能力得到最大程度的发挥,优秀学生脱颖而出,带动和激励大多数学生的学习积极性和创造性。

在编程能力的后续培养中,一部分对编程感兴趣的同学能积极参与各种竞赛,锻炼和提升了学生的能力,另一部分学生处于自发的摸索状态,缺乏相互的交流与合作,还有大部分同学放弃了编程学习。因此,可将学生分成各种层次、类型的兴趣小组,创造良好的学习交流氛围,形成激励机制,让高年级学生或者编程能力较强的学生带动、帮扶中等和较差的学生,定期举办讲座等学术交流活动,请优秀学生讲解学习经验、开发技巧。鼓励学生参与教师的科研项目,以科研促教研,实现教学与工程实际、科学研究和社会应用的密切结合。

猜你喜欢

应用型本科
基于应用型本科人才培养的半导体器件物理基础课程教学研究
对高校人文素质教育的思考
应用型本科人才语文能力培养策略研究
利用服务质量差距模型探析应用型本科人才培养路径
校企合作共建服务类应用本科人才培养基地的研究
应用型本科院校科研反哺教学机制建设研究与实践
岗位、证书、课程“三位一体”教学方案设计改革研究
应用型本科大学英语模块化教学改革探究
应用型本科院校高等数学课程建设改革
地方新建本科高校转型发展的探索与实践