美国计算机协会K-12阶段计算机科学课程模型述评
2009-09-02钱松岭董玉琦
钱松岭 董玉琦
2003年10月,美国计算机协会(Association for Computing Machinery ACM)课程委员会专职小组完成了他们的最终报告,提出了一个系统的计算机科学课程模型,为美国中小学学生能连贯地学习系统的计算机科学课程提供了一套解决方案。2006年又进行了第二版的修订。本文重点阐述该课程模型的研制背景与目的、设计原则、内容与学习目标以及实施策略等。作为信息技术课程研究者,关注美国计算机科学课程的发展,将对我国的中小学信息技术课程发展提供可借鉴的经验与启示。
● 课程模型的研制背景与目的
在美国,国家层面上的计算机科学课程标准是不存在的。一些州立标准独立设置“信息技术”,并将它作为一个学科领域(如亚利桑那州使用的国家教育技术标准)。还有一些州将其整合于其他的科学课程领域(如缅因州的“学习”目标)。鉴于此领域课程发展的实际情况,“计算机协会K-12阶段计算机科学课程模型”(以下简称课程模型)的研制主要是为当前已有的计算机科学或信息技术课程作一个补充,特别是对计算机科学AP(Advanced Placement大学预科)课程以及NETS(国家教育技术标准)课程的补充。
该课程模型得到了来自许多教师、研究人员以及专业研究机构的反馈意见,并且此报告在国际教育技术协会的国家教育计算机会议和计算机协会计算机科学教育特别兴趣小组的研讨会上进行了交流。
● 课程模型的课程目标
作为课程模型的基础概念,计算机科学定义为:“计算机科学(CS)是计算机和算法过程的学习,它包括其中的原理、硬件及软件设计、应用软件及其对社会的影响。”计算机科学课程包括:编程、硬件设计、网络、图形、数据库与信息搜索、计算机安全、软件设计等。
课程模型提出,K-12阶段计算机课程的目标是:①从小学开始向所有学生介绍计算机科学的基本概念;②在高中阶段开设计算机科学课程并占课程的学分(如得到数学或科学课程的学分);③在高中阶段为学生提供额外的计算机课程,引起学生兴趣并能进一步深入学习,为他们在将来的工作或大学的学习做好准备;④促进全体学生计算机科学知识的增长,特别是那些占学习计算机课程比例较小的群体。
● 课程模型的设计原则
课程模型是基于这样的认识进行设计的,即计算机科学的学习以及将它确定为一门课程是可能的,计算机科学是一门科学。课程模型遵循以下十个原则:①强调计算机背后的科学原理;②让学生熟悉包括抽象性、复杂性、模块化和可重用性等重要原理;③强调问题解决方法和批判性思维的技巧;④帮助学生发展独立于技术之外的广泛认知能力与使用技巧;⑤是一个全面的课程,足以为学生提供广泛的领域陈述学科历史,以使他们更好地理解如何使用计算机来解决实际问题的(它能参与解决各个领域的问题包括设计、网络、图形、数据库和信息检索、计算机安全、软件设计、程序语言、逻辑、编程模式、人工智能、信息技术应用、信息系统和社会问题等);⑥明确设计和分析过程,以使学生对计算机系统的结构以及过程中涉及的设计、开发和维护有所了解;⑦通过一系列的课程促使学生学习与接受新思想、新概念与新技巧,课程需给出与年龄相适应的学习目标;⑧不论性别和种族,学习内容应以能让所有学生参与的方式进行教学;⑨将概念性的和实验性的问题相结合,以使学生了解学科的理论基础及其对实践的影响;⑩了解计算机科学与计算机素养(教给学生如何使用各种软件而不是在教计算机科学)的不同。
● 课程模型各级的具体内容与目标
课程模型包括四个级别的课程,希望所有的学生应至少完成前两个级别。四个级别如图所示。
★水平1“计算机科学基础”。这一水平的学习目标根据国家教育技术标准(美国国际教育技术协会ISTE,2002)制定的,这部分主要是信息技术的内容,特别强调技术对其他学科的支持。另外还包括更多与问题解决和算法思维有关的学习目标。
课程模型按照美国国家教育技术学生标准的模式又将水平1分为K-2年级、K-3至K-5年级、K-6至K-8年级,并在此基础上增加了算法思维以及计算机科学的其他基础知识。
★水平2“现代世界中的计算机科学”。本水平目的是把它作为所有高中学生的第一个计算机科学课程,它提供了关于本学科的广泛介绍,使学生为未来的技术世界做好准备。概念上的内容包括对操作系统、网络、互联网、问题解决、编程、职业规划和计算机伦理问题有一个基本了解。学时设计为一年。
学生应该获得以下主题的概念理解:①计算机组织的原理与主要内容(输入、输出、内存、存储、处理过程、软件、操作系统等);②算法解决问题的基本步骤(问题描述与探索、实例检测、设计、编程、检测与验证);③计算机网络的基本内容(服务器、文件保护、路由协议连接/通讯、Spoolers和队列、共享资源、错误兼容);④因特网要素组织、网页设计(表格、文本、图形、客户和服务器端脚本)和超媒体(链接、导航、搜索引擎和策略、解释和评价);⑤层次的概念和计算中的抽象概念,包括高级语言,翻译(编译、链接)、机器语言、指令集和逻辑电路;⑥数学和计算机科学之间联系的要素,包括二进制数字、逻辑、集、功能;⑦作为智能行为模型(如机器人运动,言语和语言的理解、计算机视觉)的计算机概念以及人类与机器的区别;⑧在广泛的跨学科领域使用计算机与现实世界中算法解决问题的实例(如电话应答系统的编程);⑨与计算机、网络相关的伦理问题(包括安全、隐私、知识产权、公众领域中软件的优势与劣势以及因特网上信息的可靠性)以及科技对人类文化的积极与消极影响;⑩分辨计算机相关的行业与本门学科的课程学习的不同(如信息技术专家、网页设计者、系统分析家、编程人员、首席信息官)。还包括算法、编程和网页设计等实验室的课程。算法设计与编程包括如下内容:变量、数据类型和计算机数据代码;通过自上而下的对象优先教学法管理复杂性;程序和参数;序列、条件和循环(重复);表达设计的工具(流程图、伪代码,基于UML,N-S图表)。
★水平3“作为分析与设计的计算机科学”。是AP(Advanced Placement高级进阶,大学预备课程)考试的预备课程,它的重点是科学和工程学原理。这门课程旨在为有意在大学阶段计算机科学、工程学或过程技术学寻求更多高级研究的学生设计,使学生理解计算机科学与数学、科学课程的一些联系,并使用编程与设计知识解决实际问题。为一年的学分课程。
完成此水平的学习后,学生应理解下列主题的工作原理:①编程设计与问题解决过程的基本思想,包括风格、抽象、把正确性与有效性的讨论作为软件设计过程的一部分;②简单的数据结构及其使用;③离散数学的主题:逻辑、功能、集及其与计算机科学的联系;④有用性设计:网页设计、互动游戏、文本等;⑤硬件设计基础;⑥语言、软件和编译的水平:编辑者的特点,操作系统和网络;⑦计算机的局限性:什么是计算机的“硬伤”(如海洋模拟、空中交通指挥、基因地图),什么类型的问题是计算机无法解决的(如死机问题);⑧软件工程的原理:软件项目、小组、软件生命循环;⑨社会问题:软件是知识产权、专业实践;⑩计算机相关行业:计算机科学家,计算机工程师、软件工程师,信息技术专家,还包括编程、设计与其他活动的课程。
在此课程中可以介绍包括编程项目中的软件与硬件工程的主题:硬件与系统(逻辑、门与循环、二进制算术、机械与汇编语言、操作系统、用户接口、编译器)。软件工程(要求、设计、团队、测试与维护);软件工程的社会问题(计算机的局限性、语言级别、计算机行业)。
★水平4课程是一个特殊的课程,让学生把重点放在他们特别感兴趣的特殊计算机领域。“它的目的是涵盖范围广泛的专门课程,包括AP课程、项目课程和可以取得行业认证的课程。”
美国的许多高中都为打算在大学继续学习计算机科学或相关领域的学生开设计算机科学AP课程。学生在学完水平2以后,就可以继续水平4的学习。水平4当中一些编程的概念内容与水平3中的是重复的。所以,对于完成水平3的学生,AP课程可以作为一种复习。此部分课程就是为了让学生通过AP课程的考试,为将来深入的学习打下基础。有两部分:A课程强调问题解决与算法开发,介绍数据结构基础知识,成绩优秀者可以获得大学一学期的学分;AB课程扩展A课程的基础知识,包括大量的递归算法与数据结构学习。
项目课程适用于所有完成水平1和2学习的学生,是半年或一年的课程。项目课程可以随着计算机科学与信息技术的变化来做与时俱进的调整,来满足学生多样的需求,促进他们发展应用技术的职业技能。项目课程涉及面广,如演示、多媒体、图形、网页开发与制作等。
行业认证的课程主要面向打算在职业学校或学习两年AAS(Associate in Applied Science应用科学准学士)课程的学生,也要求学生完成水平1和水平2的学习。行业认证为那些没有工作经验的打算从事此方面工作的学生提供一个标准,并参加相应考试。例如,A+Certified Technician(计算机服务技师:入门级的行业认证,具备相当于半年工作经验的计算机服务知识与技能);Certified Internet Webmaster (CIW)(具备IT行业标准的实践能力,熟悉领先的硬件与软件技术的人员);i-Net+(具备与网络相关职业的技术知识)。
● 课程模型推荐的实施策略
“课程模型”只是提出了一个模型,并没有相应的教学资料、教学计划、训练有素的师资和具体可以执行的预算。但它也提出了相应的课程实施主要策略。
1.取得广泛支持:实施当中应使各个方面的人员都成为利益相关者,如计算机协会(ACM)、课程发展与监督协会(ASCD)和国际教育技术协会(ISTE)这样的专业机构。学区、州、国家教育行政部门的人员等。
2.鼓励课程开发:像国际科学基金委员会(NSF)这样的资助机构应帮助一线教师以及其他计算机科学教育人员按照本“课程模型”的思想开发课程,同时鼓励出版商投资这些项目,更好地将教学资源进行推广。
3.建立专业机构:建立K-12计算机科学教师专业团体,促进地区间教师的合作与交流,并为地方教师提供专业引领。
4.文化价值认同:许多中小学计算机科学教师感到孤立与无助,一些学校常常对课程变化反应迟钝的态度,没有充分的教育设备、资源,不被数学与科学教师接受。各州缺乏课程标准,缺乏职前、职后教育培训,预算缩减等众多因素综合在一起造成了这样的局面。如果计算机科学会变成基础教育主流文化当中有意义的一部分,那么上述的各种情况一定会有所改变。
5.积极宣传推广课程:宣传推广课程是实施的第一关键。学区、地方乃至国家层面的研讨会进一步促进课程实施,使人们认识到计算机科学在基础教育中有必要作为一门独立学科。
6.教师专业发展课程:除了课程推广与开发,为课程发展提供持续的支持才能保持计算机科学教育长期的发展。例如,一个完善的教师教学资格认证体系是课程实施的重要保障,但建立这个体系是个极其复杂的过程,这需要国家教育部门、社会专业团体、大学等部门以及教师的通力合作。