APP下载

若干世界一流大学数据库课程实施情况调研

2019-05-24周竞文李莎莎周海芳

计算机教育 2019年5期
关键词:编程数据库作业

周竞文,李莎莎,周海芳

(1.国防科技大学 计算机学院,湖南 长沙 410073;2.复杂系统软件工程湖南省重点实验室,湖南 长沙 410073)

0 引 言

数据库技术是当前数据管理的最有效方法,是现代信息基础设施的核心技术之一,在诸多重要领域起着不可替代的作用,因此,成为计算机领域的一个重要分支,也成为计算机专业及其他相关专业人才培养过程中的一个重要环节,受到各大高校的重视。然而,数据库技术的特点导致数据库课程,特别是入门课程,在实施过程中面临一些问题,如数据库技术既重理论又重实践,如何平衡理论和实践课程的问题;数据库技术涵盖面广、部分内容难度较大,如何折中课程广度和深度的问题;在传统关系型数据库仍被广泛使用的同时,数据库新技术的发展也日新月异,如何取舍传统技术和新技术的问题等。不同高校对于这些问题的解决有着一些共同的认识,但也存在一些差别。

1 调研对象

调研对象的选取方法如下。

(1)学校:将各高校计算机科学专业在QS 2018、ARWU 2017、USNEWS 2016的排名相加计算得分,如MIT的计算机专业在3个排名中均为第1,则得分为3,然后选取得分最小的前8所高校。

(2)课程:选取面向本科生开设的数据库入门课程,即课程不要求学生预先掌握任何数据库的相关知识。调研的8门课程见表1。

(3)学期:在网络资料较全面的前提下,选取离当前时间最近的学期。

表1 调研的课程

2 实施情况

2.1 基本信息

调研课程的基本信息见表2。

从课时安排上看,课时数最少为15次课(Harvard),最多为29次课(UCB),平均为22.3次课。除课表课时之外,学生还需要在课外花费大量的时间完成课程作业、阅读相关资料、进行讨论等。UCB在施教过程中要求学生完成13个普通作业和5个难度较大的编程作业;Stanford除布置作业之外,还会布置额外的阅读材料;MIT每周会安排2~3次教师或教辅答疑讨论时间。

表2 课程基本信息

从统计数据看,各高校对先导课程的要求不一样,但一般来说,需要学生熟悉计算机系统、数据结构、算法等方面的计算机基础知识,以满足课程内容的需求,如UCLA要求学生熟悉哈希表、树/图结构、排序算法、集合论等内容。另外,这些课程普遍要求学生具备较好的编程能力,以顺利完成课程的相关作业,如Harvard的作业之一是编程实现某DBMS的特定功能,故明确要求学生具有“很强的Java编程技巧”。

2.2 教材与平台

各课程选用的教材和参考书(标“*”表示推荐的参考书,否则为所用教材)见表3,主要集中为3本:①Database Management Systems(R.Ramakrishnan,J.Gehrke); ②Database Systems:The Complete Book(H.Garcia-Molina,J.D.Ullman,J.Widom);③Database System Concepts(A.Silberschatz,H.F.Korth,S.Sudarshan)。

表3 教材和参考书

除此之外,各课程还会根据需要选用其他一些相关书籍,如Harvard使用自编材料、ETHZ使用某德文教材等。另外需指出的是,许多课程在具体施教时方式灵活,不依赖于教材,如UCLA课程网站上指出“虽然本课程教材是学校要求的,但往年很多学生表示不买教材也可以跟上课程”。

各课程在资源发布、在线交流、提交作业等方面使用的相关平台见表4。

表4 教学平台

整体上看,国外课程的课程网站做得较好,课程信息、资源、通知等均会在课程网站上发布,而在在线交流、提交作业等方面更多的是选用功能成熟的商用平台,如Piazza、GitHub等。另外,还有些课程会通过平台发布课程录像,如UCB和CMU。通过这些平台的合理使用,学生能够及时获取课程资源,得到相关反馈,从而保证课程的顺利进行。

2.3 成绩构成

各课程的成绩组成及分值比例见表5。

这些课程的成绩一般由普通作业、编程作业、期中考试、期末考试等部分组成。编程作业是指需要学生编程实现的课程项目,如MIT、UCB、Harvard、CMU、Princeton、UCLA 要 求完 成 一 个 DBMS,Stanford、Princeton、UCLA要求实现一个数据库应用系统。普通作业是除编程作业外的相关任务,如选择题、简答题等。除作业和考试外,一些课程还包含其他成绩,如MIT、Princeton会对学生的课程参与和表现情况进行评分。

从数据看,这些课程普遍注重对学生过程性成绩的评价,学习过程中的成绩(作业和期中考试)所占分值较大,在67%~80%之间(除ETHZ),而期末考试所占分值较小,仅占20%~33%(除ETHZ),这也反映出这些课程强调的是对课程内容的深入理解和灵活应用以及学生能力的培养,而不仅仅是知识的传授。在过程性成绩中,各课程对作业尤为重视,主要反映在6方面。

(1)分值比例大。除ETHZ之外,作业所占分值均在45%~60%之间。虽然ETHZ的课程成绩不包含作业,但是授课教师也会布置大量作业,并在课程网站和课件中多次强调作业的重要性,还会对作业进行答疑和检查。

表5 成绩组成 %

(2)工作量大、难度高。MIT的编程作业是在给定框架的基础上实现一个DBMS的数据管理、操作符、查询优化、事务管理、B+树索引、回滚与恢复等功能,学生需具备良好的编程基础,深入理解课程相关内容,花费大量课余时间才能顺利完成。通过这些作业,学生的能力可以得到较大提升,且学生能更好地理解课程内容。

(3)覆盖全面。UCB共有13次普通作业和5个编程作业,基本每次课的知识点都有课后作业与之对应;Princeton的编程作业包括开发一个数据库应用系统,实现一个DBMS的若干功能,研究某些新型数据库技术等,分别侧重数据库应用、底层、新技术等方面。这些作业可以促进学生对课上内容的理解。

(4)面向实际。许多课程使用的数据是来源于实际的真实数据,且数据量较大,从而使学生能更好地将所学内容应用到实际场景,以便更好地适应未来工作,如Stanford要求学生实现一个数据库应用系统,管理eBay网站上2万余次拍卖的数据;UCLA使用的是包含近8万条记录的真实电影数据;CMU使用的一个数据集来源于某法庭网站约10年的数据,涉及200余万个案件。

(5)评分方式灵活。CMU在规定作业之外,还布置了一些拓展作业,供有余力的学生练习,并额外占课程成绩的10%;UCB的普通作业共包括13个小测试,统计得分时会去掉两个最低分。通过这些措施,可以提高学生对待作业的积极性和认真程度。

(6)鼓励讨论、禁止抄袭。几乎所有课程在课程网站上进行声明,如Harvard的课程网站上专门有一个网页用于说明该问题,里面列出了所禁止的抄袭行为和相应的处罚措施;MIT指出会使用软件对作业进行查重。通过这些措施可以培养学生的学术诚信意识,并使课程成绩能真实反映学生水平。

2.4 教学内容

参照文献[9],将数据库相关内容划分成基础知识、关系操作、数据库设计、内部实现、事务管理、新技术6个部分,各部分具体内容见表6,各课程教学内容的课时分配见表7。

表7中数据的格式为“课次数(约占比)”,如“MIT: 6.814”行、“基础知识”列的“1(5%)”表示MIT花1次课讲授基础知识,大约占讲授课时的5%。

从教学内容上看,各课程主要介绍的是传统关系型数据库的相关内容,占讲授学时60%以上。另外,一些课程也比较关注数据库新技术,以开阔学生视野,如MIT介绍Spark、Big Table、Kafka等处理平台;ETHZ介绍授课教师参与的最新研究;UCB邀请Amazon公司的人员介绍企业界的前沿技术。

表6 教学内容说明

表7 教学内容课时分配

在关系型数据库部分,所占课时最多的部分一般是内部实现,包括数据存储、索引、查询处理与优化等内容,且讲授较为深入,反映了这些课程对数据库系统底层实现的重视。UCB花了过半学时(13次课)介绍DBMS的内部实现,内容涉及磁盘、文件、缓冲区、页等计算机底层结构(3次课)、B+树等索引的理论和实现(3次课)、连接等操作的实现方法(3次课)、数据查询的优化策略(4次课)等。对于关系操作、数据库设计等偏应用的内容,所占课时一般较少,这部分内容更多的是安排课后自学或以作业形式完成。在事务管理部分,各课程主要还是集中在经典理论和方法上,如ACID特性、封锁、死锁、可串行化调度和冲突可串行化调度、2PL、封锁粒度、基于日志的恢复等。

在教学内容的取舍和讲授顺序上,各课程存在一些相同点,如绝大部分课程对关系演算、高阶范式(4NF、5NF)等使用较少的理论不作要求;一般先介绍传统关系型数据库技术,最后再介绍新技术;介绍内部实现时一般会从最底层的磁盘、文件、索引开始,进而介绍查询处理和查询优化。另外,各课程也存在许多区别,如对于数据库新技术,Stanford讲授的是NoSQL和分布式数据处理,UCB是邀请企业人士介绍若干商用平台,而ETHZ会介绍授课教师参与的最新研究。

3 调研结果

调研是依据数据库课程实施过程中存在的一些问题提出的,通过对若干世界一流大学相关课程的调研发现,高校在解决数据库课程实施中的问题时应从如下3方面着手。

(1)理论和实践的平衡。既重理论又重实践,理论知识放在课上讲授,通过课后作业进行实践,课后作业工作量大、难度高、面向实际,能较好地培养实践能力且能加深学生对理论知识的理解。总体来看,理论知识仍以传统技术为主(表6),课后实践主要分为系统型和应用型两类。前者针对某一具体DBMS进行功能完善,如实现查询的处理与优化、B+树索引等;后者则是结合具体场景使用某数据库产品,如进行数据查询、开发数据库应用系统等。大部分课程会同时安排两类实践。

(2)广度和深度的折中。对课程重点关注的内容或难度较大的内容,在课上讲深讲透并配以作业加深理解;而对于其他内容,只简要介绍并通过课后自学、作业等形式进行补充。对于深入讲解的内容,各课程有所不同,总体来看,普遍对内部实现较为重视,在事务管理与新技术上也会花费较多学时,而对于关系操作、数据库设计等内容则更多的是以课后实践的形式实施。

(3)传统技术和新技术的取舍。以传统关系型数据库的内容为主体,适当引入数据库的新理论、新平台、前沿研究等内容。另外,新技术的比重有加大之势,内容主要涉及大数据管理相关技术及平台,如NoSQL、MapReduce、Hadoop、Spark、Bigtable等。在具体施教时,传统技术主要采用课堂讲解与课后实践相结合的方式进行,而新技术则综合采用理论讲解、平台介绍、专家讲座、论文阅读、研讨等方式。

4 结 语

数据库课程是计算机专业及其他相关专业培养过程中的一门重要课程,受到各大高校的重视。笔者通过对若干世界一流大学数据库技术入门课程的实施情况进行调研,分析得出若干结论,可为数据库相关课程的实施和改革提供参考,但是这些结论知易行难,还需要结合本校特色进行细化,根据授课对象的特点动态调整,这需要在多轮授课过程中不断总结和积累,同时也对授课教师的能力与水平提出较高要求。

猜你喜欢

编程数据库作业
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
学编程,先画画
数据库
作业
数据库
数据库
数据库
我想要自由