我们重建了Corewars并将其用于在印度教计算机科学专业的学生

2020-12-29 01:51:20

大家好吗?对于本博客新手/我们是谁,很高兴在这里见到您! Eamon和我在出版时都是Olin工程学院的一年级学生。

在奥林(Olin)的第一学期,我们以企业家精神学习并重新开发了Corewars:这是一款具有30年历史的计算思维游戏。 Corewars令人着迷,因为它有潜力用作强大的逻辑编程框架。玩家可以使用简单的汇编命令以可视方式执行代码并处理数据的方式,对于以竞争或协作方式解决复杂的逻辑问题很有希望。

在与印度工程学和计算机科学教授大开眼界的讨论之后,似乎需要一种可扩展的方法来培养学生的创造性问题解决能力。我们将Corewars开发为基于游戏的教育软件,在某些方面类似于MIT的Scratch。在学期末,由于Adi有机会访问印度,我们完成了开发工作并将该游戏用作面向计算机科学专业学生的教学工具。我们通过向印度一流的私立研究型大学的教授和学生们亲自介绍游戏的方法和教学方法,对游戏和教学法进行了测试。

下面,我们详细记录了我们的过程,学习以及我们将来打算做的事情。

去年9月,当两名刚进入Olin的工程系大一学生时,我和Eamon意识到我们想共同致力于“某种企业家精神”。这很模糊,很幼稚,但是是真实的。

经过一个痛苦的构思过程,并得到了其他对创业精神感兴趣的大学生的回响,我们最终进入了教育领域。

阿迪一直在与一位在美国出生和成长的机器学习教授进行交流,他现在在印度一所顶级私立大学教授硕士课程。当时,Amar教授一直在抱怨他的一些硕士生。

Amar会给他们带来开放式的工程挑战-也许是为了优化设备的重量,或者是提高算法的效率。大多数Amar的学生都不会问后续问题,检查设备或阅读算法,而是会向他提出一个简单的问题。

学生们倾向于期望用勺子喂食;他们期望遇到的问题就像您在教科书中看到的那样,Amar将获得答案,而他只是在等待问题的答案是对还是错。

但是,没有像这样的工程项目,挑战或工作-它们是开放式的,需要创造力,解决问题的能力和协作能力(是的,让我们把所有的时髦术语都放入其中)。

我们听说,从年轻时起,许多印度学生就受到教育系统的教育,即教育是通过测试并记住或“抢劫”事实,公式或拼写的能力。

对于Amar来说,他可以与每个学生在1:1的时间里度过几个小时,应对开放式挑战,并帮助他的学生发展更好的创造力。但是没有教授有那么多时间。此外,我们相信阿玛(Amar)的问题在全国各地都得到了回应。我们的问题变成了,您如何以低廉的价格为学生建立创造性的直觉?

就这样。天真地,我们着手解决印度教育系统中我们所谓的“创造力问题”。让学生以完全不同的思维框架解决问题。莫名其妙地找出了足以取消约14年教学的课程或练习。

而且,最重要的是,我们神奇地做出的任何事情都需要业务可行。我们需要在解决重大社会问题的愿望与创造人们可以使用的可持续产品之间取得平衡。

最初,除了Amar告诉我们的信息之外,我们对空间一无所知。因此,我们认为我们必须从与人交谈开始。我们认为,由于印度大多数顶级工程/技术机构的官僚作风,将软件出售给机构/大学绝对是不可能的。

而且,学生不是那种购买此类软件的人-他们不知道“创造力问题”甚至是个问题。因此,教授成为我们的目标市场。与印度工程教授交谈是我们的第一步。通过一个或另一个联系,我们追踪并采访了IIT,NITT,BITS Pilani和其他几所印度一流工程学院的许多工程和计算机科学教授。

在验证“创造力问题”是我们采访的重点时,我们专注于提出开放性问题,以更好地了解我们所处的空间。

深入描述本科工程教育系统中的一些问题?您看到的解决方案呢?如果您可以更改系统的一件事,那将是什么?

关于学生的问题-您对学生有什么喜欢?他们在哪些方面特别擅长?您理想的课堂/教学风格是什么样的,通常是什么样的?是什么阻碍了您实现这一目标?

总结我们的采访时,印度教授向我们介绍了一个与以往不同的世界。如果我们对印度的高等教育领域感兴趣的话,似乎几乎不适合Amar。他是一个极端的早期采用者,一个极端的案例,具有非常先进的教育见解。我们与之交谈的大多数教授都不像他,而且看来与现状大致相同。

与一些学生交谈后,情况发生了变化,既填补了一些空白,也使我们更加困惑。

这是我们脑海中形成的一张粗略的照片,结合了我们从工程/计算机科学专业的学生和教授那里听到的信息。

大型演讲厅的整体环境不利于学生上课。尽管老师抱怨学生学习的一些内在动力,但老师们自己通常并没有考虑反馈或改变自己的教学风格。

虽然不是每所大学都如此,但在某些课程中,学生学习的唯一指标是期末考试-激励学生不要参加讲座并记住前一天的内容。

最后,对于许多学生来说,大学代表着巨大的新生自由。这会影响他们学习,努力工作和保持动力的能力;通常,拖延和脱离接触的学生文化可能很突出,甚至会传播到有积极性的学生。

这些问题确实很棘手。第一次听到学生的观点后,我们大吃一惊,尤其是来自Olin之类的地方。

但是阿马尔说服我们,无论困难如何,这些都是值得解决的问题。放弃不是一种选择。我们决定想进一步集思广益,并尝试将我们的想法与我们在采访中听到的一些问题融合在一起。

减少我们所说的差距-即将来临的本科工程和CS学生的背景,动机和先前存在的知识千差万别,并导致一些学生对该内容不满意。

增强学生的积极性-从教授的角度来看,除了通过考试以外,许多学生除了做其他事情外没有其他事情要做。

使教授能够更紧密地与学生的当前文化互动-教授们觉得他们与学生及其习惯不同步。

提高就业能力-大学毕业是多么容易,这是教授多次提出的一项关键指标。

有了这些,我们决定继续开发基于游戏的软件,该软件可以:

具有较低的“进入壁垒”,具有一定程度的竞争/成瘾性,并且定义了成功的指标

在以“家庭作业”作业的形式将其发送给学生后,教师可以跟踪进度,分配成绩等

游戏仍然需要开放式的问题解决方案,这使得项目变得如此困难,但同时又不需要学习技术技能。这意味着学生可以专注于学习和练习解决问题的技能,而不必学习新的技术技能。

我们决定为该任务重建,重新构想和重新利用旧的电脑游戏-Corewars。 Corewars是80年代的一款游戏,其中两个程序在有限的内存缓冲区内进行竞争。有趣的是,程序存在于它们试图接管的同一个内存缓冲区中,每个程序的代码都可以被对手修改,覆盖甚至劫持。程序本身是用一种称为Redcode的伪汇编语言编写的,它具有23个命令,其中包括诸如加法和乘法之类的简单操作,以及可以创建新进程或复制内存的更复杂的命令。

我们面临的技术挑战可以分为广泛的后端和前端实施。对于后端,我们必须创建实质上是一个简单的汇编编译器。它必须接受两个用Redcode编写的进程,然后在一个空的内存缓冲区中执行它们。对于前端,我们必须创建清晰的流程执行情况的可视化视图,还必须构建一个UI,该界面允许直观地使用Redcode创建程序。后者对我们来说尤其重要,因为该项目的目标是需要尽可能少的技术经验,并且我们也知道Corewars是一个具有挑战性的游戏。构建一个可以让人们在没有背景知识的情况下进行游戏的直观UI将会走很长一段路。

要了解一些详细信息,建议您访问我们在Github上的代码库或查看最终产品!它是完全开源的,如果您有兴趣以任何方式做出贡献,我们将非常乐意!整个项目的UI和功能都是用React编写的,它调用了许多Javascript类,每个Javascript类代表用于构建玩家战士的Redcode操作。

我们内置了许多功能来提高Corewars的可玩性,例如游戏内消息部分,一组示例勇士供您选择以及初学者和调试模式。

我们还增加了游戏逻辑和流程的可见性,用户可以在其中玩,暂停和停止游戏逻辑,也可以将鼠标悬停在各个存储单元上以查看其中存储的命令和数据。我们使用了React状态组件的组合来处理UI页面,并使用React PureComponents组合来显示单个存储单元。

我们还提供了一个指导指南,引导新玩家逐步建立第一个战士。再次,请随时在此处查看我们的代码库或试用最终产品!

Amar非常友善,可以让我们在他位于印度高知的Amrita大学访问和部署我们的软件。阿姆利塔大学是全印度排名第一的私立大学,在印度也拥有高度排名的工程和计算机科学课程。

阿迪结束了一次短暂的旅行前往印度,而埃蒙则练习了WFH,并从他在洛杉矶的家中为部署和软件开发做出了远程贡献。

除了提供资源并使我们与校园中一些最酷的人保持联系之外,Amar还担任导师和Adi的个人指南,以更好地体验高知文化。花两个星期在校园里,吃东西,上课,与教授交谈以及讨论教育理念真是太神奇了。

经过大约一个半星期的现场开发,我们正在积极构建UI,并获得外部用户的实时反馈,我们觉得我们已经准备好“部署”了。在开始向CS部门的高层展示之后,我们决定不再尝试在传统教室中进行部署,而是决定尝试与更熟悉CS基础知识的校园小组进行部署-Amrita大学的自由和开源软件俱乐部(AmFoss)俱乐部。

AmFoSS是美国顶级的CS俱乐部之一;成员每天开会,致力于构建开源软件项目并为之做出贡献。它们将成为Corewars早期采用者的完美典范。

在第一天在俱乐部前展示了Corewars,并进行了快速反馈和讨论之后,我们所有人都认为,第二天让一些学生试用该软件并学习该游戏将是一件有趣的事情。

在部署的第2天,Adi花了一个晚上与2组学生(每组2和3个学生)一起工作,教他们游戏,通过示例进行练习,并使他们自信地玩游戏。

Corewars在某些方面的工作出奇地出色,而在另一些方面则出奇地差。作为参考,请查看我们在此处演示的最终产品。

我们在平台中内置的学习工具-能够悬停在单元格上并查看其价值,或者能够在运行时播放和暂停该过程-对于教学过程非常有价值。游戏本身的潜力令人印象深刻,并证明了我们构建的框架。

最初,我们假设学生将在排行榜上与Corewars竞争。但是从部署结果来看,很明显,玩家可以使用游戏中的功能不仅可以与对手战斗,还可以解决具有挑战性的传统逻辑问题-例如LeetCode面试问题。

但是,尽管有一些旨在简化游戏的功能,但Corewars确实证明了自己的确非常困难。学习汇编命令以及它们如何编辑每个存储单元的A和B值,了解如何执行过程以及如何存储数据对于学生来说非常困难。

在部署之前,我们假设Corewars可以由学生在一次比赛中以半竞争水平学习和玩耍。即使采用了初学者模式,即具有一定范围的后退装配命令和对游戏过程的高度可见性,Adi在小组中也花了一个半小时1:1的教学时间来使他们适应游戏。我们可以从这项测试中估算出,学生需要大约3个小时才能单独学习游戏,而另一个大约3-4个小时的逻辑挑战性问题才能达到竞争水平。

Corewars的整个想法是它可以扩展-毫无疑问,由于它的复杂性,它不是。

另一方面,尽管投入了大量时间,但是学习Corewars的学生将获得有价值的实践学习,可视化和心理上内化复杂的逻辑框架,类似于学习新的线性代数概念或低级编程语言。他们还将使用刚刚学到的框架来综合复杂的算法,并获得了很好的实践经验。

和我一起工作过的一些学生一起闲逛-Kharan,Akshay和Mayukh-他们是好人,充满乐趣❤️❤️

尽管Corewars的应用范围可能不如我们希望的那样广泛,但我们还是要汲取一些核心经验教训,并与您分享。

我们学到了大量的上下文和内容。有关印度的教育体系,其人民和面临的挑战的文化信息。见到这么多教授和学生并了解他们的故事是很荣幸的。

从企业家的角度来看,我们从以下几方面直接学到了价值:

真正的MVP-具有与用户一起测试概念所需的绝对最低要求。它不一定是有效的产品。

在添加每个新功能之前和之后,能够快速测试软件的巨大好处。

作为您目标市场的一部分-如果我们曾经是印度教授,或者甚至以前从事印度教育系统,那么这个项目会容易得多。

尽管Eamon已经熟悉React,但这是Adi对Web开发,JS和React的首次真正尝试-这方面的很多学习。

当我们离开印度并在上学期重建Corewars时,Olin仍然是一家非常独特的教育机构。这是我们意识到我们永远都不会想当然的一件事,并且它将继续作为我们来自Olin College的企业家的最先天的背景优势。

坦率地说-这是一个很奇怪的故事。我们从没想到我们会在大学的第一个寒假期间做到这一点,但是我们只能说这是个好时机。

在继续之前,我们只想对Amar进行大喊大叫-如果没有他的帮助和指导,这一切都是不可能的。他致力于并继续投入大量时间和精力来帮助他的学生成长,而他在印度Adi度过的时间非常宝贵。

在阿玛(Amar)之上,阿迪(Adi)在阿姆里塔大学(Amrita University)遇到了许多令人难以置信的,鼓舞人心的教授和学生,这使阿迪(Adi)在那里度过了一个永远铭记的时刻。向Randy,Gayatri,Akshay,Bipin和Divin欢呼。

我们并没有放弃我们最初的核心目标-从事一些企业家工作-也许创办了一家初创公司,在此过程中学到了很多东西,并在教育领域做了一些事情。

我们至少暂时放弃了构建软件的尝试,以解决印度教育系统的问题。这太遥不可及,我们太疏远了,虽然我们确实取得了广泛的学习进步,但我们感到,为了将来,我们想在离家更近的地方工作。美国高等教育体系中有很多未解决的问题和痛点需要解决-因此我们一直很忙。

目前,在与Olin教授进行了一轮访谈之后,我们正在考虑有关Git版本控制或github式的软件,用于存储,记录,共享和迭代课程。

但是在后面的博客文章中有更多关于此的内容。 感谢您通读全文-如果您有任何意见,想法或意见,请随时将它们发送给我的电子邮件! 由Olin工程学院的Adi Ramachandran撰写。 看看我的github或instagram!