张昱++陈娟++肖胜刚++张铭
摘 要:介绍第48届ACM计算机科学教育大会,重点针对本届大会的环节设置、特邀报告以及丰富多彩的教育科研成果展示进行说明,分析目前中国信息教育的现状,最后指出有待进一步重视和加强的环节。
关键词:SIGCSE;ACM计算机科学教育大会;计算机科学教育
0 引 言
第48 届ACM 计算机科学教育大会(the 48th ACM Technical Symposium on Computer Science Education, SIGCSE 2017)于2017 年3 月8—11 日在美国西雅图召开。会议主题是“Inspire, Innovate, Improve!”,旨在激励计算机教育工作者创新教学策略,通过自省和评估进行改进,以便提供最好的学习成果。ACM 计算机科学教育大会是ACM SIGCSE 的旗舰会议,今年吸引了1 500 多人参会。
本届会议设置并行的多个环节探讨K-12、低年级和高年级本科课程、开源软件、外联和教育研究等方面的计算机科学教育工作,包括105 篇正式论文、48 篇墙报、16 个圆桌会议、12 个特殊分会、24 个专题讨论会、10 个演示、12个小型讲座、36 个兴趣小组研讨会(Birds of a Feather, BoF)以及ACM SIGCSE 学生研究竞赛。谷歌、IBM、英特尔、微软、Vocareum、zyBooks、甲骨文、乐高教育、Github 等公司还进行了产品展示。
1 特邀报告
本次会议邀请“计算思维”提出者周以真(Jeannette Wing)作题为《拥抱不确定性》(Embracing Uncertainty)的开幕演讲。她举例说明在当今“数据驱动发现”的世界中到处存在不确定的计算。这种不确定要求计算机科学专业的学生要具有概率和统计的基础;需要向学生(不只是计算机专业)提供机器学习或数据科学等本科课程;而传统的程序设计、软件工程和数据库等课则需增加引导学生认识数据的状态,理解数据分布对算法、数据结构和模块设计的重要性;未来还需创建概率程序设计课程。
闭幕演讲则请到麻省理工学院(MIT)媒体实验室教授米切尔·雷斯尼克(Mitchel Resnick)作题为《实现佩珀特 的梦想:让所有人都熟练地使用计算机》(Fulfilling Paperts Dream: Computational Fluency for All)的報告。他介绍了MIT 媒体实验室为实现“把编程作为让所有孩子探索、试验和表达自己的一种新途径”的梦想而研发的Scratch 等少儿编程工具,以及在提升少儿学习兴趣和教育方面的多种策略和看法。他指出,用奖励来激励学习在短期内有效,但会削弱人们长期学习的动力;在教学方法上要改变枯燥的说教,设计出好的寓教于乐的产品十分重要。
2 信息教育科研成果
本届会议首次从录用论文中选出具有高质量、新颖性、广泛性的前25% 的文章作为示范论文。论文主题涵盖K-12、初学者和CS1 的教育,计算思维,教学及评估方法,以及算法、软件工程、数据科学、机器人和可穿戴系统、结对编程、块编程等。
2.1 数据科学课程开设的研究
最佳CS 教育研究论文[1]介绍了弗吉尼亚理工大学为便于教师将数据科学引入到计算导论课而研发的CORGIS 项目。该项目受美国国家科学基金会(NSF)资助,已持续4 年,提供从真实数据中收集并清洗得到的40 多个数据集,提供简单的Java、Python 等编程库支持集成新数据集,方便初学者编程处理真实数据;还提供基于Web 的工具,使学生不用编程也可以研究数据并进行可视化分析。印度Aspiring Minds 公司介绍了将数据科学引入到中学的做法[2]。中密歇根大学介绍了开设的“大数据和云计算”课程所面临的问题[3]。他们认为,用物理集群能更真实地让学生感受云计算中诸如对变化响应的灵活性和可控性等许多重要因素,不应忽视对物理集群的使用。
2.2 教学大数据对教育的促进
英国肯特大学2013 年6 月启动Blackbox 项目,从Java 初学者使用的BlueJ IDE 中收集编程行为数据。利用两年收集到的90 多万用户的近亿条编译事件和对76 个教师的调查,分析得出初学者常犯的错误以及教师能否精确估计哪些错误是最普遍的。文献[4—5]指出不同教师的估计之间、估计与收集的数据之间均有偏差,并进而分析结果的隐含关系。洪堡州立大学和华盛顿州立大学的老师[6]用自制的Visual Studio 插件OSBIDE 收集了7个编程作业的278万多个事件,识别出学生完成编程作业而产生的2 万多个不同的编程状态序列。分析发现,不同得分等级的学生有不同的编程状态序列,表明学生的成绩与其完成作业的行动相关,并指出这种差异是可以自动检测的。宾夕法尼亚约克学院等学校的教师针对教学实践中大量产生的编程快照数据,开发出一种结构化的数据模型和归档数据格式Progsnap[7],解决数据来源潜在的格式不一致问题。
2.3 教学评估方法及相关工具
最佳新方案论文[8]介绍莱特州立大学建立的评估基础框架,用来评估计算机科学和计算机工程本科课程体系(如CS2013、CEG2016)对学生培养的效果。在核心课教师的参与下,他们建立了课程、知识点之间的映射关系,进而设计出9 门核心课程的评估测试问卷用于在线评估。在开课初期,在线评估工具通过标准的课程管理系统,如Blackboard 或D2L,将问卷发布给学生进行测试,评估学生已掌握的知识水平;通过生成单个课程、跨课程的综合评估等报告,及时向师生反馈,并对培养方案的健康度进行长期评估,大大减轻了评估负担,为师生及课程规划组提供了最直接的反馈。加州大学圣迭戈分校通过互助小组测试来评估学习的效果[9]。还有几篇论文将静态分析技术用于代码评测。例如,伊利诺伊大学厄巴纳- 香槟分校(UIUC)的研究者研发的代码抄袭检测工具Algae[10],用它分析、检测了6个学期的学生作业,并发现大多数学生只抄袭简单的作业,作业越复杂,抄袭率越低。美国伦斯勒理工学院研发的Submitty 评分系统[11]可以快速对学生提交的代码进行评分反馈,已在8门不同的课程中使用,收效良好。endprint
2.4 重視沟通能力的培养
良好的口头沟通能力对职场成功至关重要。玛丽华盛顿大学将沟通技能的指导和实践贯穿于计算机专业课程体系中[12],以期在培养学生技术技能的同时培养口头沟通能力。该校在大一开设研讨课,通过小组讨论和演讲来培养学生基本的研究、写作和口头沟通能力,学校语言中心提供在线训练模块可对学生进行课余指导。在大二的面向对象课程中,用半学期让学生开展小组项目,每组3~4人,训练组内沟通能力,学期末每组在课堂做30分钟的演讲,介绍小组的工作和软件设计等。大三阶段则一方面引入计算机伦理学、计算机信息系统等以演讲为主的课程,另一方面通过其他课程的分组实践来训练组内沟通能力。大四通过软件工程课程进一步训练口头沟通能力,并且要求学生与非技术客户进行合作。
2.5 实践课程的探索
最佳实践报告论文[13]介绍了犹他大学面向非计算机专业本科生开设的一门为期15周的、以项目实践为基础的本科课程“制造声音:声音艺术和数字媒体”。课程教材为尼古拉斯·柯林斯(Nicolas Collins)编著的Handmade Electronic Music: The Art of Hardware Hacking。学生通过实践,学习和掌握电子音乐以及电子与编程相关的计算机科学与工程技术,循序渐进地了解声音原理,使用开源硬件Arduino、结合CdS光传感器和扬声器编程,学习施密特触发器振荡电路等内容,使学生最终制作出与声音艺术相关的综合作品。该课程以声音艺术为载体,探索培养学生的“技术流畅度”,以提升学生的创意设计思维和解决工程问题的能力。
3 其他环节
在圆桌会议中,ACM SIGCSE 中国分会的9名参会者参加了主题为“CC2020: A Vision on Computing Curricula”的讨论。美国海军军官学校教授艾伦·帕里斯(Allen Parrish)介绍了美国网络安全的教学情况,介绍了CSEC2017 课程体系的进展;荷兰阿姆斯特丹自由大学教授格里特·范德尔维尔(Gerrit Van Der Veer)介绍了人机交互及其在欧洲的教育情况;北京大学教授张铭围绕信息技术及其在中国的情况,介绍了中国的教学情况和IT2017 课程体系的建设进展。
兴趣小组研讨会BoF是SIGCSE 会议的特色。今年有36个BoF 活动,涉及的主题面很广。在计算机课程方面,BoF讨论跨学科的数据科学与计算机教育之间的关系、计算机教学的课程指导、Alice(一种3D 编程环境)课程的技巧与方法、残疾学生的计算机教育问题、编程日志数据的共享和使用问题等。在教学方法方面,讨论主动学习法、过程导向学习法、类比法,如何使计算机CS1/CS2 概念变得易懂,老师如何指导开放的项目等。在师资培训及服务方面,讨论高校计算机教师认证相关的标准、评估和认证考试等。
4 中国信息教育科研亟待加强
SIGCSE 每年参会的代表以及论文成果以美国本土的计算机教育工作者为主体,这是因为美国高度重视计算机教育研究和人才培养。相比于计算机专业其他方向的SIG 系列会议,SIGCSE 上罕见来自中国大陆的论文,这反映了我国在计算机教育研究项目和经费投入的严重不足。
美国高度重视信息技术领域的人才培养。2016年1 月,美国拨款40 亿美元推出“全民计算机科学行动计划(Computer Science for all Initiative)”,旨在普及计算机科学教育,着力推动青少年编程教育。美国NSF 也拨款12 亿美元设立了相关项目,支持信息技术教育的研究与实践。
美国NSF每年支持十多个大于百万美元的计算机教育项目,还有不少几十万美元的中小型项目,每年支持的计算机教育研究项目超过1 亿美元。例如,美国加州大学伯克利分校的丹·加西亚(Dan Garcia)领导的Beauty and Joy of Computing 项目不仅得到NSF 650 多万美元资助(2011—2018年),还获得了纽约市政府1 000 多万美元的配套支持。而中国教授独立申请的大多数计算机教育立项的资助金额一般只有几万元人民币。计算机学科发展迅猛,人才需求旺盛,对计算机教育研究的科研立项和经费投入不够,必将严重影响到下一代中国人在信息领域的国际竞争力。
为了更多、更快、更好地培养我国信息技术领域人才,建议教育部和国家自然科学基金委员会联合,长期支持一批信息技术教育研究项目,以利于为国家培养大量信息技术人才。
参考文献:
[1] Bart A C, Whitcomb R, Kafura D, et al. Computing with CORGIS: Diverse, real-world datasets for introductory computing[C]//Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. Seattle, Washington, USA: ACM, 2017: 57-62.
[2] Srikant S, Aggarwal V. Introducing data science to school kids[C]//Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. Seattle, Washington, USA: ACM, 2017: 561-566.
[3] Eickholt J, Shrestha S. Teaching big data and cloud computing with a physical cluster[C]//Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. Seattle, Washington, USA: ACM, 2017: 177-181.endprint
[4] Brown N C C, Altadmri A. Novice Java programming mistakes: Large-scale data vs. educator beliefs[J]. ACM Transactions on Computing Education (TOCE), 2017, 17(2): 7.
[5] K?lling M, McKay F. Heuristic evaluation for novice programming systems[J]. ACM Transactions on Computing Education (TOCE), 2016, 16(3): 12.
[6] Carter A S, Hundhausen C D. Using programming process data to detect differences in students' patterns of programming[C]//Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. Seattle, Washington, USA: ACM, 2017: 105-110.
[7] Hovemeyer D, Hellas A, Petersen A, et al. Progsnap: Sharing programming snapshots for research (abstract only)[C]//Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. Seattle, Washington, USA: ACM, 2017: 709.
[8] Timmerman K, Doom T. Infrastructure for continuous assessment of retained relevant knowledge[C]//Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. Seattle, Washington, USA: ACM, 2017: 579-584.
[9] Cao Y J, Porter L. Evaluating student learning from collaborative group tests in introductory computing[C]//Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. Seattle, Washington, USA: ACM, 2017: 99-104.
[10] Pierce J, Zilles C. Investigating student plagiarism patterns and correlations to grades[C]//Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. Seattle, Washington, USA: ACM, 2017: 471-476.
[11] Breese S, Milanova A, Cutler B. Using static analysis for automated assignment grading in introductory programming classes (abstract only)[C]//Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. Seattle, Washington, USA: ACM, 2017: 704.
[12] Anewalt K, Polack J. A curriculum model featuring oral communication instruction and practice[C]//Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. Seattle, Washington, USA: ACM, 2017: 33-37.
[13] Brunvand E, McCurdy N. Making noise: Using sound-art to explore technological fluency[C]//Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. Seattle, Washington, USA: ACM, 2017: 87-92.
(編辑:彭远红)endprint