[TOS] profs: good simple open source in-class techniques?
C. Titus Brown
ctb at msu.edu
Tue Sep 1 01:40:04 UTC 2009
On Mon, Aug 31, 2009 at 07:18:01PM -0400, Greg DeKoenigsberg wrote:
-> So we'd all love to see real open source projects make their way into real
-> classrooms, and that's certainly one of our goals.
-> However, there's lots of techniques to get students familiar with open
-> source tools and methodologies that fall well short of "full
-> participation," but are still useful on-ramps for students. Things like
-> getting students to turn in their homework via a commit to a svn
-> Do any of you profs out there have any ideas like this that you've tested
-> out in your own classrooms?
I did a few different things in my Web dev class last year,
Apart from using Python, jQuery, Selenium, and twill, I had them turn in
the homeworks via svn. That became a disaster for a few reasons:
- I used a completely broken submit model. They worked off of
hw-specific directories, such as hw5/ and hw6/; since the homeworks
were progressive, they would then copy hw6/ to hw7/. Anyone want to
guess what happens to subversion checkouts when you do that? ;) 
I honestly have no idea what mental aberration led to that plan, but
this next term (starting Th!) I will be having them work off of trunk
and then make tags or branches for each hw, the way sane people work.
- the machine they were working on (NOT the svn server, but the
department server) had a really slow disk. When I introduced them to
Selenium with its trillions of tiny little files, it took them 15
minutes to do a simple checkout.
It's hard to blame this on subversion, I guess, but the model of
making "new" copies of their work every week didn't interact well
with the slow disk.
This term I'd really like to use git, but I won't because it's pretty
hard to teach. If I had a github-like site with good security access I
might still try... DVCS is awesome and has changed the way I think about
developing myself, so I'd like to bring it to the students.
I also have a very simple continuous integration system that I'd like to
introduce; this would let them check in their code and then have my
system run the tests automatically. Too much to write for this term.
Incidentally, after force-feeding svn to the undergrads (and getting
some pretty negative comments about it) I then got several "THANK YOU!"
notes from people who had to use it for their internships.
 Each directory under subversion control has a '.svn' subdirectory
that contains the subversion metadata. When you copy the directory, you
copy the subdirectory, and end up confusing the heck out of subversion.
C. Titus Brown, ctb at msu.edu
More information about the tos