“新文科”背景下基于项目任务式的Python课程教学改革研究
2023-01-14陈颂丽
陈颂丽
关键词:新文科;Python;项目;任务式
1引言
“新文科”以多学科知识的深度融合为核心理念,打破现有学科专业间的壁垒,基于解决“真实世界复杂问题”的需要来整合各种学科与“非学科”知识[1]。随着大数据和人工智能在社会各方面的应用,“新文科”课程体系的建设要求必须把信息技术融人其中。Python语言开放、开源,生态良好,拥有大量功能丰富且强大的标准库和第三方库,几乎覆盖所有领域,可用于高效地解决各学科领域的问题[2]。Python成为“新文科”专业首选的编程语言。
2“新文科”背景下Python课程的教学目标
新文科专业开设“Python程序设计”课程的教学目标必须服务于新文科人才培养体系,具体有:(1)提升学生信息素养,培养学生收集、处理、分析数据的能力,发挥数据的最大价值,这是大数据时代人才必备的能力;(2)培养学生的计算思维,具有计算思维能力是未来社会对人才的要求,也是“新文科”人才培养的目标之一;(3)帮助学生建构更为完整的专业知识体系,解决“真实世界复杂问题”;(4)培养学生职业能力,提升学生应用计算机技术进行专业系统设计、探究与求解问题的能力,提升学生跨学科创作与研究的能力。
3当前Python教学面临的问题与困境
广州商學院于2019年9月面向经济学院大二学生开设“Python程序设计”课程,主要教学方式是教师讲解Python理论知识、演示程序,学生上机编写程序。课程考核包括平时成绩和期末第三方测试,由教师主导考核过程。在开课初期,教学团队通过观察学生的学习行为、面对面访谈、分析学习成绩等,发现传统的教学方式能够基本实现Python教学目标,但是仍然存在以下问题。
3.1学生普遍对Python认知不足
经过与学生面对面访谈,发现文科学生普遍对Python认知不足,具体情况如表1所列。
3.2学习兴趣和积极性不高
Python理论课以教师讲授程序语法知识为主,学生难免会觉得枯燥难懂。课堂教学方式单一,学生较少参与课堂,无法调动学生的学习积极性。教师做什么,学生跟着做什么,缺少独立的研究和修改程序的想法。同时,Python课程总学时为48学时,对于非计算机专业的学生来说是较少的,学习任务重且难度大,从而降低了学习兴趣。
3.3忽视了“新文科”人才培养的核心理念
传统的教学方法,教师强调书本内容,只能保证学生掌握一定量的理论知识,学生独立编写程序的实践能力比较弱,更不能将所学的Python与学科专业知识整合用于解决专业领域问题。这也将进一步强化学生对Python无用的认知,影响学生的学习兴趣和积极性。
3.4忽视计算思维的培养
计算思维既不是数学计算能力,也不是计算机操作能力,而是认知和思考的重要思维方式,将具体问题之间抽象的交互关系设计成可以利用计算机求解的可行性方案[3]。在传统的Python教学中,缺乏对Python编程实践的科学设计与实施,学生按照参考程序机械地输入运行,解决一些简单的脱离专业实际的问题,完全没有根据计算机的功能特点去思考为什么要这样写程序,不能深入了解并掌握与计算机沟通的方法,不能熟练应用计算机语言解决现实生活中的问题,也就达不到对学生计算思维和独立思考能力的培养。
3.5忽视了Python“轻语法,重应用”的特点
传统的计算机程序设计语言的教学,如C语言,主要是讲授语法知识、程序结构和算法,帮助学生理解抽象概念。Python作为轻语法的程序设计语言,有着丰富的内置函数、标准库和第三方库,其教学必须有别于C语言,应“轻语法,重应用”,引导学生分析问题,并以Python为工具,对专业领域问题进行求解[4]。目前的Python教学更多的是沿用传统的计算机程序设计语言的教学方式,教师花较多的精力讲解理论知识,忽视了Python“轻语法,重应用”的特点。
4基于项目任务式的Python教学改革的提出
基于以上Python教学实践中出现的问题,广州商学院的Python教学团队提出开展基于项目任务式的课程教学改革,探索如何解决问题和走出困境的方法。
4.1关于项目式学习
在项目式学习中,教学目标以培养学生的职业能力为本位,让学生学习必要的理论知识且掌握必备的专业技能,突出职业能力的建构;教学项目来源于真实的业务活动或具体的服务场景,既负载专业理论知识,也涵盖职业岗位群能力,实现理论与实践教学的一体化。教学过程以工作实践为主线,按照工作过程系统化的思路开展,学生置身于真实的或模拟的职业情境中,开展知识准备、项目任务领取、角色转换、问题分析、计划制定、方案选择、实施行动、结果验证到成果评价等各个环节的学习活动,最终达成教学目标,提高专业知识与技术能力的学习质量[5]。
4.2Python教学项目的设计与开发
Python教学项目的设计与开发是关键的一个环节,教学项目的好坏直接影响项目式教学的成败。通过对该环节的实践与研究,认为设计与开发Python教学项目可从以下几个方面着手。
4.3Python教学项目要服务于课程教学目标
“新文科”专业开设“Python程序设计”课程旨在培养学生使用Python语言编写程序、调试程序的能力;培养学生具有一定的计算思维、提升学生信息素养;加强对学生分析问题、解决问题能力的培养,能够使用计算机技术创造性地解决专业领域的问题。同时,促进学生合作能力、沟通能力和自主学习能力的提升。Python教学项目作为教与学的载体,必须服务于课程教学目标,其设计与开发都要分析教学目标、依据教学目标、围绕教学目标,从而保证教学目标的实现。
4.4Python教学项目要服务于学生课程知识体系的建构
结合课程教学目标、文科专业学生的学习特点与Python语言的内容体系,将Python课程知识体系划分为3个层次。
第一层次:Python语言基础,包含Python语法基础知识、基础数据类型和复合数据类型、程序基本控制结构、简单程序代码的编写与调试。
第二层次:Python语言进阶学习,包含函数与模块、文件读写、标准库( math,random,datetime)、面向對象编程等。
第三层次:Python语言高级应用,包含海龟绘图、文本分析、网络数据爬取、简单数据分析与处理等。
教师梳理课程知识体系后,将知识点装进教学项目,同时将教学项目打造为知识点呈现和应用的场景。学生在项目任务驱动下学习Python知识,并应用理论知识解决问题,完成项目任务。
每个Python教学项目都有一定的应用背景,涵盖多个知识点,增强知识的系统性、整体性,侧重于知识点的综合应用,帮助学生将零散的知识点串联起来,使之形成一个有机统一的整体。科学、合理地设置项目任务的递进关系和开展顺序,使学生在项目任务式的教学活动中建构完整的Python课程知识体系。
4.5Python教学项目来源于真实的职业情境
文科专业学生学习程序设计的目的并不是去做开发、跟计算机专业学生比拼编程能力,而是应用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等一系列思维活动[6]。在Python教学中,学生要对哪些问题求解?要设计什么样的系统?解决此类问题应该着眼于学生的学科专业领域,着眼于学生职业能力的培养。
Python教学项目应该来源于真实的职业情境,将企业岗位需求、专业领域问题等层层分解,模拟真实的业务活动或服务场景,提出学生在未来职业生涯中可能面临的问题,将学科知识和学生所处的真实世界联系在一起,整合Python理论知识与专业实践。例如,“止盈与止损系统”教学项目模拟交易员岗位工作情境,拟解决止盈与止损自动化的问题;“投资者个人信息管理”教学项目模拟投资机构客户管理情境,拟解决客户信息录入、保存及账号安全管理的问题。
4.6Python教学项目应该是跨学科融合的产物
Python教学项目以模拟解决职业情境中的实际问题为主要内容。解决“真实世界复杂问题”是单一学科所不能完全做到的,需要整合各种学科与“非学科”知识。因此,Python教学项目应打破现有学科专业间的壁垒,与不同专业或不同学科进行有效结合。例如,在“货币兑换”项目中将Python基础语法知识与金融学相结合:在“模拟选股池选股”项目中将Python组合数据类型与证券投资分析相结合;在“苹果股票数据分析”项目中将网络数据爬取、分析与金融证券量化投资相结合。通过此类项目的学习,学生获得新知识的同时深刻理解、应用已学的专业知识,建构更为完整的专业知识体系,形成开阔的专业视野,培养能够融合多学科知识解决“真实世界复杂问题”的新型文科人才。
4.7Python教学项目要与时俱进,具有趣味性和挑战性
在这个科技突飞猛进、社会事件层出不穷的时代,大学教育应当引导学生关注社会热点、关注科技发展、关心民生,培养大学生的社会责任感。因此,Python教学项目不能与时代脱钩,要不断跟踪新知识、新技术、新热点,进行教学项目的动态更新。在与时俱进的同时,也赋予Python教学项目一定的趣味性。
教学的趣味性在于调动学生学习的积极性,使学生由此产生内在动力来完成学习任务。在学turtle库时,开展“我的中国心”项目任务式学习,学生编写Python程序表达一片爱国赤子心。在学习jieba库和wordcloud库时,开展“《红楼梦》文本分析”项目任务式学习,学生对熟悉的经典小说中文文本进行分词与词频分析,并制作树形、蝶形或者心形的词云,将科技与中国古典文学相结合,感受中国古典名著的唯美意境。在学习random库日寸,开展“随机红包”项目任务式学习.学生分析随机红包功能,讨论并确定实现随机红包的方案,编写Python程序实现随机红包。“随机红包”项目以一个大众化的、贴近生活的项目主题增加了学习的趣味性,也增强学生对Python实用性的认识。
Python教学项目的设计与开发还要依据学生的学情。初学计算机程序设计的文科学生,乐于接受挑战,但计算思维尚未形成,编程能力基本零起步,所以教学项目可以具有一定的挑战性,但不应该难度太高,避免打击学生的学习积极性。Python教学项目应具有适当的难度,让学生站在已有的知识平台上,敢于利用新的课程知识,逐步解决新的实际的问题:让优秀学生有可进阶的学习空间,以获得学习的乐趣:让暂时有困难的学生能及时获得帮助,攻克难关,以获得学习的成就感。
4.8Python教学项目应内容完整、清晰,资源丰富
在实施基于项目任务式的教学活动前,教学团队应初步完成Python教学项目的设计与开发工作,形成科学、完整的教学项目内容,清晰、可行的实施步骤,客观有效、公平公正的评价工具,形式多样、易获取的配套学习资源。
Python教学项目文档应包括但不限于以下内容:项目背景描述、项目子任务,子任务知识准备、子任务实现思路、子任务教学过程设计、效果及参考代码、任务拓展、项目能力进阶、项目及能力评价。项目子任务应具有清晰的任务说明,并由浅人深,以递进的关系呈现,先引导学生完成简单的任务,再鼓励学生尝试完成复杂的、有难度的任务。在子任务实现思路和教学过程设计部分,对项目的实施步骤一定要有清晰的描述,控制好教师讲解的时间,多向学生抛出启发式的问题,引导学生发散思考和讨论,将大部分时间留给学生,让学生自主探索并提出解决问题的思路,独立编写Python程序。子任务及项目应具有可拓展的空间,满足不同层次学生的需求,让学有余力的学生尽情发挥创造力,解决更高难度的问题。对项目的最终成果、学生的能力应该有明确而具体的评价指标,注重过程性评价,评价主体是教师、学生,评价客体是学习者及其作品,甚至可以是教学项目。
5结束语
如何提高文科学生学习Python的积极性、主动性是当前亟待解决的问题。未来将继续对基于项目任务式的Python教学改革实施过程进行深入研究,创设以学生为中心,有利于学生沉浸和发挥潜能的职业情境,培养能够整合各种学科与“非学科”知识解决“真实世界复杂问题”的新型文科人才。