|
|
1
3
以前有人问过这个问题吗? |
|
|
2
2
在我看来,在有人准备为任何非琐碎的开源工作做出贡献之前,他们应该对数据结构以及adt和信息隐藏的概念有一个坚实的理解。理想情况下,他们会自己实现一些基本的adt。 在我的经验中,这是非常经常缺乏的,尤其是当用于指导初学者的语言是C时,因为C没有内置的ADT,也没有标准的ADT库,开发人员通常希望能够编写自己的或选择第三方库,并在必要时根据自己的需要进行定制。
一个熟悉ADTs的贡献者很快就会惊恐地逃离这样一个项目。一个不熟悉ADT的投稿人只会在那里学到坏习惯。
然后你可以检查他们为任务所做的工作,如果你发现任何错误,你可以使用bugtracker来提交一个bug,然后他们必须相应地处理这个bug。然后,您可以通过使用bugtracker等再次提交特性请求来扩展分配。 此外,像Github和Bitbucket这样的站点有一个克隆此存储库功能。这也有利于教学协作。根据学生的技能,您可以选择一个现有的存储库供他们克隆,然后在您的作业之后扩展,或者您可以要求他们搜索一个存储库(可能与某些条件匹配),然后为自己选择一个存储库,然后在您的作业之后再次扩展该存储库。 我个人认为,还有一件事应该是参与任何非琐碎的开放源码项目的先决条件:理解契约式设计,如何记录函数契约,在函数契约中思考,开发出一种规程,在没有先记录函数契约的情况下,决不编写任何代码。不幸的是,使用契约式设计的开源项目太少了。同样,熟悉这种做法的投稿人很快就会惊恐地逃离这样的项目,而不熟悉的投稿人只会染上坏习惯。
一旦你的学生掌握了我上面概述的技能,我确信“我们可以为哪些开源项目做出贡献?”这个问题将变得很难回答,因为在那个阶段,你的学生将能够找到并选择适合自己的项目。 同时,如果您觉得您的学生仍然需要一些用C编写的adt和如何编写函数契约的示例代码,而您手头没有任何这样的示例,那么您可能需要看看我在Bitbucket的存储库。它在C中有各种常见的ADT,所有源代码都包含函数契约。您可以随意复制其中的任何回购协议,并将其用作练习的基础: 我敢肯定,如果你环顾四周,也有许多其他作者的合适材料。 |
|
|
3
1
我建议使用GitHub,因为他们不需要联系其他人就可以开始访问存储库,而且错误的提交不会产生问题,因为它只是一个“本地”提交。 |
|
|
4
0
我一直发现freebsd项目很适合教人们如何用C编程。他们将得到提交人的代码审查,他们将解释如何做得更好,他们有很棒的文档, http://www.freebsd.org/doc/en/books/developers-handbook/book.html . 您可以自愿修复错误: http://www.freebsd.org/cgi/query-pr-summary.cgi http://www.freebsd.org/projects/ideas/ideas.html 有的简单,有的难 |
|
|
Sudhanva c · 如何提高编码技能?[已关闭] 8 年前 |
|
|
hoffm · 为什么Ruby找不到调用方类中定义的常量? 8 年前 |
|
|
Thamme Gowda · “lambda”关键字的较短替代项? 9 年前 |
|
|
AlphaModder · 有没有带有“不寻常”访问修饰符的编程语言? 11 年前 |
|
|
lucasasecas · 有可能静态地使用动态语言吗? 12 年前 |
|
|
Eugenio Laghi · 仅由括号、加号和感叹号组成的语言 12 年前 |
|
dallin · 数组中的逗号运算符是否有名称? 12 年前 |