新工科背景下问题驱动法在计算机程序设计教学中的应用研究
作者: 李波摘 要:在新工科背景下,针对传统计算机程序设计教学方法存在的问题,例如缺乏应用场景、缺乏实践性、缺乏互动与实时反馈等,该文旨在探讨在教学中应用问题驱动教学方法以解决这些问题,包括引入实际问题情境和培养问题解决能力等。通过问题驱动教学方法,学生能够更好地理解所学的知识和技能,并能够运用所学的编程知识解决复杂的实际问题,从而促进其综合能力的发展,为未来的职业发展奠定坚实的基础。
关键词:新工科;计算机程序设计;问题驱动法;问题解决能力;创新性思维;团队合作能力
中图分类号:G642 文献标志码:A 文章编号:2096-000X(2024)29-0120-04
Abstract: In the context of the New Engineering paradigm, this paper aims to address the issues associated with traditional computer programming teaching methods, such as the lack of application scenarios, practicality, interactivity, and real-time feedback. The objective is to explore the application of problem-driven teaching methods in order to resolve these problems. This includes the incorporation of real-world problem contexts and the cultivation of problem-solving abilities within the teaching process. Through problem-driven teaching methods, students can gain a better understanding of the knowledge and skills they are learning, and can effectively apply their programming knowledge to solve complex real-world problems. This approach fosters the development of their overall abilities and establishes a solid foundation for their future career advancement.
Keywords: new engineering; computer program design; problem-driven teaching approach; problem-solving abilities; innovative thinking; teamwork skills
基金项目:广东省2024年度教育科学规划课题(高等教育专项)“基于粤港澳大湾区跨海桥梁驱车监测技术的《高等结构动力学》课程教学改革与实践”(2024GXJK396 )
作者简介:李波(1984-),男,汉族,陕西安康人,博士,助理教授。研究方向为土木工程智能计算,人工智能与大数据分析。
为适应当前社会的需求和挑战,教育部推出新工科计划,旨在培养具备创新能力、实践经验和综合素质的复合型人才。在这一背景下,计算机程序设计作为非计算机专业学生的一门基础课,在培养学生利用计算机解决实际工程问题的能力方面起着重要作用。
新工科计划的目标是培养具有创新性、强实践能力和社会责任感的人才[1-2]。针对非计算机类的程序设计课程教学,提出了一些新的要求。首先是问题解决能力[3],在新工科背景下,培养具备综合技术能力和创新思维的工程技术人才是至关重要的,而问题解决能力是其中的核心能力之一。因此,在程序设计教学中强调解决问题的方法和思路,培养学生利用编程解决问题的能力。其次是团队合作能力[4],在新工科背景下,团队合作对于解决复杂问题、推动创新和实现综合性项目至关重要。因此,在教学中鼓励学生进行团队合作,以促进交流和共同学习。第三个是创新性思维[2],在新工科背景下,强调培养具备创新能力的工程技术人才,使其能够应对快速变化的社会和技术挑战。因此,在教学过程中,要帮助学生跳出传统思维框架,基于程序设计挖掘新的解决方案,为面对复杂问题提供创新的视角和方法。
一 存在的问题
传统的程序设计教学以老师为中心,学生总是被动地接受老师传授的知识点,且教学过于注重理论知识的灌输,缺乏与实际问题的结合。因此导致学生觉得程序设计课程枯燥无味,学习积极性差,没有学习动力[5]。
基于新工科视角,当前非计算机专业的程序设计教学存在如下明显的问题。首先,缺乏实际应用场景。传统的计算机程序设计教学通常将重点放在编程语言的语法和基本概念上,而忽略了实际应用场景的引入。这导致学生所学的知识与实际应用脱节,难以看到学习编程的意义和价值,因此,缺乏学习的积极性。其次,缺乏实践性。传统的计算机程序设计教学注重理论知识的传授,但缺乏实践性的内容。学生消极地接收课堂上的知识点,缺乏实际动手编写和调试程序机会,使得学生难以真正理解编程的实际应用,教学中亦无法真正培养学生解决实际问题的能力。再次,缺乏互动与实时反馈。在传统的计算机程序设计教学中,学生与教师之间的互动和实时反馈较少。学生感到孤立和被动,在遇到问题或困惑时难以及时得到解答和指导。缺乏互动和实时反馈机制使得学习变得单调乏味,学生的积极性和参与度下降。最后,课程考核手段单一。教师按照课程进度每周指定课后练习题进行验证性实验,以巩固当周讲授的内容。课程的最后评分按照平时作业和期末考试成绩综合评定。然而,这种单一的考核手段不能合理地反映学生的能力,对于那些热爱学习和思考的学生没有起到激励作用。
为了解决这些问题,教学方法需要适应现代学习需求,特别是新工科人才培养目标。因此,本文将探讨引入问题驱动教学模式。在教学过程中,通过引入实际问题情境和提供开放性问题,促进学生之间的互动和合作,改变传统单一的考核手段,从而提高学生利用程序设计解决实际问题的能力,并激发学生的学习积极性。
二 问题驱动教学方法的理论基础
问题驱动教学方法(Problem-Based Learning,PBL)[6]做为一种以学生为中心的教学策略,强调学生通过探索和解决现实世界问题来积极学习。在PBL中,学生通过合作解决复杂、开放且与其专业领域相关的问题,自主学习,以培养批判性思维、问题解决能力和有效团队合作能力[7]。
问题驱动教学方法与传统的教学方法有所不同。传统教学方法侧重于教师的讲解和知识传授,而问题驱动教学方法更加注重学生的主动参与和探索。它鼓励学生提出问题,并通过自主学习和探索来解决问题。教师的角色是引导和支持学生,提供必要的指导和资源。
问题驱动教学方法有助于培养学生的批判性思维、问题解决能力和团队合作能力。它可以帮助学生发展自主学习的技能,培养其主动寻求知识和信息的能力,并将所学知识应用于实际问题。通过问题驱动教学方法,学生可以更深入地理解所学知识,并将其应用于真实世界情境。这种方法不仅增强了学生的学习动机和兴趣,激发了其好奇心和创造力,还提高了学习成果和能力。
新工科背景下,强调培养学生的创新思维和解决复杂问题的能力。问题驱动教学方法能够促进学生在应对现实世界挑战时的创新思维、问题解决能力、自主学习和适应能力的发展,与新工科教育目标相得益彰。
三 问题驱动教学方法在程序设计教学中的应用
在计算机程序设计教学中采用问题驱动的教学方法,本文从以下五个方面提出具体措施:引入实际问题情境、培养学生解决问题的能力、培养学生团队合作能力、提供开放性问题的教学环境及改变课程考核方法。
(一) 引入实际问题情境
传统的计算机程序设计教学通常注重抽象的概念、理论知识和语法规则,而忽略了这些知识与实际问题场景的联系。然而,引入实际问题情境可以为学生提供学习编程的上下文和动机。当学生能够看到编程在解决实际问题中的应用和意义,以及实际问题情境可以将抽象的概念和理论与具体的场景相连接时,他们往往更容易理解和投入学习。这样的实际问题情境能够激发学生的兴趣,增加他们的学习动力。以下是一个具体的实例,用于讲解选择结构的概念和应用。
假设要编写一个程序来控制一台智能车辆,在不同的路况情况下选择最佳的驾驶模式。这个程序需要考虑车速、车辆重量等因素,并从预设的六种驾驶模式中选择最适合的模式。让我们看一下具体的条件和对应的最佳模式选择:①在道路干燥条件下,当车速大于100 km/h且车辆重量不超过2 000 t时,最佳模式为“运动模式”。当车速大于100 km/h且车辆重量超过2 000 t时,最佳模式为“越野模式”。否则,最佳模式为“正常模式”。②在道路湿滑条件下,如果车速大于80 km/h,最佳模式为“安全模式”。否则,最佳模式为“正常模式”。③在道路结冰条件下,如果车速大于60 km/h,最佳模式为“雪地模式”。否则,最佳模式为“正常模式”。④在道路有交通堵塞条件下,最佳模式为“城市模式”。
通过这个实例,我们引出了在程序设计课程中学习选择结构的必要性和重要性。通过引入实际问题情境,将选择结构的概念和理论与具体的场景相连接。学生可以更好地理解和应用概念、理论和语法规则,并意识到他们所学习的抽象的选择结构概念和理论可以应用于实际问题情境中,用于解决实际问题。这样的教学方法能够激发学生的兴趣,增加其学习动力。
(二) 培养解决问题的能力
在传统的计算机程序设计教学中,由于缺乏与实际问题相关的情境,学生难以将所学知识应用到实际情景中。这导致学生失去面对复杂实际问题的机会,从而错失培养综合分析和解决问题能力的机会。相比之下,问题驱动教学方法通过提出真实且有挑战性的问题,激发学生的学习兴趣和动力。在解决问题的过程中,学生需要运用各个学科的知识和技能,进行跨学科的综合思考和操作。他们积极主动地搜集和整理相关知识,深入思考和分析,并将它们与所学的编程知识和技能有机地结合起来,以解决问题。
一个具体的实例是在学生的上机实践中,要求他们综合运用程序设计课程所讲解的理论和方法,完成一个简单的桥梁荷载计算机程序。该程序旨在帮助土木工程师进行桥梁结构的荷载计算。学生需要考虑桥梁的几何形状、材料特性、荷载情况等因素,并设计算法来计算桥梁的受力和应力。此外,还需要实现用户界面,以便用户能够输入桥梁的参数、荷载信息,并查看计算结果。
通过这个上机题目,学生能够培养利用计算机程序解决实际问题的能力。首先,锻炼了学生对实际问题的分析和建模能力。学生需要理解桥梁荷载计算的基本原理和方法,并将其抽象为计算机程序的形式。他们还需要考虑桥梁的几何形状、材料特性、荷载情况等因素,并将其转化为算法和数据结构的形式,以确保程序能够进行准确的荷载计算。其次,训练了学生的算法设计和实现能力。学生需要设计适当的算法来解决桥梁荷载计算中的力学和结构问题。他们需要实现这些算法,并考虑算法的效率和准确性,以确保计算机程序能够提供可靠的计算结果。再次,还锻炼了学生的用户界面设计和交互能力。学生需要设计用户友好的界面,使用户能够方便地输入桥梁的参数、荷载信息,并查看计算结果。他们需要考虑用户体验和界面设计的原则,以提供良好的使用体验和操作效率。最后,培养了学生的错误排查和调试能力。在开发过程中,学生可能会遇到各种问题和错误。他们需要具备良好的问题排查和调试能力,能够分析和修复程序中的错误,以确保程序能够正确运行并产生准确的结果。