Question

I would like to have my programming students work in groups and make a program using Eclipse and Java. I've been researching the best way to have students collaborate on such a program but I don't know the best for them to work together.

Ultimately, I would like one student to make a class, another student to make another class and then have them import the other student's class into their project and call the necessary methods within the class.

Bitbucket and GitHub are confusing to me right now so I'm not sure of its usability. Pastebin is an option but there isn't consolidated code there. Would creating a Dropbox account be the best way to share code easily?

EDIT:

Ok, these responses have me swimming in words I'm not familiar with, but I'm greatly appreciative of all this knowledge being bestowed upon me. How can I simplify sharing code by having one student give another student a .java file and he uses that .java file, and all its public methods, to help make his project work?

For example, one student makes a simple math operations class. Another student makes a different math operations class. They share code with one another and are able to implement the other person's class to create a simple calculator.

Was it helpful?

Solution 7

Using Dropbox/Google Drive seems to be the best option for what they need to do. I would love to do other things but the focus of the class is understanding the programming language. Maybe when I become comfortable with Git we'll use that. Right now it's all about coding and sharing a class with another student.

Everyone was awesome with this. Thanks for all the great ideas and discussions.

OTHER TIPS

If you teach programming you should really be aware:

  • Of the importance of collaboration and versionning tools like Git, Mercurial, SVN
  • That there is currently a massive shift to git

Your students should be able to use a versionning system after their cursus, or they will lack a skill that is very important when it come to working together.

Since there is a currently a big scale move to git, why not having them learn git? I recommend you to read Pro Git and learn them to use git. GitHub is the simplest way to make a git server available for them.

Neither you nor them will learn it in 5 mins, but for them, and for you as a teacher it's worth the investment.

I find sourceforge very convienent. It's free and also has a small webserver. Maybe it's older and not that hyped like git. But I understand your worries and a ftp or a webdav protocol is also good to share code. Komodo IDE for example can edit files over ftp. Version control can be really painful and you need to learn much.

I am a college student, so this might be kind of awkward. But in my opinion, using a source control might be the best option, although it might be hard to understand the new concepts that lay ahead. But in the long run, every employer wants their programmers using some source control. In addition, maybe use some tools that allows them to communicate even when they are not near, like TeamViewer, Skype, etc.

My opinion Mercurial, and my favorite client that integrates with Explorer on Windows TortoiseHg.

Use a version control system, best a distributed one (DVCS) like Mercurial or Git.

It should be qutie easy to run a "main" Mercurial repository over the network, e.g. using hg serve and I guess it would be similarly easy with Git.

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

https://www.mercurial-scm.org

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

If your students start to work in teams, also make sure they get the concepts of:

  • Continuous Integration, e.g. using Jenkins

and therefore also:

  • automated builds, e.g. using Maven
  • automated unit tests, e.g. using JUnit

If your students are using Windows, then I suggest that you use TortoiseSVN. It is based on Subversion source code control system, also known as SVN.

You would have to setup the repository. The student's computers would need to have Tortoise SVN installed, and configured to attach to the repository.

You would then teach the students good principles of source code control--a skill vital for any programming project, especially those projects where collaboration is used.

  • Using VCS in today's professional programming is a must
  • VCS is a best way for sharing and collaborating in code-development
  • If each subtask is performed by a group, DVCS for free P2P communications in process in a Natural Way
  • Git is worst choice for newcomers in SCM-world

SVN has minimal learning course (but some additional weight in technical support of process), Mercurial (pure hg or TortoiseHG) has minimal amount of technical support (zero), but slightly more learning course, compared to SVN. Fossil SCM has somehow intermediate values, but will be useless for students in future, but provide not only SCM, but some additional features in process (embedded wiki as source of knowledge exchange)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top