计算思维与大学计算机基础教育

Download Report

Transcript 计算思维与大学计算机基础教育

计算思维与大学计算机基础教育
陈国良 董荣胜
2010.11月
摘要:
本报告首先讲述了《大学计算机基础》课程
的重要性,分析了教学中存在的问题,指
出了“狭义工具论”的危害。然后从推动
人类文明进步、科技发展三大科学思维之
一的计算思维入手,阐述了计算思维对学
生创新能力培养的重要性。最后按计算思
维主要内容,即问题求解、系统设计和人
类行为理解,探讨了大学计算机基础课程
设置,强调了课程结构设计的重要性,给
出了一种以“计算思维”为核心的大学计
算机基础课程教学的最小集,为大学计算
机基础教育提供了一种以提高学生计算思
维能力为目标的新模式。
2
目录
一.大学计算机基础课程的重要性
二.大学计算机基础课程教学存在的问题
三.计算思维在美国产生的背景
四.科学与科学思维
五.计算思维
六.计算思维在我国
七.计算机科学导论:计算思维课程的总体框架
八.计算机科学导论:计算思维课程的内容规划
九.结论
十.感谢
3
一、大学计算机基础课程的重要性
1.
大学通识教育是大学人才培养的重要任务
•
①
②
③
•
①
②
③
大学教育不能局限于基本知识传授,要培养
学生的理性思维能力
学生对科学精神的追求
学生的高尚人格
通识教育三大特征(复旦杨玉良校长)
通识教育要同时传递科学精神和人文精神
通识教育要展现不同文化、不同学科的思维方式
通识教育要充分展现学术的魅力
2.
计算思维能力培养是大学通识教育的重要组成部分
•
•
国家明确定位计算机基础课程是和数学、物理等同地位的基础课程。
计算机不仅为不同专业提供了解决专业问题的有效方法和手段,而且提供
了一种独特的处理问题的思维方式。
熟悉使用计算机及互联网,为人们终生学习提供了广阔的空间以及良好的
学习工具与环境。
•
4
二、大学计算机基础课程教学存在的问题(1)
1.
我国的情况
•
“狭义工具论”的课程:“狭义工具论”认为教计算机基础就是教些计算
机工具及其使用方法。
“浓缩版”的教材:教材基本上是有关领域的浓缩版,学生进入大学后,
对第一门计算机课程兴趣不大,逃课率相当高。
计算机基础课教学学时被压缩,教学资源配置不充分,课程面临被裁减的
危机
•
•
2.
美国的情况(1)
•
学生学习计算机课程情况:
2003年11月,美国Naval Postgraduate School的Peter Denning教授在CACM上发
表《Great Principles of Computing》一文介绍了这种情况:
在大学第一门计算机课程(主要指“程序设计语言”作为第一门计算机课程)的
学习过程中,有35-50%的学生中途放弃。另外,不少的学生还通过抄袭或
者是作弊的方式来完成课程。
5
二、大学计算机基础课程教学存在的问题(2)
2.
美国的情况(2)
•
毕业生的工资情况:
2005年11月,美国《Computing Research News》刊登的一篇名为《科学与工程专业
毕业生的工资》的报告:
2003年,在美国科学领域各学科中,计算机与信息科学专业毕业生的平均年工资最高,
学士人均年工资为45,000美元,硕士人均60,000美元。
•
学生主修计算机专业情况:
加州大学洛杉矶分校发现学生对计算专业的兴趣波动很大,2001后普遍下降。具体数
据如图所示:
6
三、计算思维在美国产生的背景(1)
1.
2005年6月美国的PITAC报告
2005年6月,美国总统信息技术咨询委员会(PITAC)给美国总统提交了报
告《计算科学:确保美国竞争力》(Computational Science:
Ensuring America’s Competitiveness)。
•
报告写道,虽然计算本身也是一门学科,但是其具有促进其他学科
发展的作用。
•
报告还写道,二十一世纪科学上最重要的、经济上最有前途的研究
前沿都有可能通过熟练的掌握先进的计算技术和运用计算科学而得
到解决。
①
②
③
④
报告认为,如今美国又一次面临了挑战,这一次的挑战比以往来得更加广泛、复杂,
也更具长期性。
报告认为,美国还没有认识到计算科学在社会科学、生物医学、工程研究、国家安全,
以及工业改革中的中心位置。
报告认为,这种认识不足将危及美国的科学领导地位、经济竞争力以及国家的安全。
报告建议,将计算科学长期置于国家科学与技术领域中心的领导地位。
7
三、计算思维在美国产生的背景(2)
2.
2005年底至2006年初美国四大区的报告及建议
•
针对“计算学科与日俱增的重要性与学生对计算学科兴趣的下降”,美国
NSF组织了计算教育与科学领域,以及其他相关领域的专家分四个大区
(东北、中西、东南、西北)进行研讨,形式四份重要报告:
Report of NSF Workshop on Integrative Computing Education and
Research(ICER) Northeast Workshop
Report of NSF Midwest Region Workshop on ICER: Preparing IT
Graduates for 2010 and Beyond
Report from the Southeast Region Workshop on ICER: Preparing IT
Graduates for 2010 and Beyond
ICER Final Report of the Northwest Regional Meeting
内容及建议
①
②
③
④
•
以上四个文件分析了美国计算教育出现的问题,报告建议在美国国家科学基金的资助下全
面改革美国的计算教育。以下两个问题和一个建议值得我们注意:
①
大学第一年计算机课程的构建问题;
②
多学科的融合问题;
③
报告建议加强美国中小学学生抽象思维与写作能力的训练,目的,使学生平稳过渡
到大学的学习。
8
三、计算思维在美国产生的背景(3)
3.
2007年美国NSF的CPATH计划
•
CPATH(Pathways to Revitalized Undergraduate Computing Education,
大学计算教育重生的途径)计划认为:计算普遍存在于我们的日常生活之中,
培养未来能够参与全球竞争、掌握计算核心概念的美国企业家和员工就变得
非常重要。
CPATH计划认为:尽管有的研究机构和大学对此做出了卓越的、开创性的工
作,但目前美国更多的大学计算教育仍然沿袭的是几十年前的教学模式。鉴
于此,NSF 2007年启动了CPATH计划,当年投入600万美元,2008年投入500
万美元,2009年投入1000万美元,力图改变这种情况。
经过2007年和2008年的资助和项目实践,CPATH认识到“计算思维”在计划
中所起的独特的重要作用,因此,对2009年申报的项目提出了更为具体的以
“计算思维”为核心的要求。
•
•
4.
2008年美国NSF的CDI计划
•
CDI(Cyber-Enabled Discovery and Innovation,计算使能的科学发现和
技术创新)是美国国家科学基金会的一个革命性的、富有独创精神的五年计
划,该计划旨在通过“计算思维”领域的创新和进步来促进自然科学和工程
技术领域产生革命性的成果。
CDI计划2008年启动,当年批准了共计4200万美元的72个项目的立项申请,
2009年投入2600万美元,2010年投入3600万美元。
•
9
四、科学与科学思维(1)
1.
人类科学发现的三大支柱:
•
理论科学、实验科学和计算科学作为科学发现三大支柱,正推动着人类文
明进步和科技发展。
该说法已被科学文献广泛引用,并在美国得到国会听证、联邦和私人企业
报告的承同。
•
2.
人类认识世界和改造世界的三种思维:
•
•
•
理论思维:以推理和演绎为特征,以数学学科为代表。
实验思维:以观察和总结自然规律为特征,以物理学科为代表。
计算思维:以设计和构造为特征,以计算机学科为代表。
10
四、科学与科学思维(2)
3. 科学思维:
国科发财〔2008〕197号文《关于创新方法工作的若干意见》认为“科学
思维不仅是一切科学研究和技术发展的起点,而且始终贯穿于科学研究和技
术发展的全过程,是创新的灵魂”。
• 理论思维:
理论源于数学,理论思维支撑着所有的学科领域。正如数学一样,定义是理论思
维的灵魂,定理和证明是它的精髓。公理化方法是最重要的理论思维方法。
• 实验思维:
实验思维的先驱是意大利科学家伽利略,被人们誉为“近代科学之父”。与理论
思维不同,实验思维往往需要借助于某些特定的设备,并用它们来获取数据
以供以后的分析。
• 计算思维:
计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理
解的涵盖了计算机科学之广度的一系列思维活动。
11
五、计算思维(1)
1.
计算思维的定义:
计算思维(Computational Thinking,CT)是运用计算机科学的基础概念去求解
问题、设计系统和理解人类行为。CT的本质是抽象和自动化。它是如同所
有人都具备“读、写、算”(简称3R)能力一样,都必须具备的思维能力。
2.
计算思维的解析(1):
•
计算思维是通过约简、嵌入、转化和仿真等方法,把一个困难的问题阐释
成如何求解它的思维方法。
计算思维是一种递归思维,是一种并行处理,是一种把代码译成数据又能
把数据译成代码,是一种多维分析推广的类型检查方法。
计算思维是一种采用抽象和分解的方法来控制庞杂的任务或进行巨型复杂
系统的设计,是基于关注点分离的方法(SoC方法)。
计算思维是一种选择合适的方式陈述一个问题,或对一个问题的相关方面
建模使其易于处理的思维方法。
计算思维是按照预防、保护及通过冗余、容错、纠错的方式,并从最坏情
况进行系统恢复的一种思维方法。
•
•
•
•
12
五、计算思维(2)
2.
计算思维的解析(2):
•
计算思维是利用启发式推理寻求解答,即在不确定情况下的规划、学习和
调度的思维方法。
计算思维是利用海量数据来加快计算,在时间和空间之间、在处理能力和
存储容量之间进行折衷的思维方法。
•
3.
计算思维的特征(1):
•
概念化,不是程序化
计算机科学不是计算机编程。像计算机科学家那样去思维意味着远远不止能为计
算机编程,还要求能够在抽象的多个层次上思维。计算机科学不只是关于
计算机,就像音乐产业不只是关于麦克风一样。
•
根本的,不是刻板的技能
计算思维是一种根本技能,是每一个人为了在现代社会中发挥职能所必须掌握的。
刻板的技能意味着简单的机械重复。
13
五、计算思维(3)
3.
计算思维的特征(2):
•
人的,不是计算机的思维
计算思维是人类求解问题的一条途径,但决非要使人类像计算机那样地思考。计
算机枯燥且沉闷,人类聪颖且富有想象力。是人类赋予计算机激情。计算
机赋予人类强大的计算能力,人类应该好好的利用这种力量去解决各种需
要大量计算的问题。
•
是思想,不是人造品
不只是将我们生产的软硬件等人造物到处呈现给我们的生活,更重要的是计算的
概念,它被人们用来问题求解、日常生活的管理,以及与他人进行交流和
互动。
•
数学和工程思维的互补与融合
计算机科学在本质上源自数学思维,它的形式化基础建筑于数学之上。计算机科
学又从本质上源自工程思维,因为我们建造的是能够与实际世界互动的系
统。所以设计思维是数学和工程思维的互补与融合。
•
面向所有的人,所有地方
当计算思维真正融入人类活动的整体时,它作为一个问题解决的有效工具,人人
都应当掌握,处处都会被使用。
14
六、计算思维在我国(1)
1.
中国2050年信息科技发展路线图
•
由李国杰院士任组长的中国科学院信息领域战略研究组撰写的《中国至
2050年信息科技发展路线图》中对“计算思维”给予了足够的重视,认为,
计算思维的培育是克服“狭义工具论”的有效途径,是解决其他信息科技
难题的基础。
长期以来,计算机科学与技术这门学科也被构造成一门专业性很强的工具
学科,“工具”意味着它是一种辅助性学科,并不是主业。这种狭隘的认
知对信息科技的全民普及极其有害。
•
15
六、计算思维在我国(2)
2.
计算机科学的变革:
•
孙家广院士在“计算机科学的变革”一文中指出:(计算机科学界)最
具有基础性和长期性的思想是“计算思维”(Computational Thinking)。
国家自然科学基金委员会信息科学部二处处长刘克教授,强调了在大学中
推进“计算思维”这一基本理念的必要性。
中国科学院计算技术研究所研究员徐志伟总工认为:计算思维是一种本质
的、所有人都必须具备的思维方式,就像识字、做算术一样;在2050年以
前,让地球上每一个公民都应具备“计算思维”的能力。
中科院自动化所王飞跃教授率先将“计算思维”引入国内,翻译了周以真
教授的“计算思维” ,撰写了相关的“计算思维与计算文化”。他认为:
在中文里,计算思维不是一个新的名词。在中国,从小学到大学教育,计
算思维经常被朦朦胧胧地使用,却一直没有提高到周以真教授所描述的高
度和广度,以及那样的新颖、明确和系统。他希望我们能借“计算思维”
之东风,尽快把中国世故人情的“算计文化”反正成为科学理性的“计算
文化”,以提高我们民族的整体素质。
•
•
•
16
六、计算思维在我国(3)
3.
中国高等学校计算机基础课教学指导委员会的近期工作:
•
2010.5:在合肥会议上,讨论了培养高素质的研究性人才,“计算机基础”
这门课程应该包含哪些内容,如何将计算思维融入到这门课程中?
2010.7:在西安会议上发表了《九校联盟(C9)计算机基础教学发展战略联合
声明》,确定了以计算思维为核心的计算机基础课程教学改革。
2010.9:在太原会议上决定了将合肥会议和西安会议中有关计算思维的讨论
形成书面材料,以“计算思维:确保学生创新能力”为主题向教育部领导谏
言和申请立项研究。
2010.11:在济南会议上,将在全国更大范围内,深入讨论以计算思维为核
心的基础课教学改革,并将太原会议的初步材料加以讨论和修改后正式上报。
•
•
•
4. 计算思维课程在中国高校中正式开始实践:
上海交大和南方科大正在试开新型计算机基础课程——“计算机科学导论:
计算思维”。
17
七、计算机科学导论:
计算思维课程的总体框架(1)
1. 计算机科学导论:计算思维的基本框架
•
•
•
计算理论:可计算性与计算复杂性
算法和程序设计:基础算法与Python语言
实现基础:计算机硬件与软件最小知识集
2. 课程教学环节(1)
•
①
②
③
④
课堂讲授:内容规划见本报告第八节。使用的参考教材与讲义:
How to Think Like a Computer Scientist: Learning with Python
(2002)。
Python Programming: An Introduction to Computer Science
(2004)。
Computational Thinking. Jeannette M. Wing (周以真) (2007)。
Computer Science Unplugged. Tim Bell等。
18
七、计算机科学导论:
计算思维课程的总体框架(2)
2.
课程教学环节(2)
•
课堂练习:主要参考材料:
《不插电的计算机科学》(桂林电子科技大学,董荣胜主持翻译,2008.10)
•
课程实践:
实验内容包含指定的和自选的
•
成绩考核:
笔试+口试+小论文
3.
大学计算机基础课程群:
•
•
•
•
计算思维
(第一门课)
算法与程序设计
计算机系统类课程(软/硬件基础) (后续课)
信息处理与应用基础
19
八、计算机科学导论:
计算思维课程的内容规划(1)
1. 计算思维基础知识
•
科学发现的第三支柱:
科学发现的三大支柱,计算学科的兴起,计算学科的作用,名人名言。
•
计算科学与计算机科学
什么是计算科学?什么是计算机科学?计算机科学与程序设计,通过计
算可以模拟/评估什么科学过程(问题的表达,抽象和设计,设计
算法,编写程序,运算求解)。
•
计算思维
什么是计算思维?主要研究内容,主要特征(它是什么?它不是什
么?),计算思维对其他学科的影响。
20
八、计算机科学导论:
计算思维课程的内容规划(2)
2. 计算理论:
•
图灵机模型
可计算问题,图灵原理,停机问题,计算复杂性等
•
冯·诺依曼计算机模型
存储程序计算机,基本组成原理等
•
非传统计算模型
量子计算、分子计算、光计算等
3. 算法基础
•
算法的基本概念
定义,分类,表达
•
算法的设计方法
迭代法,递归法,随机法,启发式法等
•
算法的分析
最坏情况分析,平均情况分析
•
基本算法介绍
求和,求积,最大/最小,排序,查找,基本的图算法等
21
八、计算机科学导论:
计算思维课程的内容规划(3)
4.
程序设计语言
程序语言是在保证语法和语义正确的前提下,准确表达算法的实现过程。
•
语法和语义:前者确保程序设计语言的精确形式化描述;后者确保程序设计
语言的明确含义。
•
低级程序设计语言(机器二进制指令代码,符号汇编语言等)
•
高级程序设计语言(C,Fortran,C++,Java,Python等)
5. Python编程基础
•
•
•
Python简介:Python语言简介,Graphic Visual——VPython简介,科学计算
包Numpy,Matlab功能的Matplotlib(库),安装包NetworkX,生物信息软件
平台Cytoscape等。
基本要素:编程过程,注释,操作符,变量和函数,数据类型及转换,字符
串,列表和数组,字典,判定结构,循环语句,比较符,参数,递归,迭代,
随机数...
Python编程实例:基本输入/输出,定义函数,创建文件,直线式编程,for
循环,调用文件,数组计算...等。
22
八、计算机科学导论:
计算思维课程的内容规划(4)
6.
计算机硬件基础
•
•
•
•
•
•
7.
•
•
•
•
数制与运算
布尔逻辑与门电路
计算机组成(CPU,存储器,I/O设备,系统互连)
指令系统及执行
计算机体系结构
组网与因特网
计算机基础软件
操作系统
软件工程
数据库系统
人工智能
·
·
·
23
八、计算机科学导论:
计算思维课程的内容规划(5)
8.
•
•
•
•
•
•
•
•
不插电的计算机科学(习题课)
数字的认识(二进制、图像标示、文本压缩)
排序和搜索
检错和纠错
最短路径、连通性、死锁
图的划分、顶点着色、旅行商问题
背包与集装箱问题
信息隐藏与公匙加密
图灵测试等
·
·
·
24
九、结论
1.
教指委过去的工作奠定了大学计算机基础改革的基础
•
本届教指委在上届教指委的基础上,总结了计算机基础教学发展发展规律,
做了三件大事:即计算机基础教学的能力培养目标、知识体系和实验体系、
核心课程的基本要求。
教指委的这些工作,创造性地建立了计算机基础教学科学化和规范化的教学
研究方法,形成了比较科学的基础课教学体系,这些都为以计算思维能力培
养为核心的计算机基础课教学改革奠定了良好的基础。
•
2.
教指委为新一轮的大学计算机基础课改革作了前期准备工作
•
在2010年5月的合肥会议、2010年7月的西安会议和2010年9月的太原会议上,
均把计算思维列为会议主要议题,特别是在《九校联盟(C9)计算机基础教学
发展战略联合声明》中,确定了以计算思维为核心的计算机基础课程教学改
革。
本次(2010年11月的济南会议)会议将在全国更大范围内,深入讨论以计算
思维为核心的基础课教学改革,我们正在积极向教育部领导谏言和申请立项,
开展“计算思维:确保学生创新能力”的大学计算机基础课程教学改革的研
究。
•
3.
我们现在不仅仅是在谈论,而且是在具体做了:包括上海交通大学今
年秋季开设的实际上就是计算思维的课,以及南方科技大学本月就即
将开设全新的大学计算机基础课:计算机科学导论——计算思维。25
十、感谢:
•
•
•
关心支持本工作的教育部领导和积极参与本工作的老师们!
本届教指委全体成员对本工作的大力积极支持!
美国周以真教授在北京的面谈!
恳请批评指正!
谢谢。
26