1532019年第7期(2019年7月)doi:10.3969/j.issn.1674-9499.2019.07.058黑河学院学报JOURNALOFHEIHEUNIVERSITYC语言作为一门高级计算机语言,其程序结构紧凑、数据存储灵活、运算表达式丰富,在计算机软件开发及单片机控制程序中得到了广泛应用。在高职教育工科专业中,不仅计算机专业开设C语言课程,应用电子技术专业、物联网应用技术专业、机电一体化专业都开设了该课程。但是,各专业根据本专业的人才培养方案和课程结构,对课程的教学目标有不同的定位,非计算机专业主要是培养学生以C语言为人机对话工具,让计算机按人的意愿去控制相应电子、电气设备的能力,在机电一体化专业展开的C语言教学改革就是要将机电一体化专业自身特点和计算机语言基本规则有机的结合起来,将C语言语法规范融入本专业课程中。对机电一体化专业来说,单片机和嵌入式系统等课程的学习都离不开C语言,也就是说:用户用C语言程序的形式,将自己的控制需求告诉单片机,然后,单片机按照C语言指令逐条执行,从而实现对电子设备的控制。机电一体化专业C语言课程教学,重在培养学生用C语言编程,去实现电子电气设备智能化控制的能力[1]。机电一体化专业C语言课程与计算机专业的C语言课程相比,由于其人才培养目标、专业定位和专业课程体系不同,以及学生自身的知识结构、计算机基础的差异,因而,在课程教学目标,教学内容、教学案例等方面,均与计算机专业有所差异,具有自身的专业课程特点。1.课程在专业定位中的差异C语言作为计算机专业的一门基础语言课程,是数据结构、软件开发等课程的基础,目的是培养学生的软件开发能力,故对语法、算法要求都比较高。而机电一体化专业C语言的培养目标是培养具有机电设备操作维护能力、管理组织能力,胜任机电一体化技术专业岗位的技术应用型人才,C语言课程在专业教学中的定位是能用C语言编程,对机电一体化设备进行智能化控制。是单片机、嵌入式等课程的基础,其目的是培养学生智能控制的能力,结合单片机硬件及受控的机电设备的运行特点,以C语言的形式把控制流程编写成单片机能识别的语言格式,因此,非计算机专业学习C语言对算法要求简单得多,要求对相应单片机及受控电子电气设备的硬件工作流程了如指掌,很多时候,硬件芯片开发商已编好现成的函数模块,学生只需要学会调用函数,把各函数串在一起就好。2.专业课程体系的差异机电一体化专业的C语言课程时间安排在第4学期,前期相关课程有计算机基础、电工学、数字电子技术、模拟电子技术,与C语言同期开设的课程有PLC技术、单片机技术,机电一体化专业C语言及相关课程体系定位如下页表1所示,而计算机专业的C语言开设在第2学期,其前续课程有计算机基础,后续课程有:Java程序设计、VB程序设计、软件工程等课程,计算机专业C语言及相关课程体系定位如下页表2所示。从专业课程体系来看,机电一体化专业课程体系偏硬件,前序课程只有一门计算机基础课跟C语言有关联,学习对办公软件的使用,其余均为电子电工课程,而后续的单片机和嵌入式以C语言为基础,与该课程紧密相连,也就是说,C语言作为一门计算机语言,为技术人员搭起了人与计算机(单片机、嵌入式系统)间的交流桥梁,通过单片机的输入端口接收外界信号(如按钮、传感器等),在单片机和嵌入式系统中编写C语言程序,进行一定的计算机运算,最后运算结果从单片机的输出端口传递出来,去控制电气设备的通断,或在屏幕上显示文字图像结果,从而实现电子产品的智能化。刘志云(阜阳职业技术学院工程科技学院,安徽阜阳236031)教育教学研究1542019年第7期(2019年7月)表1课程名称学分课内学时课外训练时间学期安排课程属性考核类别一二三四五计算机文化基础△36030306060必修考试电工学△36040201060必修考试自动检测技术△36440242064必修考试模拟电子技术△36440244064必修考试数字电子技术△36440244064必修考试C语言程序设计△48040408080必修考试PLC控制技术△49648484096必修考试单片机基础△48050305080必修考试自动控制技术△364402464必修考试注:标“△”的为主干课程。表2课程名称学分课内学时课外训练时间学期安排课程属性考核类别一二三四五计算机文化基础△36030306060必修考试计算机组装与维护△36040201060必修考试C语言程序设计△36440242064必修考试数据库基础△36440244064必修考试网页设计及制△36440244064必修考试VB程序设计△48040408080必修考试Java程序设计△49648484080必修考试ASP.NET技术基础△48050305080必修考试软件工程△364402464必修考试注:标“△”的为主干课程。1.授课内容改革计算机专业选用“VisualC++6.0”做为C语言的编译软件,教学内容包括:(1)数据类型、(2)运算符和表达式、(3)程序结构、(4)数组、(5)函数等基础知识,以及指针、结构体、文件等进阶知识[2]。教学中重点讲语法、抠细节,在综合能力提升方面又重逻辑,抠算法。而在机电一体化专业C语言教学中,前期学习使用“VisualC++6.0”编译软件,掌握C语言基础语法算法后,还安排学习“keil51”软件的使用。课程从7大模块展开设置任务驱动:(1)表达式与运算、(2)程序结构、(3)数组、(4)函数、(5)指针、(6)结构体、(7)位指令应用。针对学生基础差异,每个模块包含基础任务和提升任务,供教学中自主选择。在操作练习的案例选取上,前期选用“VisualC++6.0”软件编写一些常用程序案例,如比较大小、冒泡法排序、杨辉三角等,在后期提升阶段再添加部分单片机控制案例,由浅入深,引导学生逐步了解机电一体化专业学生学习C语言到底有什么用处[3]。例如,在学习完移位指令后,用C语言实现跑马灯程序,从而让学生更清楚地理解移位指令的用途,再如,用C语言控制LED常亮、闪烁、流水灯,用C语言控制电机的正反转、星型—三角形启动,用C语言控制继电器的通断等等。机电一体化专业C语言选取授课案例(如表3所示)。表3基础篇1计算两个数之和2比较两个数大小3基本算术运算4判断一个成绩是及格还是不及格,并输出结果5判断一个成绩是优秀/良好/及格/不及格中的哪一档6给出10个数,求其中最大值并输出7输出杨辉三角8给出10个数,用冒泡法/选择法排序9用递归的方法求10!10用结构体记录10个同学的个人信息,包括:姓名、性别、年龄、成绩、家庭地址应用篇1用C语言控制,点亮一个LED2用C语言控制一个LED灯闪烁3用C语言控制8个LED灯循环流水移动4用C语言控制电机的正反转5用C语言控制电机星型—三角形启动提高篇1用C语言控制液晶屏显示汉字“欢迎你”学生在操作过程中,软硬结合,形成严密的程序设计思想理念,并且,从实验结果能直观看到程序控制效果,比如,灯亮了,电机转了,学生看到实验结果有一种强烈的成就感,学习兴趣也得到提高。2.教学方法改进C语言是一门结构化高级语言,单纯的语法规则学起来枯燥无味,它的算法抽象,对逻辑思维能力一般的同学来说难以理解,但在实践应用中,却能看到程序控制的不同显示结果,让学生产生好奇,对此,根据教学模块、授课环境、教学对象的不同,采用不同的教学方法。第一,启发式教学法。所谓启发式教学是通过提问的形式来引入新概念、新知识[2]。比如,讲到数组概念时,教师提出问题,电子显示屏上要显示“欢迎新同学”的字样,教育教学研究1552019年第7期(2019年7月)怎么把这5个汉字信息传给单片机,每个汉字信息怎么编码,学生根据已学知识很容易回答:汉字点阵编码,用字模软件获取一串二进制序列;教师又问,单片机如何存储这串二进制序列呢,自然引出数组的概念。启发式教学激励学生主动思考问题,在解决实际问题的过程中理解、消化、吸收所学的理论知识[3],将理论与实际应用真正结合起来,并学会举一反三,遇到类似问题学会依照既定规律解决。第二,案例教学法。当学生具有一定基础理论知识后,再通过案例实践对基础知识加以巩固,并学会应用。创建一种“提出问题—分析问题—解决问题”的课堂教学模式,围绕每个模块中精心设计的案例展开教学,比如,在讲到位运算的时候,提出一个案例,如何设计一个程序去控制一个LED灯的闪烁,一个LED的亮灭由一个开关量控制,一个开关量即一个二进制位,如果该位为1,处于点亮状态,给这一位取反则灭了。这样,学生通过实践案例的验证,看到LED闪烁的结果,能体会到位取反指令的用法,案例教学法在解决实际问题的过程中,激发了学生的学习兴趣,增强了学生的自信心与成就感。第三,讨论教学法。为了让学生主动参与教学过程,课堂除了教师讲解环节,预留一半时间给学生,让学生分成若干小组,分组讨论,整个教学分“讲授、消化吸收、讨论,归纳”四个阶段。教师在课堂上只对基本概念讲解、重难点点拨、知识脉络梳理;然后给学生布置任务,学生通过查阅资料、熟读课本等形式,对教师所讲内容消化吸收,在课堂上分组讨论,并以小组为单位进行总结,评比。在讨论法中,学生成为教学主体,积极性高。3.“教—学—做”结合,强化学生实践C语言是一门实践性较强的课程,学生只有在不断的实验演练中提高其编程能力。在教学改革中,实施“教—学—做”一体化教学,教师理论讲解过后,布置相应实践案例,有单个知识点的小案例,有综合提高案例,学生在实践中消化吸收理论知识,其思维能力、动手能力及临场解决问题的能力都得到很好的锻炼。4.给学生预留创意空间在布置教学任务时,分基础部分和提升部分,基础部分是针对全体学生而言的,必须完成的实践任务,任务以基础为主,难度相对较小,而提升部分是针对学习基础较好的学生,在完成基础实验后,有提升的空间,任务的难度提高,从而让学生更有挑战性,培养出尖端人才。5.以赛促教,以教拖赛、教赛相长在探索C语言教学改革的过程中,逐步形成一种“以赛促教、以教拖赛、教赛相长”的教学模式,该模式从2015级学生参加了安徽省程序设计大赛(C语言类),经历半年时间的竞赛专训,2016年开始实施获得二等奖,此后,2017年和2018年分别有学生参赛并获奖。参与竞赛前的学生需要集中备赛,而备赛过程包括C语言基础知识的理解(即课堂学习)和竞赛特训,所谓竞赛特训,是将课堂学习情况稍好、对C语言又有浓厚兴趣的同学组织起来,针对竞赛范围的内容进行强化学习,深度和难度都要加强,这个过程完成后,再找出历年竞赛题、模拟题,逐一完成。以赛促教的教学模式,让学生在完成正常学习任务后,还可以激励学生向更高更深的方向发展,参赛备赛的过程是对传统教学的有效补充,指导竞赛的过程也激发教师认真钻研,从而促进课堂教学的教学成效。从竞赛模式的效果来看,获奖同学的荣誉,激发其他同学认真学习,总之,以赛促教的教学改革模式,在三年的实践中得到一定的成效,后续将继续进行下去。6.成立程序设计协会,广泛培养兴趣为把C语言的学习带到课堂外,2016年底,以学生科技社团的形式,把热爱C语言编程的学生组织起来,成立了程序设计协会,如今,协会成员包括计算机专业、机电一体化专业的学生共20余人,协会成员课外时间组织在一个实验室交流学习,学习内容主要以程序设计为主,练习程序设计大赛和单片机应用大赛的历年真题和模拟题,也会参与一些科研创新项目,协会指定专门的指导教师跟进协会成员的学习情况,定期开展交流、答疑和汇报等活动,学生学习环境轻松、积极性高。程序设计协会的学习模式,是对课堂学习模式的有效补充,学生以自学为主,重在交流,学习时间宽松自由,能有效提高学生的C语言编程水平,同时,协会成员的日常训练和学习,为参加相关竞赛积累知识和技能,为相关竞赛储备人才,自协会成立2年以来,协会成员参与各类竞赛成绩喜人,其中,2017年协会成员参加数学建模大赛获得全国一等奖,这与平时的日常训练是分不开的。7.组建优质教学团队在C语言教学改革中,组建了一支优质的教学团队,从职称来看,教授1人,副教授2人,讲师3人,助教1人,职称结构合理;从