关于开源 NoSQL 数据库教学的最后一课

还没有读者喜欢这篇文章。
A key and a building

Opensource.com

在两篇近期文章中,我们介绍了在 纽约州立大学奥尔巴尼分校教授开源 NoSQL 数据库的一系列教程课程。这些实践课程涵盖了

  1. MongoDB:文档数据库
  2. Neo4j:图数据库
  3. M:分层数据库 

教程使用 Sphinx 在线准备,并计划在约一小时内由学生进行动手练习。这些教程在 Dima Kassab 和 Alex Jurkat 两位讲师的两个本科数据库课程以及 Shobha Chengalur-Smith 讲师的 MBA 课程组中讲授。

从学期末学生所做的课程评价中,我们了解到他们对这些练习的三个主要方面表示赞赏:

  • 进行实践课程以互动学习数据库概念。
  • 使用预配置数据库的服务器以及基于网络的教程材料。
  • 有外部访客分享和协助课堂教学。

关于练习的实践性质,有两方面值得强调。一方面,它们说明了学生在课堂上学到的几个数据库概念如何应用于现实场景。特别是 MongoDB 用于文档管理,以及 M 作为标准 NoSQL 数据库用于医疗保健和金融应用的案例。另一方面,教程课程结构为“课程”,学生按照一系列逐步说明进行操作,并以自己的节奏执行。当然,这意味着一些学生很早就完成了练习,而另一些学生则不得不在课后的几天内继续完成练习。学生们课后回来完成练习的举动,对我们来说是成功吸引他们对该主题的注意力的标志。

学生们在一个简化的社交网络版本上工作——结合关于他们自己的基本信息和关于他们最喜欢的电影的信息。使用学生可以快速关联的主题是让他们对练习产生兴趣的关键要素之一。此外,所有学生都在同一个数据库中工作,这意味着当他们向数据库添加记录时,他们可以看到同伴的工作。这种共享资源增加了小组互动工作的趣味性,并为他们接触数据库的一些典型挑战创造了条件,特别是:

  • 不一致性
  • 重复
  • 竞争条件

由于该数据库被后续教程重复使用,后续的学生也受益于从一个已填充的数据库开始,该数据库增长到数百条记录。感谢我们总共运行了六次课程,作为讲师,我们也得以尝试几种方法,有些方法效果更好,并总结出以下观察结果。

避免

  • 使用命令行。
  • SSH 登录到远程服务器。
  • 跨服务器复制文件。
  • 同步教学(讲师同时对所有学生讲话)
  • 在课堂上阅读教程背景材料

拥抱

  • 将阅读背景材料作为家庭作业,为课堂实践课程做准备。
  • 在练习期间使用基于 Web 的界面。特别是用于显示图表Neo4j Web 界面,及其 Gremlyn 在线控制台
  • 结合 pyMongo 使用 iPython notebook 进行使用 Python 的交互式练习,以及结合 M 的 Python 绑定
  • 拥有多位助手。在某些情况下,我们很幸运能有最多四个人协助学生。例如,在 Dima Kassab 的课堂上,我们有她的助教 Ocieka Bakou,并且还得到了来自 RPI 的 Amir Sadoughi 的帮助,他非常友善地在其他四个课程中帮助我们。当指导学生以自己的节奏学习课程时,多位助手的存在至关重要。助手们发现自己从一张椅子走到另一张椅子,提供澄清和有用的提示。
  • 预先用数百条记录填充数据库。这使得从查询练习作为第一个活动开始更容易,然后将更新和插入作为第二个活动。

命令行

我必须说,无法使用命令行是令人遗憾的,这无疑是在技术本科生教育中必须填补的空白。数据库课程的可用时间不允许我们花适当的时间培训学生正确使用命令行。诚然,课程的核心应该是关注数据库概念,而不一定是部署的实际细节。例如,安全问题不是课程打算解决的主题的一部分。这是经过设计的。

在使用基于 Web 的界面方面,我对 iPython Notebook 赞不绝口。它简直是出色的教学工具,我真希望我能早点开始使用它。关于其使用的几点实用建议:

  1. 提前为每个学生创建笔记本(例如,使用他们的名字)。否则,当 25 名学生同时编辑笔记本时,您会遇到竞争条件。
  2. 在深入练习之前,花时间给学生快速介绍一下它的使用方法。
  3. 为无线网络有时无法正常工作做好准备!(有时我认为网络和打印机存在只是为了考验我们的性格。)

最后的观察

讲师们互相讨论了拥有一个专门用于课程的服务器的重要性,讲师和学生都可以在其中玩转工具。这样的服务器肯定不是以安全为主要功能设置的,找到教育目的的快速可用性和轻度接触生产环境中的应用程序部署现实之间的平衡至关重要。在我们的课程中,我们利用了 Amazon EC2 云中的服务器,我们在其中设置了数据库及其 Web 界面。然而,持续保持服务器运行成本很高,因此我们将探索 亚马逊为教育提供的选项

这总结了我们在 2012 年关于 NoSQL 数据库的教学课程。我们计划在 2013 年春季学期再次进行这些课程,并且我们正在为 Web 开发课程(也在春季学期)考虑类似的方法。

标签
User profile image.
Luis Ibáñez 在芝加哥 Google Inc 担任高级软件工程师。

2 条评论

谢谢。

开源使企业免受病毒、恶意软件、木马等数十亿美元的损失。开源为“仅针对特定部门的特殊应用程序设计和特殊应用程序功能”创造了机会。开源为当地经济(即城市、城镇、县和省份)创造了资金。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 3.0 Unported License 获得许可。
© . All rights reserved.