基于成果导向教育的计算机程序设计课程教学改革探讨
2020-12-28王军邓承志王员云李璠徐晨光张绍泉
王军 邓承志 王员云 李璠 徐晨光 张绍泉
摘要:在介绍了成果导向教育的思想和关键问题的基础,深入分析目前C语言程序设计课程教学中存在的不足和问题。提出了基于成果导向教学的C语言程序设计课程的改革思路,并从教学理念、培养目标、教学内容和形式以及课程考核方式等方面进行探讨。该模式能充分调动学生的学习积极性,提高人才培养质量。
关键词: 成果导向教育;教学模式;程序设计课程; 培养模式
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2020)31-0138-03
Abstract: Based on the introduction of the thought and key problems of outcome based education, this paper deeply analyzes the shortcomings and problems of C programming course under the current teaching mode. Based on outcome based education, this paper puts forward the reform idea of c programming course, and discusses the teaching idea, training goal, teaching content and form, and the way of curriculum assessment. This model can fully arouse students' enthusiasm for learning and improve the quality of talent training.
Key words: Outcome based Education; Teaching Model; Programming Courses
1 引言
成果导向教育(Outcome Based Education,简称OBE)是一种以学生的学习成果为导向的教育理念,它以“人人都能学会为前提,以学生为中心、成果为导向而设计的教育模式”。最早是由Spady 等人在1981年提出的,之后在美国、加拿大以及英国等国家得到了普遍的认可,并引起了广泛的重视,成为世界很多国家进行教育改革和发展的主要理念。随后,我国也出台了相关的政策,启动工程教育认证的工作。并成为很多的专业建设和发展的主流教育理念,很多的高新都开展了工程教育专业认证工作,并取得了很好的成效。在《工程教育認证标准(2014)》等文件中,特别强调了工程认证的重要性,突出成果导向[1]。
OBE强调学生的最后的学习成果,特别要求做到以下的几个方面:1)我们想让学生取得的学习成果是什么;2)为什么要让学习取得这样的学习成果;3)怎么帮助学生取得这样的学习成果;4)学生取得这样的学习成果的评价方法;5)如何保障学生取得这样的学习成果。同时,要求进行工程教育专业认证的专业必须把握OBE教育的关键问题:1)明确毕业达成效果;2)按照毕业要求合理安排整个教学活动;3)合理评价毕业要求的达成情况。根据工程教育专业认证的要求,所有的教学活动必须依据最终的成果进行安排,明确学生在毕业以后的需求,采取有效的教学方法,并有效地进行成果评价等[2-3]。
本文将以C语言程序设计课程为例,分析该课程目前的教学现状,并就课程教学内容等方面探索基于成果导向的教学改革。随着计算机技术的飞速发展,尤其是人工智能、数据科学与技术的快速发展和广泛应用,C语言已成为程序开发应用中最受欢迎和使用最普遍的语言之一,越来越受到广泛关注。软件行业和社会对C语言开发人员的需求量也越来越大。目前,很多的高校都开设了《C语言程序设计》。而且,大多数高校的计算机科学与技术、软件工程等专业都将C语言作为开发入门语言,同时《C语言程序设计》也是其他专业的基础选修课。对C语言的掌握程度直接影响学生的开发能力、计算思维的培养,以及后续专业课程的学习。然而,传统的C语言教学中,主要以教师为中心,在教学内容上侧重于语言语法的讲解,实验课上主要以验证性试验为主。目前的教学方式难以满足社会对人才培养的要求,在该课程的教学中必须引入以成果导向教学模式,提升课程教学效果和人才培养质量。
2 计算机程序设计课程教学现状
计算机程序设计课程是高校计算机专业和相关专业的基础课程,在学生的计算思维培养、实践能力锻炼中发挥着重要的作用。通过该课程的学习,使学生掌握相关的编程技术、培养学生的程序设计方法和思维能力,并最终转化为解决实际问题的能力和方法技巧。课程作为人才培养的重要途径和过程,程序设计课程分为课堂教学和实验教学两大块。很多高校都开设《C语言程序设计》课程,通过调查和总结目前计算机程序设计C语言的教学过程和效果,从中可以分析发现该课程在教学中存在一些不足和问题,主要包括以下几点:
(1)教学过程中重理论轻实践。在教学过程中,主要以课堂上教师讲解为主,学生主要以听课的方式被动接受知识。讲解的内容侧重于基本语法的规则,对于一些实际的应用实例以及算法和应用讲解较少。在讲解过程中,通常是突出语法的重要性和规则的完整性。在知识的讲解中,对于一些抽象的数学思维,部分学生很难理解和掌握。在相应的实验中,主要以验证语法的使用方法,学生照搬代码进行运行。学生虽然能够掌握了一些基本的语法知识点和使用方法,但难以形成完整的知识体系,知识点之间难以融会贯通。而且存在实践和理论课程教学之间的脱节。学完课程之后,学生通常只会应用基本的语法规则编写一些简单程序代码。而对于一些具体的应用性的实例,学生很难独自进行问题的分析和解决[4]。
(2)教学目标不够明确,教学方法单一。C语言编程课程是计算机科学与技术等相关专业的必修课,对于以后的专业课的学习和学生的计算思维的培养有至关重要的作用。而目前的教学中,并没有从根本上进行学生计算思维的培养和训练,在课程的教学中,算法的教学没有放在首要的位置,学生利用相关的算法解决计算机领域中的实际问题的能力没有得到很好的训练和培养。在教学方法上,也只是在课堂上进行语法的讲解和实验课上的简单练习。实验内容也比较单一,只是强调语法规则的使用和掌握,编写的代码较简短。
(3)教学内容与教学安排有待调整。在C语言的教学内容中,基本数据类型、分支结构、循环结构、数组等内容容易理解,而函数、指针以及结构体等内容偏难,学生较难理解和应用。在目前的教学安排中,受课时数等因素的限制,在实际的教学中,往往重点在于讲解前面部分的内容并进行适当的练习,而在指针等内容上讲解较少。然而,在实际的问题解决和应用中,函数和指针等内容是实际应用中的重点,在具体解决实际问题时都会应用。要解决这样的问题,必须采用成果导向的方式,重新调整教学内容的安排和具体实施。
(4)课程考核方式单一。课程考核是检验课程教学效果的有效途径之一。目前,在C语言程序设计课程的考核中,部分高校仍然是采用笔试的方式进行考核。题型包括单选题、判断题、填空题、简答题以及编程题等。课程的考核点主要还是对基本语法的考查和应用,学生对课程的掌握还是处于记忆阶段和语法理解阶段,而对于具体应用和解决实际问题的方法等考核的较少。目前的一些高校采取上机考试的方式进行考核,这样的考核方式比采用试卷进行笔试的方式虽然有很大的改进,上机考试可以让学生编程程序并进行调试等。但这样的方式,对于学生的实践能力和工程能力的培养、解决实际问题的能力以及对学生的毕业达成等都无法达到要求[5]。
3 基于成果导向的程序设计课程教学改革
通过分析和总结目前在《C语言程序设计》课程中存在的一些不足之处,为了进一步提升该课程的教学效果,提高学生的培养质量,以下将以成果导向教育理论为出发点,进行该课程教学改革探讨。从培养成果和学生的实际情况出发,通过调整教学内容、教学目标、教学形式以及考核方式等方面,从教学成果入手,强化理论与实践的完整结合。全面培养学生的计算思维能力,提升解决实际问题的能力和工程能力等。
(1)在教学理念方面,培养和激发学生的学习兴趣。在传统的程序设计课程的教学中,主要是以教师为主、以课堂讲解为主的方式进行学习。而在基于成果导向的教学中,需要向以学生主导的教学模式转变,激发学生的学习兴趣和学习乐趣。在以兴趣为主的教学方式中,强调的是培养学生之间的团队合作意识。在这样的教学理念中,要求教师和学生在思想上都要有相应的转变。首先,教师需要转变观念,从以往的课堂主宰转变到与学生进行合作的位置。而学生也将从传统的被动接受教师讲解内容的模式转变为主动快乐的学习状态,并将最终的学习成果作为最大的收获。这个过程需要教师和学生同时在思想和实施过程中进行改变。
同时,以兴趣为主的教学过程中,需要教师与学生之间、以及学生与学生之间进行团队协作,教师着力培养学生学习的兴趣和激情,而学生之间也需要很好地进行交流和合作。比如,在程序设计过程中,对于同样的问题,学生可以用不同的方法进行解决,只要最终的解决方法是可行的就可以。从同一个问题出发,得到多种不同的解决方法,学生之间可以相互交流和探讨,找出最简洁的解决思路和代码,在交流中提升大家解决问题的能力和编程能力。学生在快乐中学习,增强大家的自信心,也培养了学习的兴趣和快乐。
(2)在培养目标上,重新调整课程培养目标。基于成果导向的人才培养中,需要充分考虑社会需求对人才的要求,让输出的人才与就业岗位实现无缝对接,在制定人才培养目标中需要将短期的需求、人才长期的发展相结合,同时还有考虑人才今后的发展需求等综合因素。在具体的课程教学目标中,需要根据社会和国家对计算机专业人才的实际需求,在具体人才培养实施过程中,既要让学生掌握基础的知识,同时还要训练学生的实践能力和工程能力,实现人才的培养质量和能力与社会岗位需求相衔接[6]。
在教学目标的确定过程中,需要考虑不同层次和不同水平的学生的差异性,有针对性地制订不同的教学目标,在因材施教的过程中让学生体会学习之后的成果,享受成果带来的快乐,进一步培养学习的兴趣。在整个课程的教学中,应将理论与实践紧密结合,在实验安排上将重点放在算法的训练上,不能仅仅只是简单的语法应用。通过大量的编写程序,熟练掌握一些算法的应用,掌握解决一些实际问题的思路和方法。对于同一类型的问题,可以让学生尝试用不同的算法进行解决,并进行问题的归纳和总结。在代码的编写中,可以进行适当的模仿和重现,在实际问题中提升编写代码的能力并积累经验。
(3)在教学内容和教学形式上,依据教学大纲的要求,采用有针对性的多样化的过程教学。在C语言程序设计课程的教学过程中,一切从学生出发,改变传统的以课堂讲解为主的方式为以学生为中心、引导学生主动学习的教学方式,积极提升学生的学习能力和实践能力。在具体的教学内容上,采用提前提出問题,让学生进行自主学习和课前预习,并通过提前分析实例掌握一些基本的知识。然后在课堂上主要采用小组讨论、学生演练,在此基础上教师再针对重点内容和方法等进行总结归纳与讲解。这样可以让学生积极参与课堂内容的教学与学习,让学生通过提前分析实例和代码提升程序设计能力和效率。通过具体实例的分析,再进行知识点的引出和讲解,将重要的知识点融入实例中进行有趣味的学习和掌握。
在教学过程中,采用案例教学和以问题为导向的方式,将传统的教师讲解教学向以学生为中心的方式转变,以学生参与课堂教学、进行小组讨论等方式转变。通过设计教学案例,让学生在小组讨论中激发更多的思维方法,鼓励学生在讨论中批判性的接收新知识和方法,采用多种教学方法和教学手段的有效结合。
(4)在课程考核方面,采用理论知识考核、实验考核与实践能力考核等。在理论考核中,侧重考查学习对基本知识点的掌握程度,特别是基本语法规则的掌握熟练程度。实验考核侧重于考查学生对基本语法和基本编程代码规则的熟练应用程度。而时间考核则重点考核解决问题的能力、思维方法和算法设计能力等。在考核过程中,不同的学生应该区别对待,为不同的学生设置不同的考核标准和参照。基于成果导向教育在考核机制上与以往的教学中的考核方式是完全不一样的,其核心是培养和提升学生的多种素质和能力。在C语言程序设计课程中的考核中,针对不同的能力考核可以使用不同的题型和方式。例如,在进行理论知识考核中,可以使用填空题、选择题和简答题等,在实验考核中,使用一般的程序设计基础题、程序填空题以及程序改错题等,而在实践能力考核中主要考查学生解决实际问题的算法设计能力和程序编写、调试能力等。
4 总结
目前的程序设计课程中存在一些不足和问题,基于成果导向教学模式,通过教学改革,在提升学生专业素养的人才整体培养质量的同时,也提高了教师自身的教学能力。基于成果导向教育模式将是高校教育中的主要改革方向。
参考文献:
[1] 李志义.成果导向的教学设计[J].中国大学教学,2015(3):32-39.
[2] 李英敏,田苗.成果导向教育理论视角下实践育人实效性研究——以某工科高校为例[J].吉林建筑大学学报,2015,32(4):88-91.
[3] 刘梅彦,徐英慧,周淑一.基于成果导向的“Python程序设计”教学设计[J].电脑知识与技术,2017,13(20):105-107.
[4] 张翠平,赵晖.基于“学习成果导向”理念的教学研究——以C语言程序设计课程为例[J].计算机教育,2020(3):153-156,161.
[5] 刘胜艳.基于成果导向的《C语言程序设计》课程的教学改革研究[J].电脑知识与技术,2017,13(15):130-131.
[6] 王毅,黄建忠,张沪寅.基于成果导向理念的计算机新工科人才培养[J].计算机教育,2020(2):8-11,15.
【通联编辑:王力】