贾萍 柳欣
关键词:计算机基础;计算思维;创新实践能力;数据分析;Python语言
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2023)21-0131-04
0 引言
计算机基础是我国高等院校各专业必修的公共基础课程,其主要目标是提高学生的计算机素养和信息化软件的运用水平。长期以来,该课程的教学内容以Windows操作系统、Access数据库和Office系列办公自动化软件为主。当前,以云计算、人工智能和大数据为代表的信息技术正在各应用领域改变着人类的思维方式。计算思维是一种运用计算机科学的概念解决问题和理解人类行为的科学方法[1],它已经逐渐成为各专业学生必须具备的素质和能力。2010年之后,我国高校的计算机基础课程教学开始发生转型,即在课程教学中增加有关程序设计语言的内容,培养学生的计算思维能力,实现从“以知识为导向”向“以能力为导向”的跃升,能在今后运用计算机技术解决本专业领域的实际问题[2]。
1 课程改革原因及现状分析
计算机基础课程面向的专业非常广泛,同时这些专业的人才培养目标差异较大。笔者所在学校是一所以文科为主的应用型本科高校,在当前的人工智能和大数据时代背景下,教师在课程知识体系、课堂教学和实验实训方面面临着诸多挑战,迫切需要开展有针对性的理论和实验教学改革。在改革之前,计算机基础课程存在以下问题:(1) 学生基础参差不齐。普遍对编程有畏难心理,这种情况给教师开展课程实验教学带来极大的挑战。(2) 课程教学重语法轻应用。教师过分强调语句格式和语法规则,忽视了对计算思维和解决问题能力的培养。(3) 教学模式单一。在“课堂讲授理论+上机操作+课后练习”的传统教学方式下,学生无法成为教学活动的主体。(4) 不同专业的教学内容缺乏差异性。教师未能有效地开展差异化教学,导致学生无法将所学知识应用于本专业领域。(5) 考核方式单一。采用的考核方式未能体现课程“重应用”的特点,无法对学生解决实际问题的能力进行有效评价。
2 教学改革总体思路
2.1 教学内容改革
课程改革前,计算机基础课程侧重讲授Access数据库管理系统。该系统是典型的桌面型数据库管理系统,并不适用于对大型数据库的管理。随着信息技术的发展,该内容已经无法适应人工智能、大数据时代的信息化发展现状。2016年,教育部高等学校大学计算机课程教学指导委员会倡导推进面向计算思维培养的教学改革,并将Python语言列入备选的程序设计语言[3]。Python是一门功能强大、易于入门的程序设计语言。它有助于培养学生的计算思维能力,为他们今后通过编程实现数据获取、存储、分析和处理以及学习人工智能、机器学习等技术奠定基础[4]。因此,笔者所在学校从2019年起将该语言作为所有非计算机专业计算机基础课程的教学内容。
2.2 课程改革实施路径
针对上述问题,在充分调研各专业培养目标基础上,笔者从以下方面进行改革:(1) 精炼语法部分,补充有关第三方库资源使用的教学内容。(2) 强化计算思维训练,培养学生分析和解决问题的能力、团队协作能力以及创新能力。(3) 综合运用多种教学方法并且改革课程考核方式,实现从以“教师为中心”向以“学生为中心”的转变,增强学生的创新实践能力,其具体表现是能通过Python语言编程和互联网获取有效数据并进行分析。
3 课程体系设计
3.1 课程目标制定
改革后的课程目标以培养学生的编程实践能力为出发点,以Python语言语法、面向对象程序设计和数据分析可视化为主要教学内容,使学生初步具备利用Python语言解决本专业实际问题的应用开发能力,初步形成计算思维,为后续的专业课程学习奠定基础。
3.2 课程教学设计
1) 教学内容划分
根据课程目标,笔者从数据分析的角度将课程内容划分为以下模块,即基本语法模块、数据采集模块、数据处理模块、数据存储模块、数据分析与可视化模块。基本语法模块主要介绍基础语法和基本程序结构等方面的知识;数据获取模块介绍Requests爬虫框架及页面解析技术;数据处理模块介绍Numpy 矩阵运算、经典分类以及聚类算法;数据存储模块介绍数据存储和SQLite 数据库技术;数据可视化模块介绍基于Numpy、Pandas等库的图形绘制。上述模块可进一步划分为基础知识、能力培养和实际应用三个层次(如图1所示)。其中,基础知识层次可以满足各专业学生的普遍需求。能力培养层次包括基本算法和高级数据结构,要求学生对实际问题进行整体的抽象化和数字化,最终以编程问题的形式进行思考和讨论,提升抽象类比的计算思维能力。实际应用层次要求教师设计符合各专业需求的专题应用,引导学生结合所学专业背景完成综合性的程序设计任务。课程各模块的具体内容以及学时安排如表1所示。
2) 教学方法运用
为了实现上述教学改革目标,笔者在课堂教学中融入以下的教学方法:
① 项目教学法
项目教学法是一种以建构主义理论为指导的教学方法,要求教师事先选取实际项目,并对项目内容进行分解。在教学过程中,教师先向学生进行示范,然后组织学生以小组为单位对项目任务进行讨论,并以协作方式达成学习目标。此种教学方法促进学生对知识进行探究,有助于提升学生对知识的综合应用能力,培养学生的创新实践能力和协作精神[5]。例如,在讲授变量、流程控制、函数、模块之后,笔者设计了名片系统管理项目(具体内容如表2所示)。该项目的教学难点是如何使学生理解顺序结构的概念和重要性。为此,笔者在准备教案和开发名片管理系统案例时注重展现程序的顺序执行。在教学过程中,强调顺序结构“一步一步”执行的特点。学生通过完成该項目的开发,可以加深对程序顺序执行过程的理解。
② 案例教学法
案例教学法是一种“自下而上”的教学方法,它要求教师通过选取教学案例创建知识运用的具体情境,引导学生围绕情境中的问题展开讨论,最终提炼出知识结论。在选取案例时,需要注重以下特征,即真实性、典型性、情境性、问题性和理论性[6]。在教学过程中,笔者引入了许多贴近现实生活且兼具趣味性的案例。以政府工作报告词云制作为例,该案例要求学生突出显示政府工作报告中出现频率较高的关键词,形成“关键词云层”,从而帮助浏览者轻松领略文本主旨。该案例融入了文件读取、分词整理、设置输出词云、观察结果、优化迭代等技术,对政府工作报告进行可视化展示。笔者在教学过程中融入了思政元素,使授课内容丰富有趣,显著改善了教学效果。
③ 任务驱动法
任务驱动教学是指教师将待讲授的概念、原理、技术以学习任务的形式进行呈现。在教学过程中,教师通过任务向学生明确教学内容,要求学生根据任务指示参与教学活动,以循序渐进的方式完成多个任务,并且在参与过程中获得知识[7]。该方法通过完成任务激发和维持学生学习的兴趣和动机,真正地实现了以学习者的学习为中心[8]。比如,在讲授循环语句部分时,笔者设计一个猜数字游戏的情景,并通过以下的问题设计开展问题驱动教学:(1) 为了让计算机生成一个随机数,可以采用何种方式实现?(2) 在猜数过程中,计算机需要对数字的大小进行判断。你认为应当使用何种程序结构进行实现呢?(3) 当玩家猜错数字之后,系统允许其继续进行數字猜测。对此,应当采用何种程序结构实现呢?在上述问题的驱动下,学生逐步地完成了整个任务的学习。
3.3 课程考核与评价
为了提高课程考核评价方式的多样性、客观性以及激发学生的学习动力,笔者引入了多元化的课程考核评价方法。具体评价方法如下:总评成绩=期末成绩×50%+过程性考核成绩×50%。其中,期末考试采用闭卷机考方式。过程性考核包括平时表现、课后自主学习、随堂测试、实验报告和综合项目报告5种考核形式,它们在过程性考核成绩中分别占比5%、20%、15%、10%、50%。其中,平时表现侧重考查学生课堂表现(如出勤情况,课堂回答问题、参与讨论的情况)。课后自主学习侧重考查学生课后自主学习的完成情况(如课前预习微课、预习测试、课后自测等)。随堂测试侧重考查学生对基本知识点的掌握情况。实验报告侧重考查学生的编程实践能力以及实验报告撰写质量。综合项目报告侧重考查学生在综合运用所学知识分析和解决问题、团队协作以及思维创新方面的表现。各考核项目的比例分配以及评价标准如表3 所示。
4 课程改革效果
2019年至2022年期间,笔者共开展了4轮教学改革,全校各专业期末平均成绩整体上呈逐年上升趋势(具体如表4所示)。
此外,笔者在结课后采用问卷星等工具开展匿名问卷调查,以期根据学生的反馈改进课程教学。在“2022-2023学年第1学期”的问卷调查中,笔者面向财务管理、审计学、会计学等9个专业的学生发布调查问卷,有效回收问卷439份。针对问题“你对本学期的课堂教学效果作何评价?”,67.65%的学生认为“教师在实验课上布置的项目任务非常实用”,71.3%的学生认为“通过学习教师在课堂上介绍的案例,开阔了眼界”,71.3%的学生认为“在完成教师布置的任务的同时,获得了学习上的成就感”(具体如图2所示)。针对问题“你认为,本学期的教学内容对自己今后的专业学习是否有帮助?”,34.85%的学生认为“帮助很大”,57.4%的学生认为“有所帮助”(具体如图3所示)。
5 结论
针对应用型本科高校非计算机专业计算机基础课程教学面临的困境,笔者开展了面向创新实践能力培养的课程教学改革,并取得了较好的效果。应当承认的是,该课程的改革还有待进一步深入,具体表现在以下方面:①学生尚缺乏对编程思想的整体把握且程序调试技术有待提高。②部分学生的实践能力仍有欠缺。③在课程结束后有意愿继续深入学习编程技术的学生比例有待提高。
今后改革目标: ①通过改进教学设计,激发学生的学习兴趣,提高编程能力,促进计算思维的培养。②推动教学内容与学生所在专业的深度融合,开发面向专业创新实践能力培养的实习实训案例库。③引入更为灵活的教学方法,提高学生的参与度,释放他们的学习热情。