2

我想让我的编程学生分组工作,并使用 Eclipse 和 Java 编写程序。我一直在研究让学生在这样的项目上合作的最佳方式,但我不知道让他们一起工作的最佳方式。

最终,我希望一个学生创建一个班级,另一个学生创建另一个班级,然后让他们将另一个学生的班级导入他们的项目并在班级中调用必要的方法。

Bitbucket 和 GitHub 现在让我很困惑,所以我不确定它的可用性。Pastebin 是一个选项,但那里没有统一的代码。创建 Dropbox 帐户是轻松共享代码的最佳方式吗?

编辑:

好的,这些回答让我用我不熟悉的语言游泳,但我非常感谢所有这些知识赋予我。我如何通过让一个学生给另一个学生一个 .java 文件来简化共享代码,他使用该 .java 文件及其所有公共方法来帮助他的项目工作?

例如,一个学生做了一个简单的数学运算课。另一个学生开设了不同的数学运算课。他们彼此共享代码,并且能够实现对方的类来创建一个简单的计算器。

4

7 回答 7

7

如果你教编程,你应该真正意识到:

  • Git、Mercurial、SVN 等协作和版本控制工具的重要性
  • 目前正在大规模转向 git

您的学生应该能够在完成课程后使用版本控制系统,否则他们将缺乏在合作时非常重要的技能。

既然目前有大规模迁移到 git,为什么不让他们学习 git?我建议你阅读Pro Git并学习他们使用 git。GitHub 是为他们提供 git 服务器的最简单方法。

您和他们都不会在 5 分钟内学会它,但对于他们以及作为老师的您来说,这是值得的投资。

于 2012-11-19T16:46:51.323 回答
3

我发现sourceforge 非常方便。它是免费的,并且还有一个小型网络服务器。也许它更老,而不是像 git 那样大肆宣传。但我理解您的担忧,并且 ftp 或 webdav 协议也可以很好地共享代码。例如,Komodo IDE 可以通过 ftp 编辑文件。版本控制真的很痛苦,你需要学习很多。

于 2012-11-19T16:51:14.970 回答
2

我是一名大学生,所以这可能有点尴尬。但在我看来,使用源代码控制可能是最好的选择,尽管可能很难理解即将出现的新概念。但从长远来看,每个雇主都希望他们的程序员使用一些源代码控制。此外,也许可以使用一些工具,即使他们不在附近,也可以让他们进行交流,例如 TeamViewer、Skype 等。

我认为 Mercurial,以及我最喜欢的与 Windows TortoiseHg 上的资源管理器集成的客户端。

于 2012-11-19T16:47:32.723 回答
2

使用版本控制系统,最好是分布式系统 (DVCS),例如 Mercurial 或 Git。

在网络上运行“主”Mercurial 存储库应该很容易,例如使用hg serve,我想使用 Git 也同样容易。

https://www.mercurial-scm.org/wiki/PublishingRepositories2

https://www.mercurial-scm.org

https://www.mercurial-scm.org/quickstart

如果您的学生开始团队合作,还要确保他们了解以下概念:

  • 持续集成,例如使用 Jenkins

因此还有:

  • 自动构建,例如使用 Maven
  • 自动化单元测试,例如使用 JUnit
于 2012-11-19T17:10:42.483 回答
1

如果您的学生使用的是 Windows,那么我建议您使用TortoiseSVN。它基于 Subversion 源代码控制系统,也称为 SVN。

您必须设置存储库。学生的计算机需要安装 Tortoise SVN,并配置为附加到存储库。

然后,您将教给学生良好的源代码控制原则——这是任何编程项目都至关重要的技能,尤其是那些使用协作的项目。

于 2012-11-19T16:46:27.330 回答
0
  • 在当今的专业编程中使用 VCS 是必须的
  • VCS 是代码开发中共享和协作的最佳方式
  • 如果每个子任务由一个组来执行,DVCS免费P2P通信自然地进行
  • Git 是 SCM 世界新人最糟糕的选择

与 SVN 相比,SVN 的学习课程最少(但在技术支持方面有一些额外的权重),Mercurial(纯 hg 或 TortoiseHG)的技术支持最少(零),但学习课程略多。Fossil SCM 具有某种中间值,但对未来的学生来说将毫无用处,但不仅提供 SCM,而且正在提供一些附加功能(嵌入式 wiki 作为知识交流的来源)

于 2012-11-19T17:21:23.283 回答
0

使用 Dropbox/Google Drive 似乎是他们需要做的最佳选择。我想做其他事情,但课程的重点是理解编程语言。也许当我对 Git 感到满意时,我们会使用它。现在,一切都是关于编码和与另一个学生分享课程。

每个人都很棒。感谢所有伟大的想法和讨论。

于 2012-12-06T21:11:50.500 回答