What Makes an OSS Class Work?
AnimalCoward writes "I teach a Continuing Education courses in OO programming at our local state university. An email was just sent out from the program director asking if any instructors were interested in developing, and teaching, a course in OSS. My question to the slashdot crowd is: What would you want to see in an OSS class? What should be included? Should I bring up all the discussions about liability and multiple OSS licenses? The request didn't state it, but from experience I believe the students would have a programming background ranging from only mainframes to C++ to those with some Java experience."
May be I am naive, but what else would you discuss in an OSS class except philosophy, legal, ethical and practicality arguments behind OSS? As far as I am concerned, it doesn't matter what programming language background the student has; because OSS class should not be about programming but every thing else surrounding it. For e.g. copyright law and how it relates to OSS, what are different OSS licenses and why are there so many? How can one create their own license and still maintain the spirit of OSS? And frankly the most important question this class should address is - WHY OSS?. I believe that between all the hoopla surrounding OSS, people have stopped asking the fundemental question.
Well you could go over the differences in GPL and BSD as opposed to other licenses and have them find out what effects patents have on software.
It would be nice to cover the aspects mentioned in the previous replies, but having some instruction on how to get started with OSS (SourceForge, using CVS, etc.) would also be helpful.
The Army reading list
Also, SourceForge
Basic tools. Source code management, build systems.
Leadership techniques about getting people to work with you when you aren't paying them and can't fire them.
Agile Artisans
OSS isn't strictly an IT issue. It's a rights issue. Who owns software? software design? concepts? ideas? thoughts? This sounds like what I should have been taught in our semester of IT Law (As apposed to the far too specific individual legal cases to do with Data Protection Act (still very interesting though)). If you were to take this class. A major part of the course would have to be the GPL. This has to be the most clear cut academic outline of OSS. In short... Very good idea :)
You said "Continuing Education" which I translate as "Not-for-credit", or in other words, a class one takes in ones own time which does not count towards anything other than personal satisfaction or career enrichment.
Look at your target audience: beginning to mid-level programmers with no real-world experience. Adults, probably older than college-age, who have families and careers (or not) and are looking to learn. If they take an OSS course, they are interested.
Don't scare them off by jumping straight into philosophy and legalities - explain the history of OSS by exploring what is GNU, why they existed, talk about the split between ATT UNIX/BSD/etc. Introduce Linux. Introduce the wide-range of programming tools available. THEN, and ONLY THEN talk about the details. If you don't pique their interest right off, you are liable to scare them off. Most programmers I know aren't too keen on using their free time to discuss legalities and philosophies. (I know you exist out there, but you are not the majority.)
Even though you are trying to sound funny, I think two sections - "How to sell an idea" and "How to develop a business plan" will probably be invaluable. The key to success of an OSS is how much you can get funding in VC and how long you can keep them happy. Obviously this means profiting from the business model surrounding the product. So not only do you have to be a good at marketing yourself or the product, but you should have some business sense to make that project a success.
If you're talking to computer science students, it might be a good idea to have them research an OSS project they like and contribute something to it. I think a lot of students are pro-OSS in theory, but haven't taken the time to actually get their hands dirty with real, live code. If you require them to find and do some work on an existing project then they get valuable experience in researching what's out there, familiarizing themselves with existing community gathering points, etc.
True, a lot of the code they contribute will suck, but that's nothing new. And if they keep trying, they'll get better at it.
Acius the unfamous
What would you want to see in an OSS class?
Girls
Ignorance is not a crime; neither should it be a way of life
Congress control $ = inmates run the asylum
2) Coding Standards! I think that good coding standards and commenting are especially important in an OSS project.
3) Using OSS tools: If the student is going to become as OSS programmer, then they really need to know how to use CVS, Bugzilla, etc, etc. I am sure you can come up with a good list of the things a developer needs.
4) Walk the students through setting up Linux, and using its basic functions (grep, etc) and its programming tools (gcc, make, etc). Go over the very, very basic stuff. I programmed for a while in a Wintel inviro in college before getting into an AIX system. It was a shock, and the prof seemed to think that we (me and the other students) had been programming in Unix before. It took me some time to get used to using to tools for development in Unix. Today, you probably also need to go over some command line stuff. I remember it not being that big of a deal, since I was used to DOS. I bet a lot of student today have never used DOS, or it was a long time ago.
Great ideas often receive violent opposition from mediocre minds. - Albert Einstein
It seems there's a lot of amll 1 lecture topics, but not many big huge things
*philosophy of OSS, and OSS vs Free Software
*Differences between the major licenses (GPL, LGPL, BSD)
*Major OSS successes
*OSS development tools (sourceforge, gcc, ddd, etc)
*A project where they fix a bug in an open source program of their choice (or add a feature), and submit it to the maintainer.
*OSS buisness models
Other than actually coding some open source software, there's really not much I can see teaching to make it a whole class.
I still have more fans than freaks. WTF is wrong with you people?
Lecture:
Microsoft is Evil(TM).
Review:
Microsoft is Evil(TM).
Test:
Microsoft is ______________.
A) Evil(TM)
B) Mostly Evil with nice pockets here and there.
C) Not very Evil.
D) All of the above.
"A microprocessor... is a terrible thing to waste." --
GeneralEmergency
... most OSS dev's couldn't give a fuck about their users...
And that's fine! But then those same developers shouldn't wonder why their product fails to get used by governments, businesses, educators and other serious software users.
Now while a lone developer may not care if their email fetching program becomes widely used, it's often the opposite for larger projects.
It's particularly sad when one rogue developer who publically throws out insults is able to tarnish the reputation, painstakingly built up by many people over many years, of a project like KOffice or KDE.
Cyric Zndovzny at your service.
create another Slashdot.
God help us.
Show both to boss.
(YMMV according to the boss's hair pointyness...)
I'd really let them have a go at python, it's a great language and allows for RAD of pretty much any kind of application, can talk to virtually everything that talks back easily and well.. google uses it for a great amount of projects which at the moment speaks for itself.
Of those to whom much is given, much is required.
OSS is about licensing. Period. While the subject may make a good topic for one class session in a larger course, an entire course devoted to it is overkill. It would be like having an entire class on "Shareware". In other words, pointless.
Instead, teach a class on Linux or BSD device drivers, or Unix system architecture, or Xorg programming, or LAMP, or Python scripting, etc., etc.
A Government Is a Body of People, Usually Notably Ungoverned