为什么计算机专业学生不热衷开源?

https://opensource.com/article/17/12/students-and-open-source-3-common-preconceptions

作者参加了国内最大的院校黑客马拉松 http://pennapps.com/,观察了其中的开源情况。之后,他对一些学院学生进行了调查问卷,提出以下问题:

你喜欢编写个人项目吗? 你有没有为开源项目做过贡献?
你是否觉得开始自己的编程项目或为现有的开源工作做出贡献对你更有益?
你如何比较与生成开源软件和专有软件的组织的编码相关的声望?

作者对三个先入为主的观点提出了看法:

Preconception#1:从头开始创建个人项目比为现有的开源项目做贡献更好。
在我调查的大学时代程序员中,26人中有24人断言,开始他们自己的个人项目可能比建立在开源项目上更有益。

我经常从年长的同龄人那里听到个人项目会让我对实习生招聘更有吸引力。没有人提到过为开源项目做贡献的可能性 – 所以在我看来,它并不相关。

我现在意识到开源项目为现实世界提供了强有力的准备。对开源项目的贡献使人们意识到工具和语言如何以甚至个别项目无法组合的方式组合在一起。此外,开源是协调和协作的练习,培养学生的沟通,团队合作和解决问题的专业技能。

Preconception#2:我的编码技巧不会削减它。
一些受访者表示,他们受到开源项目的威胁,不知道在哪里做出贡献,或者害怕阻碍项目进展。不幸的是,自卑感往往特别影响女性程序员,并不止于开源社区。

我记得第一次在GitHub上查看开源项目的贡献指南时我感到多么恐惧。但是,准则不是为了鼓励排他性,而是为了提供指导。为此,我认为指导方针是在不依赖等级结构的情况下建立期望的一种方式。

Preconception#3:专有软件公司比开源软件组织做得更好。
在我调查的26位受访者中,只有5位认为开放和专有软件组织在声望上被认为是平等的。这可能是由于人们误以为“开放”意味着“无利可图”,因此质量低。

但是,开源软件和盈利软件并不相互排斥。事实上,小型和大型企业通常都会为免费的开源软件付费以获得技术支持服务。正如红帽首席执行官Jim Whitehurst解释的那样,“我们的工程团队可以跟踪每一个变化 – 一个错误修复,安全增强或任何与Linux相关的工作,并确保我们客户的关键任务系统保持最新和稳定“。此外,开放的本质通过让更多人检查源代码来促进而不是阻碍质量。

另一个问题可能是年轻程序员不了解他们每天与之交互的开源软件。我使用了许多工具 – 包括MySQL,Eclipse,Atom,Audacity和WordPress – 几个月甚至几年没有意识到它们是开源的。经常急于下载教学大纲指定软件以完成课堂作业的大学生可能不知道哪些软件是开源的。这使得开源看起来比它更加陌生。

查看这个适合初学者的项目列表list of beginner-friendly projects以及开始您的开源之旅的这六个起点  these six starting points 。

自适应学习资源Adaptive Learning Resources

来源  https://openedx.atlassian.net/wiki/spaces/AC/pages/548601946/Adaptive+Learning+Resources

Sample courses

Background Reading

General Background

MS/Harvard VPAL

Adaptive Learning Working Group

Other edX Docs

Research Papers

Standards

Tools

在软件开发课程中使用开源软件(一)

传统软件开发课程中一般使用小型、简单的项目来进行训练,学习者接触不到真实的软件项目。在课程中引入开源软件可以改善这个问题。有大量的开源软件,不同领域、规模、复杂度;展示真实世界问题的成熟度和广度;著名的开源软件是由积极的全球社区和开发者来维护的。

在教学中,给予学生选择开源软件项目的自由是很重要的。也要考虑项目和课程的适配。参与开源软件不止提高了技术能力,还提高了社交能力。课程的时间限制会对学生参与项目造成影响。

目前这个领域关注的问题有:如何选择适当的项目(不宜过于大和复杂,也不宜过小和简单),项目的规模是学生参与的明显障碍;使用的项目应当有活跃的问题跟踪,使用版本控制系统,有代码审查;每个项目至少要有一位导师;学生评分机制,评分可以基于个人努力,包括实施、排错、测试,还有架构,评分也可以基于团队(演讲,代码分析)和个人(代码审查,项目参与)。

如何选择一个好的开源软件项目?给学生选择的自由度,但要注意项目的活跃程度、流行程度、相关性;项目维护人员的响应速度对学生完成任务很重要;寻找一个导师,例如项目里的人员。

学生接触开源软件的好处。接触真实的项目,提高技术能力;接触到当前流行的技术和工具;获得对不同框架和API的经验;在和社区沟通中学习和发展社交技巧;在开源项目中掌握的工作能力可以为真实工作做准备;开源软件项目可以激励学生,做贡献使人感觉良好;增加个人简历的专业背景,更容易获得工作机会;新一代的学生对于真实项目更感兴趣,有助于老师提高课程效果。

使用开源软件的挑战。如何选择项目是一个问题,需要识别学生可以完成的任务,列出一个清单;寻找项目、理解代码、寻找做什么是正确的、提交和接受审查、放到项目中,这都是学生面临的阻碍;时间是一个问题,如何让学生更快的参与项目。

开源编程游戏codecombat

项目网站 https://codecombat.com/

项目代码 https://github.com/codecombat/codecombat

CodeCombat是一个让学生通过玩游戏学习计算机科学的平台。

CodeCombat 是一个开源的社区项目,上百名玩家创建了各种关卡,给我们的源代码添砖加瓦,添加新功能、修复Bug、测试、甚至是将其翻译为50种语言。职员、贡献者以及网站本身都在分享创意并奋斗中成长,这就是开源社区的力量。此网站在众多开源项目之上建立,我们为表感恩,也将网站开源奉献给社区,给好奇源码的玩家提供探索和实验的项目。每个人都能加入CodeCombat社区!看一下我们的贡献者页面了解更多信息。

我们的游戏编程课程尤其适用于教室教学的需求。无编程经验的教师也可轻松授课。

编程是一种魔法。这是一种从想象中创造万物的能力。我们开始了 CodeCombat 这个项目,是为了让学习者通过编写代码感受到他们指尖上的魔力。

同时,他们也能迅速学习,因为学习的方式变快了。学习就像是对话而不是阅读枯燥的手册。我们想将这种对话带给每所学校和每个学生,因为每个人都应有机会学习编程的魔法。

为什么通过游戏来学习编程很重要?

游戏是鼓励交流、发现、试错的媒介。好的游戏能够让玩家学习到技能,正如学生在学习过程中所做的那样。

游戏能提供奖励高效的奋斗” –这种奋斗能为学习提供动力并富有激励性,而不单调乏味。

当将基于游戏的学习方式与传统教学方式比较时,区别毋庸置疑:游戏能帮助学生记住知识,集中精力,以及取得更高成就.

游戏同时提供实时反馈,使得学生调整他们的解决方法,并且从整体理解概念,而不局限于“正确”或者“错误”的答案。

一个伟大的游戏不仅仅是勋章和成就。它包括了玩家的旅程,设计良好的关卡,以及用帮助和信心迎接挑战的能力。

CodeCombat是一款这样的游戏:它通过我们的完善的代码引擎,给玩家提供帮助和信心,使得初学者和高级学生都可以编写合适、有效的代码。

课程可用如下语言:JavaScript,Python,还有Java(即将推出!)

开源分布式社交网络Mastodon

项目网站 https://joinmastodon.org/

源代码 https://github.com/tootsuite/mastodon

https://kevq.uk/how-does-mastodon-work/

今年早些时候曾经设想过一个新型的社交网络。当前社交网络的形式高度一致化,发布文字和图片和视频、赞、评论、关注、加好友、聊天。各种不同垂直方向的社交网络本应从用户需求出发设计不同的产品形态,但因为创造力的匮乏以及抄袭成风,最后都采用了同一形式。最重要的一点,社交网络的用户对自己的数据没有所有权,数据发布后无法导出到本地,无法导出到其他网络。在一个社交网络上发布了数百数千内容后,如果社交网络环境变得糟糕或者不可用,用户就陷入一个进退两难的境地,个人数据面临丢失的巨大损失。更不用论隐私数据的滥用以及网络广告。

区块链技术代表业界和用户对去中心化的重视。个人对数据的所有权会成为社交网络的一个必要特征。因此当@种瓜 推荐Mastodon时,我看到了开源社区对去中心化和用户数据所有权的一个回答。

From WikiPedia

Mastodon(官方中文译万象,网民又称长毛象)是一个免费开源去中心化分布式微博客社交网络。它的用户界面和操作方式跟推特类似,但是整个网络并非由单一机构运作,却是由多个由不同营运者独立运作的服务器联邦方式交换数据而组成的去中心化社交网络。每个Mastodon的营运站点被称为“实体(Instance)”,用户可到任何开放登记的实体登记,任何一个实体上的用户可以与其他实体上的用户沟通。用户在推特中发布的内容称为“推文”,而在 Mastodon 中发布的内容则称为“嘟文(Toot)”,用户可以调整隐私设置限制嘟文被其他人或实体读取或查看。Mastodon吉祥物是一个棕色或灰色的长鼻目,描绘成正在使用平板电脑智能手机

此服务试图透过定位成独立运作的小型社群,而不是由上而下的审查。如同Twitter,Mastodon支持用户间直接、私密的消息,但与Twitter张贴的“推文”不同,Mastodon的“嘟文”可以是:对用户、用户的追踪者私密,对特定实体、或透过实体网络公开。联邦式的Mastodon实体组成联邦世界

Open edX社区捐赠计划

社区计划开发高级Open edX课程,提供给捐赠社区的企业学习。目前规划的内容包括:

  • 分布式部署
  • 常见的部署后配置(个性化、安全、购物车等)
  • Xblocks开发
  • 其他实践技巧

捐赠企业将获得一个访问高级课程的账号。更多具体信息请联系我们 info@edustack.org。

捐赠企业

广州英荔教育科技有限公司

 

Open edX开源合作模式的构想

基于http://edustack.org/2017/11/11/open-edx-community-china/的思考,我们设想了几种个人和企业集中力量办事情的方式:

  • 个人社区经费捐助机制
  • 企业社区经费捐助机制
  • 调研设计国内的公共需求
  • 根据需求设计阶段目标,组织项目组开发
  • 资源汇集,包括企业贡献开源代码,个人贡献的技术文章
  • 国内版镜像的协同开发