和其他编程语言不一样, 可选的IDE也就是编程集成环境的数量确实很多。不过, 这里面有不少并不是专门为中小学的信息科技教学设计出来的。正因为存在这样的情况, 作者所在的研究团队也就根据一线教学的实际需求进行行动。他们开发了叫做XEdu信息科技教学版的工具。这个版本集成了在教学工作里会碰到的绝大多数库和模块。这么做的结果是降低了中小学教师在进行教学时的技术门槛。在过去这一段相当短的时间里, 也就是所谓的近两年, 笔者一直在不间断地、竭尽全力地去开发一款名为XEdu的人工智能相关开发的工具, 这款工具的一个非常显著的特点就是开箱即用。大家可能会考虑到软件运行所需的各种复杂环境搭建会成为一个问题, 为了解决这个特定的环境搭建难题以及避免用户在这方面感到困扰, 笔者的做法是借助了Conda这款软件去帮助构建一个绿色的版本, 而Conda本身其实是一个开源的软件包管理系统的简称, 所以用户只要拿到这个封装好的软件之后, 只需要执行简单的解压这一步操作, 那么在这个用户的电脑里, 一个可以拿来进行深度学习编程的相关完整的环境, 就已经被成功安装并拥有了。很多信息科技教师, 也就是常说的技术老师这一群人, 在看到这个名为“XEdu一键安装包”的东西之后, 心里面就会浮现出一个念头, 觉得可以用这么一种办法, 把中小学里面通常会用到的那些数据库和库文件给打包封存好, 紧接着就组合出了一个专门用来教学的特殊环境, 这样一来呢, 以往需要花费大量精力去维护的那些成本, 也就能够被大大地节省掉了。至于为什么要进行定制编程环境这个事儿, 其背后的根本性原因究竟在什么地方。如今中小学校的崭新信息科学技术课本, 几乎全都挑选了某一个开源性质的电脑程序设计语言。这种语言配套有很多款叫作集成开发环境的好帮手, 例如说是IDLE、还有空白后面提到的那些、再或者是Subl i me、Atom、以及空白最后的那个等等。既然如此的话, 那么为什么在学校真正授课的老师们那里, 依然会有人提出想要专门定制一套教学使用环境的要求呢。1. 选择的集成开发环境数量过多, 结果导致出现选择障碍。现在的集成开发环境, 也就是IDE, 种类繁多, 它们各有各的特点, 并且在功能使用方面的差别是很大的, 所以老师们在挑选的时候会难免患上传说中的选择困难症, 这种集成开发环境本身是没有绝对的优劣之分的, 关键的地方主要是去看具体用户的需求有哪些不同, 高校那边在进行数据科学或者是人工智能这类课程的教学的时候是一般会推荐某一种特定的工具的, 而对于那些工程师和程序员来说, 他们往往是会选择另一种风格的工具作为日常使用的利器, 如果是为了教学这个方面来说的话, 采用那种文本和代码相结合的方式来显示内容的工具是特别适合用来制作学案这样的材料的, 对于那些刚刚开始学习的新入门的学生们来讲, 界面看起来简洁又干净的集成开发环境则是最适合作为他们的首选的最佳选择。2.像给中小学的学生去使用的那种集成开发环境, 其实是很少的。虽然现在的集成开发环境种类非常多, 但是, 专门为中小学信息科技课程来设计的那种集成开发环境, 却是非常稀少的。在中小学的学习过程中, 应当把注意力的重点放在编程与算法的学习上, 对于软件本身所附带的一些其他功能, 则要进行一定程度的弱化或者减少依赖。程序员之所以会去选择这类工具, 是因为在实际进行软件开发工程的时候, 他们需要用到项目管理以及代码版本管理方面的功能。而在信息科技的教学场景里, 一般的情况是不会编写结构过于复杂的代码的, 同时也不会去从事信息系统的整体开发工作, 所以对于需要高度复杂化的辅助性工具备件的需求, 也并不强烈。3.库环境管理困难它的最明显的特点, 是拥有非常非常多的第三方库, 或者被称为模块的情况。在教学的过程中, 经常需要使用PIP这个东西, 来安装各种各样的库。不过因为系统本身是不带完整的编译工具的, 所以对于那些没有提前准备好编译版本的库, 或者说是依赖关系比较复杂的库来说, 经常会出现安装失败的情况。而且信息科技这门课的教学环境, 通常是在机房里面。如果在一开始的时候, 没有把所有的可能用到的库都安装好, 那么就会导致每次开机以后, 都要重新进行安装这个操作。这在很大程度上是需要去具备比较充足的一个网络带宽的情况, 并且也是非常地存在一种浪费时间的事情的一种表现。所以, 站在第一线的那位搞信息科技教学的教师心里头就挺想能够有那么一个工具出现的, 这个工具得把那些在信息科技教学过程里常常会用到的一些库文件全部都给它内置住, 同时, 还得顺便把这些常见的、由第三方的所开发出来的这些库文件也都一并给内置了, 只要大家把这个东西解压一下, 就能直接开始使用了, 这样一来, 不但方便了在那些教室里进行机房环境部署的那些老师们, 也方便了一大帮想要在家里自己去自学的那些学生们。针对这个方案, 我们要对实现定制编程环境所涉及的那些技术细节进行一个详细的阐述。XEdu之所以能做到将编程环境打包为一个文件是因为借助了“”一个著名的 IDE中的“conda-pack”。顾名思义“conda-pack”就是一个环境打包的工具其使用的大致步骤如下第一步: 把conda环境给安装上。把那个安装包下载下来, 然后接着就去把它装上。。进行第二步的操作, 构建一个全新的环境, 就比如说, 按照笔者的个人习惯, 将这个新建的环境取名为“env”这样的名字。在 conda 的 prompt 下面简称为“”这个环境里面, 把那个内容输入到命令行, 也就是操作 conda -n env 3.8.3-y。继续在中输入命令condo env, 来激活环境env。接下来就是, 把那些需要的各种各样的库文件, 全部都安装上去。在中, 接着继续输入pipMMEdu。在继续执行操作的同时, 使用pip这个工具来进行安装和更新, 确保其版本号为400。接着, 就按照这样的方法一个一个地去做, 一直到把所有的那些来自第三方的库文件全部都安装完毕为止。第四步, 是把咱们那个用来编程的整个环境好好地打包一下。在中继续输入conda pack-n env-o env.tar.gz。因为环境打包这个操作只能够生成那种tar.gz格式的压缩包, 这种做法对某些情况的支持不是特别友好, 所以要等到打包过程完全结束以后, 接下来再去使用解压软件来进行解压处理, 并且还要对一些细节问题进行相关的调整, 完成上述步骤之后, 最后再将其压缩成那种支持自我解压的文件类型。在第五步的时候, 你要去为编程环境添加一个启动脚本文件。为了激活这个环境, 那么就得在命令行这个地方去执行那个env\\.bat文件, 从那个角度来说, 为了让学生们能够得到一个更好的使用体验, 所以就可以把这个命令行指令给封装起来, 弄成一个启动脚本文件。把封装好了的IDLE启动脚本文件做成图1那样。接着, 可以把启动CMD脚本也封装出来, 做成图2那样。图1图2针对和这两个项目的启动操作, 我们务必要稍微采取一些相应的处理手段, 其根本目的在于有效规避它们与当前计算机中已经提前安装完毕的老旧运行环境之间可能产生的种种冲突问题。当然, 由于相关的具体脚本代码内容实在显得太过冗长繁杂, 在此处我们便暂时选择将其略去不讲。这其实是第六个步骤, 也就是把这个东西压缩成为一个能够自己解压的文件。利用7zip, 以及一些其他的工具, 将整个目录打包为自解压文件。实践这个动作, 是拿XEdu当作模板, 然后去设计那个信息科技的教学版本。当那个定制编程环境的解决方案给弄明确以后, 眼下最最关键的活儿呢, 就变成去确定一下究竟需要先把哪些个库给预先装上了。结合到, Xedu这个地方本身定下来的位势就是关于人工智能教育领域里的一个工具包, 所以Xedu后面那一些像MMEdu以及中间那些被省略号的家伙、还有后面的那个什么之类的, 全都是必须得要有才能用的基础核心库。因为这些个东西之间有着甩不掉的依赖关系, 所以在你安装上面提到那一堆库的时候, 系统会自动帮你去装别的库, 比如说后面说的那几个空的、还有numpy这玩意儿、中间的省略号代表的那堆东西里头有、再有tqdm等等这些。在上面罗列的那些库里面, 已经包括了绝大多数信息科技教材里面所涉及的库。考虑到把全国范围内的所有教材全都整理一遍这件事是不可能完成的, 所以笔者主要选择了浙江教育出版社出版的高中教材以及清华大学出版社出版的初中教材作为参考依据。在此基础上, 又添加了以下这些库: flask、jieba、remi。此外, 笔者觉得有必要去规范一下学生那种存放代码还有相关文件的方式, 所以, 就把这个文件目录给梳理出来了。如图3所示, 该目录是存放AI训练所需的权重文件的地方, 另一个目录则是存放数据集的地方, 这里指的是一套简易的深度学习软件系列, env这个部分包含了该软件系列的运行环境以及相关的库文件, utils里面包含了一些可能在开发过程中需要用到的一些内置功能模块, XEdu示例代码这一部分是专门为XeDu系列人工智能教学准备的代码文件, 最后教学资源部分则允许教师在此处存放各种配套的辅助资源。图3
阅读完成 · 觉得有帮助?