Introducing Students To the World of Open Source 182
paulproteus writes "Most computer science students never see a bug tracker, and very few learn about version control. Classes often don't teach the skills needed for participation. So I organized a weekend workshop at the University of Pennsylvania. Total newbies enthusiastically spent the day on IRC, learned git, built a project from source, and read bugs in real projects. I learned that there's no shortage of students that want to get involved."
In my experiance... (Score:4, Funny)
Most computer science students don't know how to write code. So it doesn't matter at all.
Re:In my experiance... (Score:4, Interesting)
I came to the same conclusion. What's worse is that the class I was in was a Visual Basic class. Most of them didn't care about programming, the ones who did performed very poorly at it (and in Visual Basic no less), and the teacher didn't even know what a function was (sure, he is a math teacher, but he had been teaching that class for three years). Disturbing.
Re: (Score:2)
That's the kind of stuff I'd expect at a high school level, not a post secondary that you are paying tons of money for. It's annoying when a teacher doesn't know the answer to a question, but I'm willing to let it slide. If they don't even know the terminology to understand my question though - I would ask for a refund.
Re: (Score:2)
"That's the kind of stuff I'd expect at a high school level"
Really? I wouldn't. Visual Basic is so simple that anyone should be able to grasp it (or at least the simple things that were being taught in that class). Besides that, a function? Really? That's terrible, high school or no.
Re:In my experiance... (Score:5, Informative)
In high school, they don't have Computer science teachers (usually). They have a different teacher, who gets handed a text book on how to teach programming. They don't bother reading it, they probably teach language arts or Math - so they just kind of dole it out to the kids and try to help where they can.
At least, thats been my experience. I didn't reach anyone with programming experience till Post secondary.
Re: (Score:2)
Re: (Score:3)
By a very unfortunate twist of fate, I learned to program by myself on DOS using debug.exe when I was 10.
I would argue that it was a childhood well spent, as you understand systems at a much lower level than most. I'm 45, and started younger than most. Vic 20 in high school, then a 8086, but didn't get serious until I bought a 386 with DOS 4/Win 3. I understand RS232 ports, and hard modems, and have built my own scsi cables, quite proficient in DOS batching (although not so much with debug.exe), before I
Re: (Score:2)
At least in my undergrad the Class on VB was designed for all the majors, as the requirement for graduation was either a Foreign Language or a Comp Sci course. So a lot of students took CS 101 Visual Basic, to get the requirement.
So CS Students who had 0 programming experience took the class or anyone else who didn't want to take a Foreign language class.
It was usually taught by a Non-CS Professor (or the worst one they could possibly find who is still on payroll) as most of the students just wanted a gra
Re: (Score:2)
You should have take the foreign language class and studied English.
You should have take the foreign language class and studied
You should have take the foreign language class and
You should have take the foreign language class
You should have take the foreign language
You should have take the foreign
You should have take the
You should have take
As should you. Now, with that said, jellomizer is missing a closing parentheses in his sig, so he probably should have studied harder in the shitty VB class.
Re: (Score:2)
[A teacher of a programming course not knowing how to program]'s the kind of stuff I'd expect at a high school level, not a post secondary that you are paying tons of money for.
OTOH, at the college level most of the instructors look down on teaching programming as being below-college-level material, similar with teaching arithmetic in a math course. They're wrong about this, of course, because writing computer code requires an approach and a mindset that isn't much required for anything else you've likely
Re: (Score:2)
Re: (Score:2)
Different, yes, but similar.
f(x) means that you start with x, do whatever "f" does to x, and end up with a different value at the end. So, if f(x) = x*2, then f(4) = 8.
That's pretty much the same thing that programming functions (or subroutines) do. You define what the function does to the given inputs, and return the value when you're done. Sure, programming functions are a bit more complex and you can do stuff without any inputs, etc., but the general idea is the same, isn't it?
Re: (Score:2)
One important difference: mathematically, if f is a function and x is in the domain of f, then f(x) == f(x). This isn't generally true about a "function" in a computer program. (For what it's worth, I know some computer scientists who are very careful to call a subroutine a "function" only if it meets the mathematical definition.)
Re: (Score:2)
Having had plenty of programming before algebra where they actually used the term "f of x" or the f(x) notation, it confused the heck out of me - until one day the instructor let slip with "so what function of X would give this value if X=3". And the 0 turned to a 1 and things became *much* easier for me...
Re: (Score:2)
Re: (Score:2, Interesting)
Feels like the school indust
Re: (Score:2)
"Identifying the problem class and the appropriate strategy to solve it is hard"
And that's exactly what professional mathematicians expends their entire lifes with.
I really don't see what are the (mental) skill set differences between programming and applied maths, but I certainly would accept enlightment.
In my experiEnce... (Score:2)
I would LOVE to attend something like this - so if it's held again, please post the invitation on Slashdot. I'd travel the 300 miles to attend. (Better yet, make videos and post them!)
Re: (Score:2)
Actual Computer Science has very little to do with writing code. Of course, what they teach in CS classes usually has little to do with Computer Science, so it all evens out. :)
Re: (Score:2)
"Computer Science" isn't a good name for it either. To paraphrase, it's like calling Astronomy "Telescope Science".
"Computing Science" is a much better name. "Algorithm Science" would work too.
For writing code, there is "Software Engineering", which some people want separate from CS. At least it's a decently accurate name for the subject.
Re: (Score:2)
Most CS students can write code, though some may be of poor quality. But as with any open-ended endeavor, coding requires a bit of creativity and some artistic touch to get a good result. It's hard to teach this in a classroom setting. Plus, the core of computer science has very little to do with coding anyway. Coding is a way of applying the knowledge, almost similar to the difference between Physics and Applied Physics.
I'd argue that trackers and version control should not be taught in a CS curriculum. L
Re:In my experiance... (Score:5, Insightful)
I'd argue that trackers and version control should not be taught in a CS curriculum.
Trackers... OK, I don't see those as essential. Version control? Disagree vehemently. There might be a couple programs in the country where you can specialize in theory enough to avoid all heavy programming, but most programs require you to do at least some practical courses (OS, compilers, etc.), and even in programs where you could avoid such classes probably most students don't. And IMO, if you're teaching a programming-heavy class and you don't at least strongly recommend using version control and give a quick overview of what that means and why you want it, you're doing your students a big disservice.
I'm not saying "spend a week going over CVS, SVN, Git, and Mecrcural" or anything like that, but a 15-minute quick intro to one of them of your choice is definitely not out of place in many CS classes.
Re: (Score:2)
Especially for students. How many other classes explicitly say, "This is how you can avoid having your entire project wiped out by a computer crash"?
Re: (Score:2)
I agree about version control. It should be taught to everyone. It's important whether you're programming or not. I'm currently in a Masters program and all of the electronic course handouts and all of my assignments are stored in an SVN repository for each class.
Re: (Score:2)
Re:In my experiance... (Score:5, Insightful)
Re: (Score:2)
Re: (Score:2)
Re:In my experience... (Score:2)
Re: (Score:2)
Most computer science students don't know how to write code. So it doesn't matter at all.
I feel like your spelling of experiance is some level of brilliant meta-commentary that I'm not qualified to understand.
Re: (Score:2)
Most computer science students don't know how to write code. So it doesn't matter at all.
I feel like your spelling of experiance is some level of brilliant meta-commentary that I'm not qualified to understand.
I agree, unequifaxally, that it is genius
Re: (Score:2)
I was going to say something like, shoot me for not being native english and heavy dyslextic.
But I figured I could just release my post as GPLv2 so you can fix it yourself.
Re: (Score:3)
Most computer science students don't know how to write code. So it doesn't matter at all.
That's because many computer science departments focus on the theories and science of CS, not good programming techniques because many professors have never written code for a living. It's probably why so many departments started teaching Java instead of C++ (or *gasp* both!) because they just don't know any better.
Re: (Score:2)
I don't know what university you went to, but when i took Informatics it's true they didn't teach us much hands-on programming yet that was more cause we were expected to learn the practical parts ourselves on our own time. When time came to do assignments you either knew the basics already or had to figure them out.
Re: (Score:2)
So what? The people you talk about are never the kind of people that like to tinker, to program up a little tool to scratch an itch. They're not the people likely to contribute something after a long day of studying or work - not that all open source must be volunteer work, but much is. The vast, vast majority of the population can't code and it's not really important how many CS students can't either, the hit ratio is probably roughly as good as it's going to get. Consider it a bit like searching for rare
Re: (Score:3, Insightful)
Computer Science != Software Engineering != Programming.
Computer Science is the theory.
Programming is the practice.
Software Engineering is how to put the theory into practice.
Re: (Score:2)
Let me fix that for you:
"Most software engineering students don't know how to write code. So it doesn't matter at all."
I did a embedded software study. And in the 3th year we had a "software testing" class. We where required to write a simple "solve the ABC formula" program in plain C. And then test it. We had 2 hours per week for that class. We worked in groups of 2. After 4 weeks, that's 8 hours for the people that failed math. Half of the groups did NOT have something that even ran a basic test. So not s
Re: (Score:2)
This has always been one of my gripes (Score:5, Interesting)
I've been a professional software developer for over 20 years and this is one area that I really think would benefit the REAL world so much.
I would also love to see a 2 semester class where 1 semester is where they learn how to write software specifications for fictitious business software package.
Then the 2nd semester is where it has to be implemented by a different group of students.
Re: (Score:2)
Re: (Score:2)
When I did my CompSci degree last century we did this.
Groups of 4 students, design screens and inputs for a business application in COBOL.
After designed, swap with another group and begin implementing to their design specs.
After a few weeks work, we had to swap with another group and take over (and finish) a half completed project.
At the end of the subject we had to write about our code, experiences taking over another group's work, and the group dynamics.
It was daunting, but I well remember the lessons gai
Re: (Score:3, Interesting)
I once saw a "performace art" exhibit at the National Gallery in Ottawa Canada. They had an exhibit where an artist wrote up requirements for a piece of artwork on a series of index cards. He then handed the cards over to his students and asked them to create the art. There was a wonderful letter in the exhibition where the artist describes how the resultant piece of art was absolutely horrible and that his students must have been complete morons. Apparently when given a list of requirements the student
Re: (Score:2)
There's nothing wrong with writing a specification for non-businessy software. You're just saying what you're going to do, after all.
I'm only two years out of uni, but you'll probably find that when it comes to implementation there's problems with your specification -- e.g. omissions, possibly contradictions. Making mistakes like that helps you plan things in the future -- whether it's for a business, or just your own project. Don't take it too seriously (that's my advice for everything).
The project I'm wor
no just open source (Score:2)
to anyone with a project: go talk to your local college or university cs department, they most probably have some kind of project course and they are always happy to received interesting real world realistic project proposition. Student cost less than outsourcing (only your time) and the quality can be quite good if you mentor them correctly.
Version control (Score:2)
Re: (Score:3, Informative)
This is very true. Version control and the ability to diff against previous check-ins would have made finding some bugs (and avoiding others) much easier, had I known how to do it at the time.
Not even. You could just check out the last revision checked in on the due date. Subsequent revisions wouldn't even matter.
Re:Version control (Score:4, Insightful)
I'm confused as to how you got anything regarding "administration" out of my point that there was no need to lock a repository. Can you explain your point than just saying "you don't know anything" in the typically condescending attitude of a know-it-all?
Re:Version control (Score:4, Informative)
Honestly, I mis-read your statement to mean that there was a way to bypass the lock.
I agree with your statement, but have no way of correcting the original post...
Apology offered
Re: (Score:2)
Honestly, I mis-read your statement to mean that there was a way to bypass the lock.
I agree with your statement, but have no way of correcting the original post...
Apology offered
Honestly, I mis-read your statement to mean that there was a way to bypass the lock.
I agree with your statement, but have no way of correcting the original post...
Apology offered
Wow! A sighting of the amazingly rare acknowledgment of error and an apology in an internet forum!!
HogGeek, you are a good person.
Re: (Score:2)
I think I just shed some robot tears.
I can feel it.
I'm afraid.
Daisy, Daisy, give me your answer do...
Re: (Score:3, Insightful)
Accepted. Slashdot does need an edit command.
Re: (Score:3, Insightful)
Using and administration are two very different things
Not so much with git. Just do your final git pull at the due time (start of class that day or whatever)
The prof can also git pull at their leisure to see what if anything the students are trying to do.
And it makes cheating accusations much more fun when there is a timestamped record.
Re: (Score:2)
Most of that stems from CS programs being behind the times. Too much theory, not enough real-world application. Not all of it should be code, as theory is necessary. But CS folks should be graduating knowing both high-level ideas on why you write code in certain ways, and the tools of the trade.
Re:Version control (Score:5, Insightful)
You can make an argument that more people should be learning Software Engineering instead of Computer Science, but that's really a different discussion.
Re: (Score:2)
If you are writing software at any level, if you are writing important papers at any level, if you are doing anything rigorous, difficult, and requiring many revisions and updates over long periods of time:
You should be using version control of some sort.
Why would you NOT want the added ease & safety of knowing that even if you totally train wreck whatever you're working on, you can always roll it back to some recent version before you made those changes? Whether you implement it in a Dropbox-style "ev
Re: (Score:2)
What's even worse to me is calling it Software Engineering. While it would be nice to think that programming could be rigorous enough to qualify as an engineering discipline, I hardly think it is at this point. It scares the hell out of me that there might be someone with a P.Eng specializing in software that will oversee a software project and maintain that it is safe for the general public because he was there. Our practices are *not* anywhere near that level. While a mechanical engineer can oversee t
Re: (Score:2)
What blows my mind is the complete lack of teaching any sort of version control software in most CS programs, which is usually going to be the first thing you'll have to use when working with software at your first job.
I agree that every CS student should learn how to use version control systems, but I don't necessarily agree that the professors should teach them. Version control is just a tool and there is nothing CS specific about it. What is wrong with CS students taking the initiative and learning professional level tools to make their lives easier? In my grad studies, I always used version control, automated builds, and automated test suites. These tools exist for a reason; they make your life easier, so students
Re: (Score:2)
Re: (Score:2, Insightful)
You are an idiot. Version control isn't that simple, even in a smaller project. Merges and Tree Conflicts are something that everyone should learn how to work out. I'm not saying it hard, but the sooner you are introduced to these concepts the better it will be in the long run. I would hope that after using a VCS that the students would continue to use it later on in other class projects.
Re: (Score:2)
You are an idiot. Version control isn't that simple, even in a smaller project. Merges and Tree Conflicts are something that everyone should learn how to work out.
You sir are wrong. I say this because I use VSS in file locking mode and I have none of those problems at all!
UCOSP - Undergraduate Capstone Open Source Project (Score:2, Informative)
What you have is great but you should check out: http://ucosp.ca/ and participate if you can.
I am mentor with the program and work with a small group of students on a project. The student get to work for an entire semester on an open source project producing or contributing things of real value. On top of that they learn how to work in a distributed environment, which is essential these days. Really it is just amazing for the students.
Re: (Score:2)
What needs to happen for this type of material to start getting rolled into real, for credit, coursework, in your opinion?
(And as an aside, it would be nice to see technical writing classes where one of the assignments is to critique and improve a wikipedia page.)
Total noobs enthusiastically spent the day on IRC (Score:2)
great meeting you at the summit (Score:2)
Hey is this the individual who had the talk at the google summer of code summit? Did you put your talk online yet? Don't forget to send an email to the list on it...
Re: (Score:2)
:D
You followed me all the way from California, back to Slashdot.... I will put it on the list soon! (Or you can, probably, given this Slashdot post.)
Orthogonal (Score:2)
Bug trackers and version control are really orthogonal to FLOSS. Yes, it's true that most of the most popular VC systems and several popular bug trackers are OSS, but that's more by-the-way. These are all things that students of computer programming should have exposure to, yes, but mixing them all up as if they were the same thing may not be the most productive way to suggest that.
Not Open Source Specific (Score:4, Insightful)
The first thing that struck me, both from the summary and the article itself, is that none of these are really open-source specific.
To reiterate, the four they listed in the article are:
OK, well, you could argue command-line Linux skills are open-source, but that's not guaranteed.
If anything, these are skills that all businesses who have programmers would want them to understand.
Heck, even my current project, an internal project that I swear I could submit things to The Daily WTF [thedailywtf.com] every weekday for the next year on, has version control and bug tracking software!
Re: (Score:2)
Project organization, including version control, bug trackers, and individual roles within a project
You'll read many more interesting examples of the above in the linux kernel, than say, yet another one week in-class project.
Re: (Score:2)
Granted, but these tools are more specific to open source. Many companies don't use IRC/Git/Trac-Bzr-Bigzilla/etc. in their corporate environment. Especially if you're not a programmer by title *cough ME cough* then you have a hard time acquiring the overpriced POS tools the company uses, but are not allowed to get what you want.
tl;dr The tools presented are largely open source.
And as many have stated, it's great he's showing them this, because no, most programmers aren't aware of just how useful these tool
Re: (Score:2)
The difference is that most workplaces I've seen have a little system to set you up, show you the ropes and so on. Need not be more than an experienced developer but someone who can explain a bit of the hows and whys, and most importantly someone who you can usually get a little attention from. I've been trying to get "into" a project now for some time, but it's damn hard code to understand and in the beginning I am more of a bother than a help asking all these questions, trying to wrap my head around the c
Figure it out later (Score:2, Interesting)
Of course there are people with CS degrees that can't design an algorithm and vice-versa, but they are really trying to teach the more important part of the equation. If you can figure out the core theory behind computer, I'm confident that you'll
If you want to help run a similar event... (Score:5, Informative)
Hey all! I'm going to be working on organizing more, similar events going forward.
If you want to stay on top of that, or try to organize an event near you, join the mailing list for OpenHatch events: http://lists.openhatch.org/mailman/listinfo/events [openhatch.org]
This is part of the OpenHatch project, an ongoing effort to help new contributors get involved in open source. If you want to stay in touch with OpenHatch, join us on #openhatch on irc.freenode.net or follow the links on our "About" page, http://openhatch.org/about/ [openhatch.org].
Yuvi Masory and Felice Ford played a huge role too (Score:3, Informative)
In my late-night Slashdot writing, I forgot to mention this the summary: Yuvi Masory and Felice Ford played a huge role in organizing the workshop. Yuvi and Felice handled all the logistics, getting all the details down to a T -- that included asking Github for sponsorship, staying up late the night before to organize the students into groups, reserving rooms, and earning the support of Penn computer science.
The workshop was just a pipe dream until Yuri and Felice nailed down all the pieces. My hat's off to
Re: (Score:2)
I know I'm late to this story, but thought I'd try this.
I'm the original developer behind Perf4J: http://perf4j.codehaus.org/ [codehaus.org] . Perf4J is a library for performance tracking code in Java that uses the appender frameworks of popular Java logging frameworks to handle timing statements. The library has been pretty successful, but right now I don't really have the time to be the sole "despot" for this project. I'm looking for someone to essentially take this library over from me, or at the very least add some co
Not all educators are stuck in 1976 (Score:2)
I teach for a BS degree in Web Design & Development. If you look at our courses [fullsail.edu], you'll see that we have a number that are very Open Source friendly. Sure, we partner with Adobe and Apple and have a huge focus on the Adobe CS apps (Flash, Photoshop/Illustrator, Flex, ColdFusion), but we also have entire courses on PHP, jQuery, mySQL, and Red5. And those are just the apps for which we spend an entire course. We also work in Git, CouchDB, Audacity, Eclipse, and many more common OSS apps and platforms.
Re:Not all educators are stuck in 1976 (Score:4, Insightful)
I teach for a BS degree in Web Design & Development. If you look at our courses [fullsail.edu], you'll see that we have a number that are very Open Source friendly. Sure, we partner with Adobe and Apple and have a huge focus on the Adobe CS apps (Flash, Photoshop/Illustrator, Flex, ColdFusion), but we also have entire courses on PHP, jQuery, mySQL, and Red5. And those are just the apps for which we spend an entire course. We also work in Git, CouchDB, Audacity, Eclipse, and many more common OSS apps and platforms. It's an open secret that we're working to launch a BS degree in Mobile Development that will have a very large Android curriculum.
Higher education doesn't have to be all boring theory and no practical application. Anyone who tells you that the university system can't keep up with rapidly-changing technology is sorely misinformed.
Twenty years from now, 90% of the technologies you mentioned will be just memories. A traditional BS from a traditional university is useful for pretty much an entire lifetime. Your BS program sounds a lot like a trade school program repackaged so that students can get financial aid. Don't get me wrong, I think these skills are useful -- I spent 10 years of my professional life teaching IT certification courses. However, I never considered what I did to be an alternative to a degree.
I would much rather see a university have trouble keeping up with technology than see one lose all sense of perspective chasing shiny things.
Re: (Score:2)
Congratulations on your elitist prejudice. You've just made the argument that your degree is better than ours, just because it looks like ours can't possibly be as dull and abstract as yours. You're right, it's not.
Do you honestly believe that graduates from a trade/VoTech school are never going to pick up another skill? Can't you learn the underlying skills without resorting to eye-gougingly dull lectures? We still teach OO and MVC and *nix terminal commands. We teach how to refactor code, collaborate
Re: (Score:3, Insightful)
Maybe you missed the part where I said I taught these classes for ten years. My point is that trade school is fundamentally different (not better or worse, different) from what the university system is designed to deliver. Giving a BS for learning thirty web development technologies is a bad idea. People will learn the tool of the day at work. The golden opportunity to learn to write and think critically is during an undergraduate degree program. I also don't think a web developer needs a BS. Everythi
Re: (Score:2)
That's exactly what it is, a glorified trade school. Notice they are accredited by a trade school accreditor. I'm not saying that vocational schools don't have a place, but you don't see the local beauty school trying to pass off their program as a MS is Hair Science.
Just UPenn students? (Score:2)
I don't mean to boast about Drexel but
The difference isn't about what's learned (Score:2)
The real difference between open source and traditional education is the motivation. The usual college class pits you against a number of classmates - if you made a mistake in an exam, you're less likely to get the A+. Unless you're one of the lucky few who can easily breeze through exams and tests, it's a negative reinforcement cycle.
Nobody gives you a grade in open source software development. Y
Re: (Score:2, Funny)
Congratulations! You win the internet! No one has ever won the internet at such a young age!
Re: (Score:3, Insightful)
Wait until you get into college for your CS degree and see what level your classmates are at. It's sad, really.
It was the same way for me over 10 years ago.
Re: (Score:2)
Wait until you get into college, where you'll be so far ahead in most of your classes that you can spend your time doing really important college things... like drinking.
Re: (Score:2)
Re: (Score:3, Insightful)
Wait until you get a job and see what level your coworkers are at.
Re: (Score:2)
Wait until you get a job and see what level your coworkers are at.
Not unless he lives in India.
Re: (Score:2)
Excellent. Those of us who both write and use open source can appreciate that. You ready for GSOC 2011?
http://code.google.com/soc/ [google.com]
Re: (Score:2)
Re: (Score:2)
Re: (Score:2, Funny)
I thought that was suppose to Linux Torvalds?
Re: (Score:2)
Re: (Score:2)
Actually a lot of computer science students want to be lots of things besides programmers, and in fact many of them want to be anything BUT programmers.
Some of us become sysadmins. Some of us become hardware developers. Some of us become fry jockeys.
So what you're saying is.... (Score:2)
The last thing most projects need is a bunch of clueless n00bs filling up the mailing list with "OMG how do I run make", and I see no evidence that your "training" will produce anything else.
...teaching people how to use make will cause more people to go "OMG how do I run make?".
Re: (Score:2)
Re: (Score:2)
I wonder if he has a follow up class on how to say "It's open source, fix it yourself".
Re: (Score:2)
Sorry, that's a 400-level course, not open for auditing.
Re: (Score:2)
Re: (Score:2)
While I think the lessons here are valuable, as far as the "practical student" goes, the vast majority of assignments are one-time throw-away.
Most work assignments by quantity are also one-time throw-away. However, most time spent is on the big eternal monster systems.
Might not be completely out of line to give them a mix of little "import this very raw data into a SQL database" and big "Lets spend an entire semester building a complete inventory system"
Re: (Score:2)
It's actually baked into the curriculum -- it's not missing. If you read the announcement website [openhatch.org], you can see that it's really about teaching how to contribute, not just be a passive user.
We had 51 applicants for 20 slots. We expanded it to the 30 most enthusiastic people.