APP下载

哈佛大学计算机基础课CS50及其启示

2019-10-24唐大仕

教育教学论坛 2019年39期
关键词:计算机基础课程计算思维

唐大仕

摘要:哈佛大学计算机基础课CS50是一门很有影响力的课程。文章介绍该课程的教学内容、教学组织及课程推广情况,并介绍其对国内计算基础教育的启示,包括重视基础、突出计算思维、生动的课堂、丰富的工具以及对品牌的重视等。

关键词:CS50;计算机基础课程;计算思维

中图分类号:G642.0     文献标志码:A     文章编号:1674-9324(2019)39-0005-03

CS50(Computer Science 50)是哈佛大学一门计算机科学的导论性的课程[1],内容包括基本的计算机知识、基础算法、编程应用等,还探讨人工智能等最新的计算机科学领域的应用。该课程是哈佛大学本科学生的一门选修人数最多、最受欢迎的课程之一,在美国及全球都有较大的影响力。笔者曾参加在哈佛大学举办的Workshop,与该课程的领导者David J.Malan进行了交流,感受了该课程的教学方式及其影响力。本文就CS50的相关情况进行介绍,并且谈谈对我国国内计算机基础教育的启示。

一、CS50的教学内容

1.教学大纲。CS50的教学内容,包括了较广泛的内容,从基础的算法、数据结构、C语言到网络、机器学习、Python、数据库、JavaScript等。课程大纲如表1所示。

课程中主要体现的思想是计算的中心思想,是计算思维,并且包含了The College Board(美国大学理事会)提出的计算机科学基础原则(CSP,computer-science-principles)。其中包含了7大思想(7 big ideas),如表2所示。

2.知识点。从其具体讲解的知识点(表3所示)来看,主要在C语言、数据结构方面进行了详细的讲解,这与国内的“计算概论”相似。而在课程后半部增加了网络、Web前端、Web后端、数据库等内容,使得计算机的知识讲解得更全面。在人工智能、机器学习等方面有所涉及,使得学生可以对计算机的最新发展有一个全面的认识。

二、CS50的教学组织

1.教学时间与教学形式。CS50的课程时长在11—13周,每周有2次课,每次课2—3小时。课程中还包括1次测验、1次考试、8个实习编程、1个期末大作业。CS50采用大班级教学、小班级辅导。在哈佛大学的课程每次上课有800—1000人,在哈佛剧院上课。老师讲课后录制成视频,放到网上,可供校内学生及校外学生进行观看。除了上课,还安排了辅导时间。学生课下完成练习,主要是编程题目,课程中给学生出的练习题目(Problem Set)如表4所示,可见大部分题目是开放性的,学生可以较自由地发挥。

2.教学工具。CS50课程内容较多,讲课速度也较快,这对学生的掌握内容还是有一定挑战的,所以教学团队提供了较多的教学工具及线上线下支持。用于学生的工具包括:CS50IDE(在线的集成开发环境)、help50(帮助文档)、check50(程序检查及建议)、debug50(调试工具)、style50(格式检查)、submit50(作业提交工具)等。甚至还有C语言与Scratch语言相转化的工具。用于教师的工具包括:check50(程序检查及建议)、style50(格式检查)、render50(在线语法加亮)等。还提供了一个平台cs50.me,用于教师批改作业、添加评语以及师生之间的互动。

3.教学资源。由教师团队及助教对课堂录像及教学素材进行编辑整理,并提供给学生丰富的教学资源和素材。在教学视频方面,包括:课堂录像(提供多机位及全景视频)、字幕、笔记、程序代码、幻灯片等。还由助教录制了一些补充讲解的视频(称为shorts)。

对于练习题目,除了给出问题外,还给出规范、指导等。还给教师团队提供题目的解决方案以及详细的评分规则、打分量表等。

4.教学活动。除了常规的上课、练习、答疑等常规教学活动外,每学期还举办事件性的活动。包括:(1)CS50 Puzzle Day,类似于“面对面选课”,每学期前进行,会发一些宣传材料,提供一些问题和解决方案等。(2)CS50 Hackathon,编程马拉松,每学期中后期举办,将有较高热情的学生组织起来针对一定的任务进行项目编程。活动一般会从头天晚上延续到第二天早上。(3)CS50 Fair,编程集市,每学期期末举办,学生可以展示他们的程序作品并交流,还会请一些外面的公司(如微软等)来参与。(4)CS50 Coding Contest,校际的编程比赛。

从以上活动来看,这门课的内容是十分丰富和多样的。

三、CS50的推广

CS50在美国国内及全球产生了广泛的影响力。CS50除了在哈佛大学内部、联合耶鲁大学开设外,还通过以下方式进行推广。

一是CS50x,即在知名的慕课平台edx上开设专门的课程[2],该课程可以被其他大学采用,也可以供社会学习者自学,其作业提交期限是12个月,以方便自定进度。该课程注册的学习者人数已超过100万。

二是CS50AP,即大学先修课[3],主要针对各个中学进行开设。AP课程是在大学课程的基础上进行了精简和一定程度的改造,分为9章,内容包括7个重要思想、24个理解知识点、44个学习小目标、312个关键知识语句、6个计算思維实践、数字创新活动以及1个考试。采用了该AP课程的中学超过150所。

该团队还欢迎其他学校使用该课程。使用方式有两种——adopt(直接采用)或adapt(修改后采用)[4]。在北美和欧洲有较多的学校采用了该课程,其他地区也有学校正在或将要采用。每年还在哈佛大学及其他地方举办研讨班,来自美国及其他国家的中学教师、大学教师参加研讨,扩大了其影响力。

四、CS50的启示

CS50作為哈佛大学本科学生的计算机基础课程,不仅在本校成为最受欢迎的课程,而且在校外也具有广泛的影响力。这对于我们国内的计算机基础教育来说,有较大的启发意义。

1.教学内容基础全面、突出计算思维。在教学内容方面,可以看出其基础性,突出计算思维,突出计算基本原理(Computer Science Principles)和计算机科学的最重要的7个思想(seven big ideas),在内容组织上,将计算机基本概念、程序设计语言、数据结构与算法、网络、Web前端与后端、人工智能等融合在一起,注重让学习者对计算机科学有全面和整体的把握,真正将计算思维落到实处。

另外,值得学习的是,其教学内容也是随时代在更新,如在讲应用系统时,将Web的前后端开发放到突出的位置,编程语言之一php改成了python,人工智能的内容近来增加了机器学习的内容。

2.课堂教学灵活生动、教师富有激情。在课堂教学方面,主讲教师David J.Malan在讲课时富有激情,讲课语速很快,课堂互动热烈。如讲解二进制时使用实际的电灯的点亮与熄灭,讲解二分法时手撕电话簿,讲解算法时让学生参与食品的制作过程,讲解排序时让学生直接参与排序,在讲解人工智能时还请来了机器人,这样生动的教学方式,让学生印象深刻。

3.丰富的教学工具、全程的教学支持。教师团队制作了丰富的教学工具,如上文提到的集成开发环境、格式检查工具、调试工具、帮助文档、作业提交平台等。还给学生提供了丰富的教学过程支持,如答疑、辅导、作业点评等。组织的面对面选课、编程马拉松、编程集市、编程竞赛等,丰富了教学过程,也给学有余力者以更好的发挥。这对国内的计算机设计大赛也有借鉴意义,即如何将比赛与课程教学活动较好地结合起来。

4.极大的教学投入、强烈的品牌打造。这门课的教学团队有80多人,其中有全职教师12人,还有很多助教。教师安心教学、专心教学,投入全部精力研究教学内容、教学方法,制作教学视频,研发教学支持工具,使得课程不断积累和进步。

还有一点特别值得国内的同行们借鉴,就是课程团队十分注重品牌的树立,其教学过程、教学支持工具、网站群中都注重名称的统一、内容的精细,在慕课和大学先修课程的推广、研讨会等各种场合都体现了浓浓的、独特的CS50品牌特色。

参考文献:

[1]CS50 at Harvard,https://cs50.harvard.edu.

[2]CS50x Introduction to Computer Science,https://cs50.edx.org.

[3]This is CS50 AP,https://ap.cs50.net/.

[4]Bring CS50 to your school,http://cs50.org/.

Introduction and Reflection of Harvard University Computer Science Course CS50

TANG Da-shi

(School of Electronics Engineering and Computer Science,Peking University,Beijing 100871,China)

Abstract:Harvard University Computer Science Course CS50 is a well-known course.This course teaches students how to think algorithmically and solve problems efficiently.This paper introduces the outline and syllabus of the course,and how it is promoted to all over the word.Comparing with the courses on fundamental computer science in China,we should improve teaching and learning,such as concentrating on teaching the basic knowledge,emphasizing computational thinking,making learning interesting,providing bunch of learning tools,and binding brand as well.

Key words:CS50;fundamental computer science course;computational thinking

猜你喜欢

计算机基础课程计算思维
高校计算机基础课程新心思路探析
网络时代计算机基础课程教学研究
高职院校计算机基础课程教学改革探究
基于计算思维的软件类研究生高级算法课程教学研究
基于计算思维程序设计的军事案例研究
程序设计课程中计算思维和应用能力培养问题研究