面向真实世界的教育:关于开源 NoSQL 数据库的开放课程

目前还没有读者喜欢这篇文章。
Teaching open source text

Opensource.com

今年三月,奥尔巴尼大学美国信息科学与技术学会 (ASIS&T) 学生分会组织了第二届开源节。该活动汇集了纽约奥尔巴尼地区来自工业界、政府部门和学术界的开源爱好者。在活动上,我分享了我在 RPI 教授开源课程的经验,以及 OSEHRA 在进一步推广医疗保健领域开源软件应用方面所做的工作。讨论的其他主题包括需要对大学生进行 NoSQL 数据库基本概念的教育。

担忧来自于 M 数据库在医疗保健应用中的广泛使用,以及学术界对 M 数据库缺乏认识——大多数课程都侧重于关系数据库。值得指出的是,M 既是一种语言,也是一个数据库,更具体地说,它是一个分层 NoSQL 数据库,并在全球数千家临床机构中使用。

Dima Kassab 是 2012 年开源节的组织者之一,她在 7 月初在纽约州立大学奥尔巴尼分校准备秋季数据库课程时,主动将“开源 NoSQL 数据库”的主题纳入教学大纲。她的动机有两方面:让学生接触新的 NoSQL 技术和开源软件的应用。我们同意合作,共同准备关于开源数据库的实践课程,将其作为秋季学期的活动。

挑战

在纽约州立大学奥尔巴尼分校的信息学系,其他讲师,如 David Adkins 和 Alexander Jurkat,非常乐于向学生介绍 NoSQL 数据库。其他人则比较犹豫,因为他们不确定学习这些数据库是否最适合他们的信息科学专业学生,或者这门课程是否足够成熟到可以纳入课程体系。

Alex、David 和 Dima 举行会议,讨论如何教授 NoSQL 数据库,他们面临的主要挑战是缺乏这方面的教育材料。对于他们所有人来说,这都是第一次接触 NoSQL 类别下的许多数据库。他们多次开会,决定应该重点关注哪些数据库,应该以什么顺序向学生介绍这些数据库,以及应该为这些数据库分配多少时间。

此外,学生在初次接触 NoSQL 数据库时会感到犹豫,因为标准的数据库课程几乎没有纳入 NoSQL 材料。这造成了学生在大学正规课程中所学内容与行业实际应用之间的脱节——在行业中,NoSQL 数据库正被越来越多地采用,以补充它们性能优于关系数据库的应用。

课程设计

本课程建立在 Dima Kassab 在团队式学习 (TBL) 方面的经验和我本人在会议中组织实践教程以及在 RPI 开源软件实践课中组织实践活动的经验之上。事实证明,TBL 与开源实践非常兼容,因为它根植于赋予学生掌控自身学习过程的能力。它能吸引学生参与,并推动小组讨论和自主导向的活动。

我们立即同意进行实践练习,通过直接体验,使学生熟悉开源 NoSQL 数据库的概念和用途。并且我们借鉴了之前使用 Sphinx (Python 的基于 RST 的文档系统) 的经验,在虚拟机或云服务器中预先配置了实践练习。

接下来,我们决定将所有材料存储在 Github 存储库中。Sphinx 使用的简单 RST 文本标记使创建美观的页面变得容易,并且可以轻松地在版本控制系统中进行维护。我们选择对文本采用 CC BY 3.0 许可,对所有代码片段采用 Apache 2.0 许可。我们希望这将有助于其他人重用,并与任何有兴趣帮助改进教程材料的人进行协作。本教程的当前版本在此处,存储库在此处

为了避免偏向任何特定的数据库,我们希望遵循 Andreas Kolleger 在他的 OSCON 演讲:“NoSQL 的过去、现在和未来”中的方法。这是一个关于 NoSQL 数据库在通用背景下频谱的精彩演示,它更清楚地说明了不同应用的优缺点;他还暗示了该领域在不久的将来的发展趋势。

这促使我们发现了 Eric Redmond 和 Jim R. Wilson 的优秀著作《七周七数据库》。我们很欣赏它友好的比较性概述,没有数据库宗教式的论调,读者可以通过进行实际操作练习来熟悉许多优秀的数据库。阅读客观的数据库比较令人耳目一新,它超越了“我的数据库比你的数据库更好”这种老生常谈。Redmond 和 Wilson 以出色的风格实现了这一点,涵盖了:PostgresSQL、Riak、HBase、MongoDB、CouchDB、Neo4J 和 Redis。

然后,我们开始制作在线教程,并附带实践练习。我们版本的《七周七数据库》是将“周”转换为“课程”,在列表中添加了一个数据库 (M),并且由于一个学期的时间不够,我们从“三节课三个数据库”开始。前三个选择是:MongoDB、Neo4J 和 M。为了方便实践环节,我们在 Amazon EC2 云中搭建了一个 Linux 服务器,并为每位学生创建了账户。

第一天和第二天的课程

我们的第一节课于 11 月 6 日星期二在 纽约州立大学奥尔巴尼分校信息学系举行,共有 23 名学生参加,内容涵盖了我们的 MongoDB 课程。第二节课于 11 月 8 日星期四举行,内容涵盖了我们的 Neo4j 课程。我们这个小组的最后一节课将于 11 月 13 日星期二举行,内容涵盖 M。

我们对课程的初步评估是,实际练习需要一个多小时才能正确执行。从我们目前的活动设计来看,我们可能需要两到三个小时才能完成填充数据库、以各种形式查询以及随后使用 TBL 实践在小组之间进行讨论的练习。

如果只分配一个小时,为了使课程安排紧凑,我们建议在课前填充数据库,而课堂本身则侧重于查询练习。考虑到 NoSQL 概念与学生在学习关系模型时已经接触到的内容相比,是一种范式转变,因此保留 TBL 小组讨论的时间至关重要。

一个诱人的选择是允许学生在课前将按照教程说明进行操作作为家庭作业,然后在课堂上侧重于进行讨论和进一步的实践练习。这受到了 Salman Kahn(可汗学院的创始人)在他的著作《世界学校》中倡导的方法的指导,该方法允许学生按照自己的节奏学习课堂材料,而课堂时间则侧重于与同学和教师互动。

这次经历非常令人兴奋,我们预计随着我们继续开发这些开放课程材料,提供关于现代数据库的实践培训,将会取得逐步改进。

请继续关注后续文章,了解关于教授 M 数据库的第三节课的讨论。

标签
User profile image.
Luis Ibáñez 在谷歌公司芝加哥分部担任高级软件工程师。

评论已关闭。

Creative Commons License本作品根据知识共享署名-相同方式共享 3.0 未本地化版本许可协议进行许可。
© . All rights reserved.