基于PBL的C语言课程设计教学研究
2021-01-13李广原卢守东胡小春柯琦
李广原 卢守东 胡小春 柯琦
摘要C语言课程设计是计算机类专业的一门基础实践课程。针对该课程在教学上普遍存在教学方法单一、教学效果欠佳等问题,阐述在C语言课程设计中应用PBL进行教学的方法。提出在实施PBL教学过程中应注意的几个问题,并对相关问题进行探讨,以期为C语言课程设计教学提供有益的借鉴。
关键词 C语言课程设计 PBL 教学方法 教学评价
中图分类号:G424文献标识码:ADOI:10.16400/j.cnki.kjdk.2021.29.044
ResearchontheTeachingofCLanguageCurriculumDesignBasedonPBL
LI Guangyuan, LU Shoudong, HU Xiaochun, KE Qi
(SchoolofInformationandStatistics,GuangxiUniversityofFinanceandEconomics,Nanning,Guangxi530003)
AbstractC Language curriculum design is a basic practical course for computer majors. Aiming at the problems of single teaching method and poor teaching effect in the teaching of this course, this paper expounds the teaching method of applying PBL in C Language curriculum design. This paper puts forward several problems that should be paid attention to in the implementation of PBL teaching, and discusses the relevant problems, in order to provide useful reference for the teaching of C Language curriculum design.
KeywordsC Language curriculum design; PBL; teaching method; teaching evaluation
C语言课程设计是计算机类专业开设的一门基础实践课程,它是C语言程序设计课程的后续课程。通过该课程的学习,旨在使学生打下扎实的程序设计基础并培养学生浓厚的学习兴趣。通常该门课程的教学课时数比较少,完成课程设计任务重。虽然在课程设计之前,学生已学完C语言程序设计这门课,具备了一定的程序设计基础,但要独立完成课程设计的任务,很多学生仍然感到比较吃力。通常该门课教学常见的做法是给学生一个题目,或者让学生自主拟题,个人独立或分组协作完成一个功能较为完整的项目。这种做法对于基础好、学习能力强的学生来说,是可行的。而对于那些基础比较差,学习能力相对较弱的学生,就比较难完成任务,这样就难以达到应有的教学效果。为此,本文探讨在C语言课程设计教学中采用基于PBL的教学方法来改进教学,并对相关问题进行探讨。
1 PBL教学法
基于问题学习(Problem-based Learning,简称PBL)是一种以问题学习为导向的教学模式,它以学生为中心,以解决问题为动机的课程教学方法。在国外,这种教学法已应用到多个学科的教学,其最先是应用在医学学科上,然后又应用到数学、经济和工程学科上。PBL教学旨在培养学生自主探索、深入学习的能力,在这个过程中,也培养学生具有良好的团队合作精神。组建团队和角色分配是使用PBL进行教学的基本要求。文献[1]给出了PBL的六个特点:学习是以学生为中心,以团队的方式进行;教师作为指导者参与学习过程;学习开始时给出真实的问题;通过解决问题来获取必要知识;获取问题求解技巧的途径;通过主导学生来获取信息并最终达到学习目标。在国内,在信息技术类课程中应用PBL进行教学的案例并不多见,只有少量的文献对PBL进行了研讨。比如,文献[2-4]对PBL应用于程序设计课程的教学进行了探讨。在实施PBL教学方法的过程中,我们认为,应该注意做好以下几方面的工作。
1.1分组
分组是基于PBL教学的要求来进行的,这也是进行课程设计的第一步。建立小组有利于协作攻关,培养团队合作精神。在PBL教学中,通常以小组形式围绕一个项目来进行学习与研究。小组的人数不宜太多或太少,以4~6人为宜,人数太多和太少,都不便于任务的分配和考核,每个小组设立组长一名,负责项目管理和协调小组中各成員的工作,小组成员的工作可以按系统设计、编码、测试、编写文档等模块来分配,也可以由全体成员共同对各模块进行研究。小组成员的组成应该根据学生平时学习情况来定,在一个小组内,应该存在学习能力比较强和不那么强的学生,也应该有比较活跃和不那么活跃的学生,通过这样的混合组合,能够起到先进带后进,活跃的学生带动不活跃的学生讨论,使得小组学习研讨气氛活跃,人人都能够在讨论中有所收获和增长知识,最后达到共同进步的目的。
1.2教师的作用
教师在课程设计教学中,绝不是旁观者,而是积极的参与者。虽然小组的划分是根据学生的学习等情况来进行混搭而成,但是小组工作是否能够顺利开展,任务能否按时完成,各项教学目的能否实现,这些都离不开教师的引导和帮助。在课程设计过程中,教师要对学生的各项设计活动进行指导。教师要设计好教学过程并确定好教学内容,积极参与各小组的讨论。在课程设计前,教师可以有针对性地把C语言的主要知识点及相关应用案例进行讲解。由于学生的基础与技能存在一定的差距,为使全体学生通过课程设计达到共同进步的目的,教师要特别关注基础较差、自学能力较弱的学生,对这部分的学生要给予更多的帮助和关爱,使得他们能够和其他学生一样掌握利用C语言进行项目设计与开发的技能。
1.3项目的选择
项目的选择是一个重要的问题。进行课程设计前,大多数学生都是刚学习了程序设计语言,只具备了一定的程序设计基础。所以课程设计所选的题目不要太大,题目太大,学生没有能力完成,会挫伤他们学习的积极性。项目过小同样也不好,学生会感觉学不到东西,同样达不到教学目标。项目要适中但要覆盖C的重要内容,如指针、结构体、文件等。为了使学生有更多的选择范围,可以建立项目库。项目要反映现实生活中的问题,让学生感觉到编程的乐趣。此外,为便于学生顺利完成所选項目的开发工作,可适当提供若干个完整的项目(含源代码)供学生研讨并借鉴,如职工管理系统、“石头-剪刀-布”小游戏程序等。[5]
1.4提出问题
PBL教学是以问题为导向,确定小组和项目后,就进入课程设计的实质阶段。对于程序设计的初学者来说,他们没有设计和开发项目的经验。所以,教师的指导是必不可少的,只有这样,才会收得较好的效果。提出问题是PBL教学的要求。这里要强调由学生自己提出问题,学生提出问题反映了学生对解决问题的认识和解决问题的思路,教师可以从中了解学生对知识掌握的程度。实践证明,在没有经过学生的思考,直接由教师提出问题,效果不会很好。学生提出问题后,还要经过同组学生质疑并形成小组的意见,再经过教师的评价或修改后再把问题确定下来,学生对问题认识更加深刻,也有助于学生养成勤于思考的习惯,对今后学习并实践程序设计有着促进的作用。
1.5教学过程设计
要顺利完成课程设计,必须充分设计好教学过程,使教学能够有条不紊地按预定目标进行。图1给出一种PBL教学实施流程,在PBL教学过程中,首先给出题目和进行分组,学生可以在项目库中选择题目,也可以自拟题目。在课程设计中,根据项目要完成的功能,要进行任务划分。对于一个任务,可能要产生若干问题,任务和问题以及解决问题的方案和步骤都是先由学生提出。教师全程参与并进行指导。项目在完成时,要编写实验文档,并进行教学评价。同时要把教学评价结果反馈给学生,让他们知道哪些做对了,还存在哪些不足,如何加以改进等等。
1.6教学效果评价
教学效果评价是课程设计的一个必不可少的环节。只有通过教学评价,才能发现问题并加以解决,通过教学评价,也可以为今后的课程教学进行改进提供参考。C课程设计的考核,是对从项目选题开始,直到项目运行并提交实验文档结束为止的所经历的一系列教学活动及其效果进行评价。这里着重从几个方面来进行。第一,要对学生提出问题及解决问题的思路进行评价,考核学生是否对所要解决的问题有清晰的了解,这种提出问题有时比解决问题更重要,因为它决定着最终能否完成项目或者影响完成项目的效率。第二,重点对学生的基础知识和基本技能进行评价,注重考核学生是否能够正确、熟练、灵活地运用控制语句、指针、文件等内容对较复杂的问题加以解决,还要评价编程是否规范。第三,对实验文档的编写进行评价,强调文档编写的重要性。着重考核学生的语言表达能力、逻辑思维能力。最后,要对学生的团队合作过程进行评价,从组织性、纪律性、配合的协调性等方面进行考核。
2结语
C语言课程设计是C程序设计课程的后续课程。开设这门课,对于进一步提高学生学习程序设计技术和培养学习编程的兴趣有着重要的作用。PBL强调学生自主探索式学习,通过解决问题来获取必要的知识,同时培养了团队协作精神,在教师的指导下最终完成问题求解。本文阐述在C语言课程设计中应用PBL进行教学的方法,在学生基础不均衡、课时少、学习任务重的情况下,探索一条适合C课程设计的教学方法,为C语言课程设计教学提供有益的借鉴,促进人才培养向高质量方向发展。
项目来源:广西高等教育本科教学改革工程项目(2020JGB344),广西财经学院教育教学改革工程项目(2021JG04)
参考文献
[1]Ita Richardson, Yvonne Delaney. Problem Based Learning in the Software Engineering Classroom[C]. 22nd Conference on Software Engineering Education and Training,2009:174-181.
[2]马东梅,陈小莉.浅谈PBL在非计算机专业C语言程序设计教学中的应用[J],科技资讯,2018(30):204-205.
[3]李丹,刘春华.PBL教学法在高职高专C程序设计教学中的应用[J].卫生职业教育,2017(35):62-63.
[4]刘丽霞.浅谈PBL在程序设计教学中的应用[J].教育现代化,2016(27):165-166,171.
[5]卢守东.C语言程序设计实例教程[M].清华大学出版社,2017.