如何突破学习编程技能的心理与实践障碍?|【政治学研究方法教学论】圆桌论坛
编者按
学习编程技能对于非科学、技术、工程和数学(STEM)领域的学生而言,颇具挑战。因为,在这些学生看来,我们在历史上就是属于被排斥的群体(即所谓的文科生),根本不会去涉足与数据科学或计算科学相关的工作。因此,当需要处理数据时,我们可能更多地倾向于使用SPSS或这Stata这类点击—响应式的统计软件开始我们的学习之旅,并在此基础上开展我们的研究工作,而避免使用R或者Python等需要编程语言的统计工具。
但是,拥有R等编程语言相关的技能,可以破除我们自认为“不擅长数据或科学”的自卑心理,从而激发我们对数学的兴趣。尤其是在编程工作中的即时反馈和频繁确认,使得我们清楚指导我们是在正确地执行任务,而在执行过程中可以不断排除障碍而获得一次次小小的胜利。当我们学会某一统计编程时,我们能够在程序运行结果中立即直观地感受到可视化的反馈,而排除了大量数学概念和符号引发的统计学阅读障碍。
由此,我们编译了本篇文献,为教师和学生突破在教学和学习中学习编程技能的心理与实践障碍提供了有效建议。
如何突破学习编程技能的心理与实践障碍?
(原标题为:《在方法课程中教授编程技能是机会,而不是负担(Teaching Programming Skills in Methods Courses Is an Opportunity, Not a Burden)》,现标题为译者所拟)
作者:
Rob Williams, Washington University in St. Louis
译者:
焦磊,山东大学
引文格式(MLA):
Williams, Rob. “Teaching Programming Skills in Methods Courses Is an Opportunity, Not a Burden.” PS: Political Science & Politics, vol. 55, no. 1, 2021, pp. 221–24.
“理解统计概念可能是一个耗时且学习曲线陡峭的过程,但计算机技能为学生提供了一系列更小、更容易实现的成功体验,这些体验能够建立学生的信心,并保持他们对概念性材料的持续投入。”
随着政治科学家在计算社会科学工具方面变得更加熟练,我们已经开始将这些技能传授给我们的本科学生。如今,在本科定量方法课程中,学生们常常会在学习数学和研究设计等更传统的主题的同时,学习使用统计软件编程。许多本科生渴望学习这些技能,因为在日益普遍的数据科学工作中,这些技能非常抢手。同样数量庞大的本科生可能对首次“学习编码”怀有焦虑情绪,特别是在那些完成定量方法课程是学位要求组成部分的院系中。对于历史上曾被排除在科学、技术、工程和数学(STEM)领域之外的学生群体而言,这种担忧尤为明显。
一些教员可能会认为教授编程技能会偏离课程的社会科学研究目标,他们更倾向于使用如Stata和SPSS之类的点击式软件来避免这一教学负担。然而,通过诸如R统计计算环境之类的工具教授编程代表了一种机会,教师可以借此营造一个更加吸引学生的课堂体验。理解统计概念是一个耗时且学习曲线陡峭的过程,而计算机技能为学生提供了一系列更小、更容易实现的成功目标,这能够帮助学生建立信心并保持对概念材料的关注度。这种方法有助于来自历史上被排斥群体的学生建立起追求原本可能不会涉足的学科的信心,并且也让更高级别的学生有机会通过教授同伴来学习。
编程作为激励
学习统计学对于政治科学专业的本科生来说可能是一个艰难的过程。许多学生选择主修政治科学,至少在一定程度上是因为他们认为该学科没有严格的量化要求。诸如零假设显著性检验等概念并不直观,需要预先了解概率分布知识,而这又依赖于微积分知识。如果学生不熟悉数学符号,连阅读统计学材料都会变得困难重重。这些内容合在一起,使得整个学期的学习旅程中,许多关键组成部分的重要性可能在数周内都不明显。
相反,编程的特点是即时反馈和频繁的明确确认,让学生知道自己正在正确地执行任务。每当学生运行一行代码而未遇到错误时,这都是一次小小的胜利。当学生学会创建散点图时,他们能够立即直观地评估双变量线性关系的强度,而计算相关系数则首先需要理解什么是z得分以及如何计算它。
尽管在R语言中编码往往令人沮丧,但学生在课堂上编码环节的成功可以成为教学时间中的亮点。学生在课堂上生成的具体代码也能鼓励一些学生将新掌握的编程技能应用到课程之外的项目中。一名学生告诉我,他们打算继续学习R语言以便为自己组建的梦幻体育队运用体育数据分析技术;另一名学生表示,他们希望用R来完成计划中的心理学研究项目的分析工作。由于R是一种开源软件,且免费提供(不像Stata和SPSS等对编程要求较低的选项),这意味着学生可以轻松地将他们在课程中学到的技能应用于自己的项目。这种可转移技能的感觉有助于学生与抽象且看似分离的材料建立联系。数据科学职位的招聘启事中提到R的频率是政治科学家通常教授的其他统计软件的两倍之多,并且许多学生愿意学习R正是因为其与数据科学之间的关联。
数据科学的诱惑
新兴的数据科学领域代表了统计学、计算机科学与实质性知识的交汇点。除了雇主在应聘者中期望的基本量化技能,数据科学技能尤其受到需求。相比许多其他科技行业职位,具有非计算机科学背景的数据科学家比例更高,这使得没有计算机科学学位的学生也能追求这些机会。
在我的本科方法课程中,有多名学生在预习调查中提到,他们选择我的课程来完成方法专业要求,而不是选择强度较低的定量替代课程,原因在于他们对数据科学的兴趣。许多非专业的学生也表示,学习数据科学技能的可能性促使他们决定选修这门课。强调并宣传本科定量方法课程中的编程内容对于提升政治学课程的入学率对院系是有益的。
由于认为必须“非常聪明”且“擅长科学和数学”才能学习计算机科学,学生们可能会被阻止研究数据科学。相反,政治科学吸引了许多自认为不擅长数学或科学的学生。我在本科阶段之所以选择政治科学,很大程度上是为了避免额外的数学课程,直到研究生阶段的学习将数学与编程的激励优势以及我感兴趣的实质性材料相结合时,我才开始欣赏数学。因此,在定量方法课程中教授编程代表了一次传授技能的机会,甚至可能帮助学生发现对数据科学或相关学科的热情,否则他们可能无法获取这些技能。这一后期收益尤为重要,当我们考虑到哪些学生最不可能遵循更传统的路径进入数据科学领域时。
普遍存在这样一种看法,即“编程是一项难以企及的技术技能,它被用来排斥人们,并贬低整个群体的贡献”。尽管在计算机早期女性曾广泛参与其中,但计算机科学逐渐发展成为以男性为主导的领域。黑人工程师和计算机科学家对计算机和互联网早期发展的贡献在大众观念中同样受到了边缘化。在美国7年级至12年级学生的研究中,无论男孩还是女孩都认为男孩对计算机科学更感兴趣。男学生往往因为更早接触计算机而选择主修计算机科学,并且他们更有可能早期接触计算机。女学生则较少选择计算机科学,因为在她们早期教育中存在偏见的教师可能会引导她们走向技术性较弱的领域,并削弱她们的自信心。此外,缺乏计算机相关领域经验的家长可能会依赖并强化社会性别刻板印象。黑人和西班牙裔学生在从初中过渡到高中的过程中,即使控制学术表现因素,他们也更有可能脱离高级数学轨道。进入高中后,他们接触计算机科学的机会减少,并且对自己学习计算机科学的能力表现出更低水平的信心。在政治学定量研究方法课程中教授编程,是抵消这些不利因素的一种方式,可以向那些可能因被计算机科学系所阻碍的非男性和非白人学生介绍数据科学。
鉴于美国对计算机科学教育的需求激增,许多院系通过实施竞争性的招生政策作出回应。在这些院系中参加入门级计算机科学课程的学生指出,这种竞争是他们不再继续该专业的一个原因。竞争性录取政策还会导致非白人和非男性学生的部门归属感降低和自我效能感减弱。由于政治学系很少限制定量课程的注册人数,它们不受同样的竞争压力影响。因此,政治学领域的定量方法课程为历史上被排除在外的学生群体提供了一条接触编码实践和数据科学学科的替代途径。
教学设置
实现这些优势在定量方法课程中,需要精心设计课程内容,将编程技能与实质材料紧密结合。仅仅添加一个编程部分可能会导致由于性别、种族和家庭社会经济背景而较少接触计算机的学生在课程表现上更差。为了实现这些目标,我尝试通过构建课程结构,让学生投入大量教学时间进行协作编码活动。更多地关注编程势必要减少其他方面的投入,因此必须谨慎处理被省略的材料,确保它们不是对研究设计和统计推断基本理解必不可少的内容。这种课程结构至少需要部分采用翻转课堂模式,在课外向学生介绍R语言编程。像Dataquest这样的网站提供了一个现成的解决方案,结合了深入的教学指导和在浏览器中编写和测试R代码的能力。另一种选择是learnr R包,它提供了类似的交互式学习格式,但要求学生安装并运行RStudio。有效地利用课堂时间,让学生探索编程的复杂方面,在小班授课或有教学助理辅助的大班中效果最佳。这样,教学团队成员总能随时帮助解决出现的问题。
让学生分组合作,无论是课堂活动时邻座同学之间还是学期长期项目中的指定小组,都具有很多益处。这种协作编程练习对女性学生尤其有益,使她们感到更加投入和自信。分组工作还允许迅速掌握某个概念的学生帮助他们的同伴,从而巩固自己的学习,并让教师能够专注于协助其他学生遇到的更复杂问题。
与帮助学生解决问题同样重要的是展示如何克服这些问题的过程。当学生遇到我无法快速诊断和纠正的计算错误时,我会引起全班的关注,并通过一步步寻找和实施答案来解决问题。这一过程通常包括使用教室投影仪展示我使用的特定Google搜索词,突出显示相关网页上的行,并成功在RStudio中修正错误。
教师在课堂上帮助学生的方式比任何具体帮助内容更为重要。在预习调查中,许多学生对学习编程感到担忧。多名学生在课程评价中提到,一个“无判断氛围”对于他们在课程中取得成功至关重要。学生们往往缺乏基本的计算机素养技能(例如理解文件夹结构),因此教师必须真正让他们相信没有愚蠢的问题或愚蠢的错误。
一种有助于实现这一目标的有效策略是向学生传达自己编程错误的频率和简单性。我经常讲述我在学生首次学习某个函数时未能正确使用它的例子。在教室投影仪上演示实时编程完成任务,自然会出现许多产生错误的机会,这使得教师可以演示如何应对和解决这些错误。许多学生在面对错误消息时会显得束手无策,因此展示如何响应和解决错误是一项他们在课下完成习题集或最终项目时极其宝贵的技能。目标是在课堂时间内尽可能有效地为学生提供他们独立完成工作的工具。
因为要提供这种对学生细致入微的关注,需要花费时间和大量的努力,因此院系应为教授此类课程的教师提供教学支持。如果院系不能为教师提供小班规模或教学助理,他们应该提供课程释放,以认可成功教授编程所需的额外准备工作。同时,院系也应该降低对这类课程教师学生评价的权重。量化课程教师收到的学生评价系统性偏低,教师不应因选择教授更高要求的课程而受到惩罚。学生评价中普遍存在种族和性别偏见,一项研究发现,女性在教授量化课程时,其评价与男性之间的差距最大。希望支持历史上被排除在外群体的教员的院系应当特别注意这些动态,因为这些教员所面临的时间需求显著高于历史上包含群体的教员。
结论
很容易将编程技能视为与政治学本科定量方法课程中学生必须发展的核心能力无关的附加内容。考虑到数据科学技能在劳动力市场和学术研究中的日益重要性,这种看法是错误的。当教师将编程贯穿整个课程时,他们可以通过教授能够在课外项目中应用的技能来提高学生的参与度。
虽然政治科学家可能在统计学和编程方面的专业知识不如统计学家和计算机科学家那样深厚,但政治科学能够为广泛的学生群体提供一个低门槛的入门途径。尽管一些学生最终可能会转向这些院系寻求进一步的培训,但政治科学家更擅长教会他们如何将主题专业知识、基本研究设计与这些更专业的技术技能相结合。这种研究和技术技能的融合正是数据科学工作所需的能力。政治科学学科正好可以向那些计算机科学部门未能充分接纳的学生传授数据科学技能,并训练他们运用数据科学工具来解决实质性的重大问题。
(因篇幅限制,参考文献从略)
〇 编辑、排版:焦磊
〇 审校:郭瑞涵 大兰