Slashdot Mirror


Introducing Students To the World of Open Source

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."

29 of 182 comments (clear)

  1. In my experiance... by daid303 · · Score: 4, Funny

    Most computer science students don't know how to write code. So it doesn't matter at all.

    1. Re:In my experiance... by cheekyjohnson · · Score: 3, 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.

      --
      Filthy, filthy copyrapists!
    2. Re:In my experiance... by spiffmastercow · · Score: 4, Insightful

      That's okay, most professional programmers don't know how to write code, so they'll fit right in.

    3. Re:In my experiance... by chemicaldave · · Score: 2

      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.

    4. Re:In my experiance... by EvanED · · 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.

    5. Re:In my experiance... by Monkeedude1212 · · Score: 4, 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.

    6. Re:In my experiance... by not-my-real-name · · Score: 2, 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.

      --
      un-ALTERED reproduction and dissimination of this IMPORTANT information is ENCOURAGED
    7. Re:In my experiance... by SplinterOfChaos · · Score: 2, Interesting

      Many of the CS teachers i've met have told me they don't like the language or principles they're being payed to teach. I learned C++ with a teacher who thought C++ wasn't a good language, C being worse, and thought the class should be taught with Java. Now i have a Java teacher who dislikes object oriented programming and Java. I even once had a teacher for Computer Organization and Assembly Language who was just called in to do that class. He was barely (if at all) a teacher.

      Feels like the school industry treats IT like much of what i've heard of the corporate world: Make it work; we don't care how.

    8. Re:In my experiance... by Pharmboy · · Score: 2

      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 moved on to both Windows and Linux. I learned TCP/IP, Netbios (Netbeui), IPX/SPX, Lantastic networking the hard way, before the internet, using BNC cables and terminators. We both have an understanding that goes well below the application interface.

      When presented with a problem, I find that it takes me significantly less time to solve than the average 20 year old "expert", as they simply think in shallower terms. They are quicker to blame the application, for instance, when it may be the video driver or a codec. Or they just simply run out of ideas and want to reformat and reinstall. Years of working with slower computers can teach you how to fix problems to prevent having to reinstall the entire OS again, and make you a better tech.

      Never regret learning the lower level basics first. Most people are simply too lazy to learn the basics, and in general, are inferior problem solvers because of it.

      --
      Tequila: It's not just for breakfast anymore!
  2. This has always been one of my gripes by SirGeek · · Score: 4, 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.

    1. Re:This has always been one of my gripes by wrook · · Score: 2, 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 students turned off every rational thought in their heads and implemented only what was written down, giving no thought to whether it was a good idea or not. It was also interesting to see that the original artist accepted no responsibility for supplying requirements that, when implemented, resulted in horrible art.

      This was done in the 1960s. I often think that programmers should be required to see that exhibit. I wish I could remember the name of the artist.

  3. UCOSP - Undergraduate Capstone Open Source Project by Vandilzer · · 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.

  4. Re:Wow... by Anonymous Coward · · Score: 2, Funny

    Congratulations! You win the internet! No one has ever won the internet at such a young age!

  5. Re:Wow... by drcheap · · 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.

  6. Re:Version control by Microlith · · Score: 2, 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.

    it would be really easy for professors to lock checking into their repo after the due date.

    Not even. You could just check out the last revision checked in on the due date. Subsequent revisions wouldn't even matter.

  7. Re:Version control by Hiro2k · · 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.

  8. Re:Version control by cforciea · · Score: 5, Insightful

    It isn't really that surprising to me. Computer science and software engineering are not identical disciplines. Computer Science programs on a core level are about data structures, algorithms, and the theory behind why we program things the way we do. The actual specifics of a development cycle, while obviously important if you want to put any of that to practical use outside of research positions, are disjoint from those concepts.

    You can make an argument that more people should be learning Software Engineering instead of Computer Science, but that's really a different discussion.

  9. Not Open Source Specific by VGPowerlord · · Score: 3, 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:

    • Communication technologies, like IRC and mailing lists
    • How to get, build, and modify open source code
    • Project organization, including version control, bug trackers, and individual roles within a project
    • Linux and command line skills

    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 every weekday for the next year on, has version control and bug tracking software!

    --
    GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
  10. Figure it out later by cforciea · · Score: 2, Interesting

    Not to diminish the complexity of version control or anything, but I'd rather have a programmer that knows how to design an algorithm and needs help getting it checked in than a lousy programmer who knows his way around SVN well enough to check in his crap code.

    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 be able to eventually navigate the software development process; I'm not sure the reverse is always true.

  11. Re:Version control by Microlith · · Score: 3, Insightful

    That statement is proof that you don't know how to admin a repository...

    Using and administration are two very different things

    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?

  12. Re:Version control by HogGeek · · Score: 3, 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

  13. If you want to help run a similar event... by paulproteus · · Score: 4, 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

    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/.

    --
    |/usr/games/fortune
  14. Re:Version control by vlm · · Score: 2, 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.

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  15. Yuvi Masory and Felice Ford played a huge role too by paulproteus · · Score: 2, 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 them!

    Further thanks go out to John Stumpo, Jonathan Simpson, and Zach Goldberg, who all came in from out-of-down to help these students get their feet wet in open source.

    --
    |/usr/games/fortune
  16. Re:Version control by Microlith · · Score: 2, Insightful

    Accepted. Slashdot does need an edit command.

  17. Re:Wow... by Hatta · · Score: 2, Insightful

    Wait until you get a job and see what level your coworkers are at.

    --
    Give me Classic Slashdot or give me death!
  18. Re:Wow... by froggymana · · Score: 2, Funny

    I thought that was suppose to Linux Torvalds?

    --
    "To prevent this day from getting any worse, I'll just read ERROR as GOOD THING" 1GJU8xLuDKDxEs4KLf8fAGyptoDsqvEsBT
  19. Re:Not all educators are stuck in 1976 by Jaime2 · · Score: 3, Insightful

    I teach for a BS degree in Web Design & Development. If you look at our courses, 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.

  20. Re:Not all educators are stuck in 1976 by Jaime2 · · Score: 2, 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. Everything needed to be a good web developer can be learned at a trade school.

    The big problem with what is going on at a lot of "alternative" schools is the idea that any learning that is useful in the real world can be packaged together into a degree program. Web development is a skill, not a topic of study. I commend anyone who masters this skill and I wish them well in the work world (I might even hire them), but I don't think they have earned a BS. None of the HVAC or truck driving schools tried to turn into degree-granting institutions in the 70s or 80s. I've been on the inside of some of these schools and unfortunately the shift to degree-granting programs has usually been done solely so the students can qualify for financial aid.

    BTW, I don't have a CS degree.