论文部分内容阅读
摘要:针对我院自动化专业学生的学习现状,分析了C语言教学过程中存在的实际问题,通过调整教学内容、改进教学方法、加强实践教学、优化考核体系等一系列措施对C语言课程进行教学改革,取得了较好的教学效果。
关键词:C语言;自动化专业;模块化教学;对分课堂;实践教学
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)36-0145-03
Abstract: Aiming at the current situation of students learning in automation major, this paper analyzes the practical problems in C language teaching process, through a series of measures such as adjusting teaching content, improving teaching methods, strengthening practical teaching and optimizing examination system,to reform C language teaching, eventually achieved good teaching results.
Key words: C language; automation major; modular teaching; PAD class; practical teaching
1 概述
C语言是一种典型的结构化程序设计语言,它既具有高级语言语法精炼、类型丰富、表达能力强、适于模块化编程等优点,又具有低级语言高效、易控制计算机硬件等特点[1]。目前,国内高校普遍将其作为理工科入门级的程序设计公共课程,除计算机专业以外,其他专业均把它作为通识课程来实施教学。然而,该课程的培养目标应该是培养学生能够利用计算机处理问题的思维方式,启发学生主动将计算机引入到所学专业的学习中去[2]。因此,如何结合理工科专业自身特点进行“C语言程序设计”课程教学,使之既遵循课程教学的基本原则和方法,又能融入到专业学习中,是目前C语言课程教学改革的热点。
对于自动化专业来说,学生部分专业课程的学习掌握和工作中的实践应用都离不开C语言,如单片机和嵌入式系统等智能芯片就是以C语言为基础进行设计开发的。自动化专业C语言的课程讲授,要更加注重学生C语言编程应用能力的培养,充分发挥其在自动化专业课程体系中应有的作用。
2 课程教学中存在的问题
在自动化专业“C语言程序设计”课程的教学过程中,由于课程自身特点、专业人才培养体系、学生知识结构差异等多种原因,目前的教学工作面临着以下问题:
2.1 授课内容与专业课程衔接不紧密
目前,在大多数学校的非计算机专业中,C语言的教学与专业课的学习是采用完全割离的方式进行的,一般在第二学期开设C语言课程,到第四个学期才开始陆续进入专业课的学习。在传统C语言教学中,通常以“Visual C 6.0”软件为编译环境,介绍C语言的基本数据类型与表达式、控制语句、数组、函数等基础知识,此外,还会对指针、结构体、共用体、甚至文件进行详细地讲解[3]。在整个教学过程中过于注重语法、语句等细节的讲授,缺少对算法设计的练习,学生课堂参与度较低,以至于在学完整个课程之后,学生也不知道C语言在其专业中的具体用途,学完后很快就会忘记。这样会使得学生在学习过程中没有明确的学习目的,从而逐渐失去学习兴趣,不利于学生分析和解决具体实际问题能力的培养。
2.2 没有充分发挥其在自动化专业课程体系中的作用
作为一门实践性、应用性较强的课程,C语言能否学好将直接关系到自动化专业学生后期专业课的学习效果。通过C语言的学习,应该培养学生灵活运用算法思想来解决专业问题的能力,为学生进一步学习“单片机”、“嵌入式系统”等其他专业课程打下坚实的基础。但是,目前大部分高校对于C语言的定位只局限于普及计算机基础知识,授课的深度和广度不足,其价值仅仅体现在等级考试上,没有充分发挥其在自动化专业课程体系中的应有的作用。
2.3 实验实践教学效果不理想
C语言是大学入门级的程序设计语言,但是对于应用型本科院校而言,学生的基础相对来说比较薄弱,其前期的知识储备只有少量的信息技术知识,但C语言中却会涉及很多的概念和复杂的语法知识。学生普遍反映有些概念比较抽象,难以理解。所以,在教学过程中一定要将理论教学与实践教学相结合,但大部分院校在开设课程的时候往往是先讲理论后进行实践教学。这样,学生所学习的理论知识得不到及时的消化吸收,理论教学与实践教学相脱节,达不到预期的教学效果。
3 教学改革实践
针对以上存在的问题,我院计算机和自动化两个专业教研室共同制定了一系列的教改措施,并在实施过程中针对具体出现的问题及时进行调整。
3.1 调整课程结构,使教学向专业靠拢
从培养学生利用计算机解决实际操作问题的能力出发,打破传统C语言的课程结构,以“理论够用、重在实踐”为宗旨,以任务驱动为导向,将课程教学内容划分为5大模块,模块化教学内容如图1所示。每个模块包含不同的任务,完成不同能力的培养目标。整个课程以学生为主体来展开,既避免枯燥的理论讲解,又能将具体知识与后续的专业课相结合,使得整个教学过程逐步向专业靠拢。
单片机等芯片开发设计是自动化专业学生的重点学习内容之一,因此在C语言的授课过程中适当的增加简单的单片机开发案例,由浅入深,引导学生逐步了解自动化专业到底可以干什么。例如,在学习完循环结构之后,给学生演示用C语言来控制实现的跑马灯程序,这样可以让学生清楚的了解循环程序在实际案例中是如何应用的。 3.2 改进教学方法,激发学生学习兴趣
C语言是一种面向过程的高级语言,在理论讲解时,其语法规则复杂繁琐,而在上机实验时,抽象的算法程序也很难激发学生的学习兴趣。针对这些特点,根据教学模块内容不同、授课环境不同、教学对象不同设置不同的教学方法。
3.2.1 启发式教学法
启发式教学是在讲授新概念、新的语法知识的时候,通过提问的方式来引入的一种教学方法[4]。比如,在讲授变量定义这一知识点时,教师先进行提问:我们班一共有多少个人?人数是用什么数来表示的?学生一般会回答人数是用整数来表示的。接下来教师进一步进行提问:那么在编写程序的时候,怎么体现出人数是一个整数呢?这个时候学生会回答:我们可以告诉计算机,用整数来表示人数。顺理成章的老师的第三个问题就会出来:我们怎么告诉计算机呢?这样很自然的就可以引出变量定义这个知识点。通过这种启发式教学,可以促使学生主动地进行思考,建立起所学内容与解决实际问题之间的联系,当再次遇到类似问题的时候可以很快的得到解决方法,真正做到即学即用,达到学以致用的教学目的。
3.2.2 案例教学法
通过启发式教学,学生对于基本语法知识有了一定了解之后,再让案例教学贯穿于整个课堂教学之中。创建一种“提出问题—分析问题—解决问题”的课堂教学模式,围绕每个模块中精心设计的案例展开教学,这样不但可以激发学生的学习兴趣,还能够在解决问题的过程中增强学生的自信心与成就感。
3.2.3 对分教学法
为了提高学生的学习积极性,使学生由被动地跟着老师的思维走,变成积极主动地和老师一起思考,还可以采用对分教学法。对分教学是一种新的课堂教学模式,其核心理念为:教师将课堂时间一分为二,一半时间由教师进行整体的讲授,另一半时间则分配给学生,让学生以讨论的形式进行学习[5]。采用对分教学法时,整个教学过程被分为“讲授、内化吸收、讨论”三个阶段来完成[6]。教师在课堂上只对内容框架、基本概念、重难点进行整体的讲解;接下来学生利用为期一周的时间,通过阅读课本、查阅资料等方式,对教师所讲授的内容进行内化吸收;在下次上课的时候,对于这一周的学习内容,学生在课堂上分小组进行讨论,并以小组为单位对讨论结果进行总结,最后由老师进行点评。
3.3 加强实践教学,理论与实践紧密结合
C语言是一门实践性较强的课程,学生的编程能力必须要通过不断的上机实践才能得到提高。但是,从目前的实验课来看,实验课效果并不理想,学生普遍认为编程无从下手,整个实验课课堂效率较低。为了解决这一问题,我们在上机实践的教学过程中采取以下措施:
3.3.1 合理设置实验内容
针对上述模块中所涉及的知识点,精心设计实验内容,要求学生根据所学的知识进行程序设计。在设计实验内容的时候,还要考虑到学生的理解水平和接受知识能力的差异,将每次的实验内容分为必做实验和选做实验。必做实验是每个学生必须要完成的内容,对于知识掌握较好的学生,则鼓励他们尝试去完成选做实验。
3.3.2 理论授课进机房
传统教学中,通常是每周先在教室进行2次理论授课,再在机房进行1次上机实践。这种“先理论后实践”的教学方式会导致理论与实践相脱节,对于所学的知识点学生无法在第一时间进行上机实践。在本次教学改革中,我们尝试将理论课也放在机房进行授课,在上课的过程中,每个学生一台电脑,教师每讲完一个知识点后,学生立马进行编程实践。这种理论与实践相融合的方式,不仅能够帮助学生更好地去理解抽象的语法知识,同时也能够增强学生学习C语言的学习兴趣。
3.3.3 教学软件辅助实践教学
在实践教学中,因为每个学生都拥有电脑,可能会出现学生利用电脑进行课程学习以外的行为,因此课堂纪律的维持是至关重要的,教师必须要做好对学生机的控制。这里,我院采用的是长城电子教室系统,通过该系统教师可以对每一个学生的电脑进行严格的监控。在每次上课之前,教师通过该系统对学生进行电子点名,检查学生的出勤情况。除此之外,教师还可以利用该系统进行广播教学,对于一些较复杂的程序,可以利用广播教学教会学生跟踪调试程序的方法,使学生在以后的编程过程中,可以用同样的方法来调试自己的程序,及时发现程序中的逻辑问题并解决问题。
3.4 优化课程考核方式,完善考核评价体系
传统的C语言考核是闭卷笔试的方式,这样会导致学生重理论轻实践,很多学生期末考试虽然得分很高,但是编程能力却一般。为了避免此类现象的出现,在本次教改中,我们逐步加重过程考核的比重,降低期末卷面成绩的比重。学生最终的成绩由卷面成绩和过程考核成绩两部分组成,期末卷面成绩占50%,过程考核成绩占50%。其中过程考核成绩又分为两部分,一部分由每次上机实践过程中学生的出勤、上机表现和实践报告组成,占过程考核的30%;另一部分由综合实践组成,占过程考核的70%。在综合实践中,將学生进行分组,教师提供若干个项目题目供题目选择。学生由3-5人组成一个项目小组,各自分工明确,小组合作完成程序设计、代码编写、程序调试,撰写综合报告,并制作PPT进行综合答辩,最后根据各个环节的完成情况由教师给出综合实践的成绩。通过这种综合实践的方式,能够把理论知识的学习和动手实践能力的培养有效结合起来,最大程度挖掘出学生的创造力,让学生具有分析和解决实际问题的能力。
4 结束语
自动化专业C语言课程的教学改革,在教授学生如何学习编程、培养学生逻辑思维能力的过程中,不断尝试新的教学方法,并将C语言的教学与自动化专业课程体系相结合。通过连续两年对我院自动化专业学生的教学改革试点情况来看,学生的学习积极性和对课堂教学的满意度明显得到了提高,学习效果显著增强,后续专业课的学习效果也得到了较为明显的改善。接下来,我们将根据实际教学情况,对本文提出的教改措施进行进一步的完善,形成一套适用于自动化专业的、并且具有良好教学效果的教学方案。
参考文献:
[1] 谭浩强.C程序设计[M].3版.北京:清华大学出版社,2009.
[2] 陈丽敏,邵长友.基于自动化专业C语言课程教学改革的研究[J].中国电力教育,2013(31):76.
[3] 胡艳华.独立学院非计算机专业C语言程序设计教改简论[J].计算机教育,2011(20):49-52.
[4] 余炳辉,孙娟.《C语言》课程教改浅论[J].学术论坛,2009(27):222.
[5] 王飞飞,张素真.“对分”在C语言实训教学中的探索与应用[J].科技资讯,2016(29):109-111.
[6] 张学新.对分课堂:大学课堂教学改革的新探索[J].复旦教育论坛,2014,12(5):5-10.
关键词:C语言;自动化专业;模块化教学;对分课堂;实践教学
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)36-0145-03
Abstract: Aiming at the current situation of students learning in automation major, this paper analyzes the practical problems in C language teaching process, through a series of measures such as adjusting teaching content, improving teaching methods, strengthening practical teaching and optimizing examination system,to reform C language teaching, eventually achieved good teaching results.
Key words: C language; automation major; modular teaching; PAD class; practical teaching
1 概述
C语言是一种典型的结构化程序设计语言,它既具有高级语言语法精炼、类型丰富、表达能力强、适于模块化编程等优点,又具有低级语言高效、易控制计算机硬件等特点[1]。目前,国内高校普遍将其作为理工科入门级的程序设计公共课程,除计算机专业以外,其他专业均把它作为通识课程来实施教学。然而,该课程的培养目标应该是培养学生能够利用计算机处理问题的思维方式,启发学生主动将计算机引入到所学专业的学习中去[2]。因此,如何结合理工科专业自身特点进行“C语言程序设计”课程教学,使之既遵循课程教学的基本原则和方法,又能融入到专业学习中,是目前C语言课程教学改革的热点。
对于自动化专业来说,学生部分专业课程的学习掌握和工作中的实践应用都离不开C语言,如单片机和嵌入式系统等智能芯片就是以C语言为基础进行设计开发的。自动化专业C语言的课程讲授,要更加注重学生C语言编程应用能力的培养,充分发挥其在自动化专业课程体系中应有的作用。
2 课程教学中存在的问题
在自动化专业“C语言程序设计”课程的教学过程中,由于课程自身特点、专业人才培养体系、学生知识结构差异等多种原因,目前的教学工作面临着以下问题:
2.1 授课内容与专业课程衔接不紧密
目前,在大多数学校的非计算机专业中,C语言的教学与专业课的学习是采用完全割离的方式进行的,一般在第二学期开设C语言课程,到第四个学期才开始陆续进入专业课的学习。在传统C语言教学中,通常以“Visual C 6.0”软件为编译环境,介绍C语言的基本数据类型与表达式、控制语句、数组、函数等基础知识,此外,还会对指针、结构体、共用体、甚至文件进行详细地讲解[3]。在整个教学过程中过于注重语法、语句等细节的讲授,缺少对算法设计的练习,学生课堂参与度较低,以至于在学完整个课程之后,学生也不知道C语言在其专业中的具体用途,学完后很快就会忘记。这样会使得学生在学习过程中没有明确的学习目的,从而逐渐失去学习兴趣,不利于学生分析和解决具体实际问题能力的培养。
2.2 没有充分发挥其在自动化专业课程体系中的作用
作为一门实践性、应用性较强的课程,C语言能否学好将直接关系到自动化专业学生后期专业课的学习效果。通过C语言的学习,应该培养学生灵活运用算法思想来解决专业问题的能力,为学生进一步学习“单片机”、“嵌入式系统”等其他专业课程打下坚实的基础。但是,目前大部分高校对于C语言的定位只局限于普及计算机基础知识,授课的深度和广度不足,其价值仅仅体现在等级考试上,没有充分发挥其在自动化专业课程体系中的应有的作用。
2.3 实验实践教学效果不理想
C语言是大学入门级的程序设计语言,但是对于应用型本科院校而言,学生的基础相对来说比较薄弱,其前期的知识储备只有少量的信息技术知识,但C语言中却会涉及很多的概念和复杂的语法知识。学生普遍反映有些概念比较抽象,难以理解。所以,在教学过程中一定要将理论教学与实践教学相结合,但大部分院校在开设课程的时候往往是先讲理论后进行实践教学。这样,学生所学习的理论知识得不到及时的消化吸收,理论教学与实践教学相脱节,达不到预期的教学效果。
3 教学改革实践
针对以上存在的问题,我院计算机和自动化两个专业教研室共同制定了一系列的教改措施,并在实施过程中针对具体出现的问题及时进行调整。
3.1 调整课程结构,使教学向专业靠拢
从培养学生利用计算机解决实际操作问题的能力出发,打破传统C语言的课程结构,以“理论够用、重在实踐”为宗旨,以任务驱动为导向,将课程教学内容划分为5大模块,模块化教学内容如图1所示。每个模块包含不同的任务,完成不同能力的培养目标。整个课程以学生为主体来展开,既避免枯燥的理论讲解,又能将具体知识与后续的专业课相结合,使得整个教学过程逐步向专业靠拢。
单片机等芯片开发设计是自动化专业学生的重点学习内容之一,因此在C语言的授课过程中适当的增加简单的单片机开发案例,由浅入深,引导学生逐步了解自动化专业到底可以干什么。例如,在学习完循环结构之后,给学生演示用C语言来控制实现的跑马灯程序,这样可以让学生清楚的了解循环程序在实际案例中是如何应用的。 3.2 改进教学方法,激发学生学习兴趣
C语言是一种面向过程的高级语言,在理论讲解时,其语法规则复杂繁琐,而在上机实验时,抽象的算法程序也很难激发学生的学习兴趣。针对这些特点,根据教学模块内容不同、授课环境不同、教学对象不同设置不同的教学方法。
3.2.1 启发式教学法
启发式教学是在讲授新概念、新的语法知识的时候,通过提问的方式来引入的一种教学方法[4]。比如,在讲授变量定义这一知识点时,教师先进行提问:我们班一共有多少个人?人数是用什么数来表示的?学生一般会回答人数是用整数来表示的。接下来教师进一步进行提问:那么在编写程序的时候,怎么体现出人数是一个整数呢?这个时候学生会回答:我们可以告诉计算机,用整数来表示人数。顺理成章的老师的第三个问题就会出来:我们怎么告诉计算机呢?这样很自然的就可以引出变量定义这个知识点。通过这种启发式教学,可以促使学生主动地进行思考,建立起所学内容与解决实际问题之间的联系,当再次遇到类似问题的时候可以很快的得到解决方法,真正做到即学即用,达到学以致用的教学目的。
3.2.2 案例教学法
通过启发式教学,学生对于基本语法知识有了一定了解之后,再让案例教学贯穿于整个课堂教学之中。创建一种“提出问题—分析问题—解决问题”的课堂教学模式,围绕每个模块中精心设计的案例展开教学,这样不但可以激发学生的学习兴趣,还能够在解决问题的过程中增强学生的自信心与成就感。
3.2.3 对分教学法
为了提高学生的学习积极性,使学生由被动地跟着老师的思维走,变成积极主动地和老师一起思考,还可以采用对分教学法。对分教学是一种新的课堂教学模式,其核心理念为:教师将课堂时间一分为二,一半时间由教师进行整体的讲授,另一半时间则分配给学生,让学生以讨论的形式进行学习[5]。采用对分教学法时,整个教学过程被分为“讲授、内化吸收、讨论”三个阶段来完成[6]。教师在课堂上只对内容框架、基本概念、重难点进行整体的讲解;接下来学生利用为期一周的时间,通过阅读课本、查阅资料等方式,对教师所讲授的内容进行内化吸收;在下次上课的时候,对于这一周的学习内容,学生在课堂上分小组进行讨论,并以小组为单位对讨论结果进行总结,最后由老师进行点评。
3.3 加强实践教学,理论与实践紧密结合
C语言是一门实践性较强的课程,学生的编程能力必须要通过不断的上机实践才能得到提高。但是,从目前的实验课来看,实验课效果并不理想,学生普遍认为编程无从下手,整个实验课课堂效率较低。为了解决这一问题,我们在上机实践的教学过程中采取以下措施:
3.3.1 合理设置实验内容
针对上述模块中所涉及的知识点,精心设计实验内容,要求学生根据所学的知识进行程序设计。在设计实验内容的时候,还要考虑到学生的理解水平和接受知识能力的差异,将每次的实验内容分为必做实验和选做实验。必做实验是每个学生必须要完成的内容,对于知识掌握较好的学生,则鼓励他们尝试去完成选做实验。
3.3.2 理论授课进机房
传统教学中,通常是每周先在教室进行2次理论授课,再在机房进行1次上机实践。这种“先理论后实践”的教学方式会导致理论与实践相脱节,对于所学的知识点学生无法在第一时间进行上机实践。在本次教学改革中,我们尝试将理论课也放在机房进行授课,在上课的过程中,每个学生一台电脑,教师每讲完一个知识点后,学生立马进行编程实践。这种理论与实践相融合的方式,不仅能够帮助学生更好地去理解抽象的语法知识,同时也能够增强学生学习C语言的学习兴趣。
3.3.3 教学软件辅助实践教学
在实践教学中,因为每个学生都拥有电脑,可能会出现学生利用电脑进行课程学习以外的行为,因此课堂纪律的维持是至关重要的,教师必须要做好对学生机的控制。这里,我院采用的是长城电子教室系统,通过该系统教师可以对每一个学生的电脑进行严格的监控。在每次上课之前,教师通过该系统对学生进行电子点名,检查学生的出勤情况。除此之外,教师还可以利用该系统进行广播教学,对于一些较复杂的程序,可以利用广播教学教会学生跟踪调试程序的方法,使学生在以后的编程过程中,可以用同样的方法来调试自己的程序,及时发现程序中的逻辑问题并解决问题。
3.4 优化课程考核方式,完善考核评价体系
传统的C语言考核是闭卷笔试的方式,这样会导致学生重理论轻实践,很多学生期末考试虽然得分很高,但是编程能力却一般。为了避免此类现象的出现,在本次教改中,我们逐步加重过程考核的比重,降低期末卷面成绩的比重。学生最终的成绩由卷面成绩和过程考核成绩两部分组成,期末卷面成绩占50%,过程考核成绩占50%。其中过程考核成绩又分为两部分,一部分由每次上机实践过程中学生的出勤、上机表现和实践报告组成,占过程考核的30%;另一部分由综合实践组成,占过程考核的70%。在综合实践中,將学生进行分组,教师提供若干个项目题目供题目选择。学生由3-5人组成一个项目小组,各自分工明确,小组合作完成程序设计、代码编写、程序调试,撰写综合报告,并制作PPT进行综合答辩,最后根据各个环节的完成情况由教师给出综合实践的成绩。通过这种综合实践的方式,能够把理论知识的学习和动手实践能力的培养有效结合起来,最大程度挖掘出学生的创造力,让学生具有分析和解决实际问题的能力。
4 结束语
自动化专业C语言课程的教学改革,在教授学生如何学习编程、培养学生逻辑思维能力的过程中,不断尝试新的教学方法,并将C语言的教学与自动化专业课程体系相结合。通过连续两年对我院自动化专业学生的教学改革试点情况来看,学生的学习积极性和对课堂教学的满意度明显得到了提高,学习效果显著增强,后续专业课的学习效果也得到了较为明显的改善。接下来,我们将根据实际教学情况,对本文提出的教改措施进行进一步的完善,形成一套适用于自动化专业的、并且具有良好教学效果的教学方案。
参考文献:
[1] 谭浩强.C程序设计[M].3版.北京:清华大学出版社,2009.
[2] 陈丽敏,邵长友.基于自动化专业C语言课程教学改革的研究[J].中国电力教育,2013(31):76.
[3] 胡艳华.独立学院非计算机专业C语言程序设计教改简论[J].计算机教育,2011(20):49-52.
[4] 余炳辉,孙娟.《C语言》课程教改浅论[J].学术论坛,2009(27):222.
[5] 王飞飞,张素真.“对分”在C语言实训教学中的探索与应用[J].科技资讯,2016(29):109-111.
[6] 张学新.对分课堂:大学课堂教学改革的新探索[J].复旦教育论坛,2014,12(5):5-10.