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

182 comments

  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 Anonymous Coward · · Score: 0

      I agree completely. Having just earned my BSc. Comp. Sci. a few years ago, and making money on the side marking for various CS classes, most CS students can't write code.

    2. 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!
    3. Re:In my experiance... by Anonymous Coward · · Score: 1, Funny

      Well, he did introduce them to weekends spent on IRC. Something they will most likely be doing for the rest of their lonely, lonely lives.

    4. Re:In my experiance... by Xtifr · · Score: 1

      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. :)

    5. Re:In my experiance... by immakiku · · Score: 1

      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. Let that be taught in specialized degrees, like software engineering or something. Not all CS students need to know how to use those, and it distracts some away from the core principles of CS to focus on these.

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

    7. Re:In my experiance... by fishexe · · Score: 1

      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 don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
    8. Re:In my experiance... by Anonymous Coward · · Score: 0

      It's been my experience (20 yrs. software engineer) that the ones that spout off the loudest (like you) about "everyone else's" coding skills are the ones how really can't program to save their lives.

    9. Re:In my experiance... by Anonymous Coward · · Score: 0

      This. A thousand times, THIS.

    10. Re:In my experiance... by Monkeedude1212 · · Score: 1

      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.

    11. Re:In my experiance... by Anonymous Coward · · Score: 0

      Trackers and version control (and lots of other techniques for managing large projects) are taught in computer science curricula, if you choose the software engineering courses. Computer science is a huge field with many different specializations, including software engineering.

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

    13. Re:In my experiance... by Anonymous Coward · · Score: 0

      They do. A very significant part of computer science is software engineering. That, and a lot of papers being written usually have some kind of implementation. It's true, however, that coding is seen as something you just need, kind of like writing and presentation skills.

    14. Re:In my experiance... by Kjella · · Score: 1

      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 earth minerals - no matter where you search it's likely you won't find large pure blocks of it. It's still worth doing...

      --
      Live today, because you never know what tomorrow brings
    15. 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.

    16. Re:In my experiance... by cheekyjohnson · · Score: 1

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

      --
      Filthy, filthy copyrapists!
    17. Re:In my experiance... by spiffmastercow · · Score: 1

      Well, in fairness, a function means something very different to a mathematician than a programmer.. Also, IIRC, in BASIC they're called subroutines.

    18. Re:In my experiance... by Have+Brain+Will+Rent · · Score: 1

      I wouldn't go so far as to say most (I haven't met >50%) but it can be amazing what some don't know. I recall one recent graduate of a software engineering program (actual engineering program, not a CS degree, at a fairly prestigious school)) who had no idea what the stack was used for, how to use a stack trace in debugging etc. etc. It has been a few years since that encounter but somehow I doubt it is any better.

      --
      The tyrant will always find a pretext for his tyranny - Aesop
    19. Re:In my experiance... by CannonballHead · · Score: 1

      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?

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

    21. Re:In my experiance... by Anonymous Coward · · Score: 0

      I'm not saying "spend a week going over CVS, SVN, Git, and Mecrcural" or anything like that

      Unless there's a course in which data structures are taught and they (esp. Git and Hg) could be used as examples.

    22. Re:In my experiance... by jellomizer · · Score: 1

      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 grade to pass and not really learn anything new.

      It wasn't really a CS Class it was create a basic interface to do some math class. However it was good in giving some appreciation to what real programmers can do, as they struggle to get some simple things going they soon realize when we are writing a basic program and it takes us 12 hours to do it they know why.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    23. Re:In my experiance... by spiffmastercow · · Score: 1

      As I work with more and more people with real engineering degrees, I start to question where the "engineer worship" comes from.. Yes, I wish I had learned some of that fancy hardware stuff and the extra math, but being an engineer doesn't necessarily mean you can code any better than a CS person. In fact, I've noticed that most engineers just give a blank stare when you ask them about topics like algorithm complexity. They've learned some other difficult material, for sure, but that doesn't make them experts in everything.

    24. Re:In my experiance... by jlechem · · Score: 1

      I soooo agree with this. At first I was miffed my CS degree didn't teach me things I used at work like version control, bug tracking, database development, etc. All I learned were those pesky CS concepts. Those things are taught to the CIS (computer information systems) kids. And as I've gone on to work at real programing gigs the people with plain CS degrees write better more maintainable code over and over again. You can pick up those skills on the job and not worry about them too much. Core CS concepts are harder to master and are worth emphasizing in college.

      --
      Hold up, wait a minute, let me put some pimpin in it
    25. Re:In my experiance... by Anonymous Coward · · Score: 0

      I think you are confusing computer science with computer programming....they are different.

      Computer Science: a branch of science that deals with the theory of computation or the design of computers (http://www.merriam-webster.com/dictionary/computer+science)

      I tell my students that you can get a computer science degree to become a programmer but it is similar to getting a chemistry degree to become a cook.

    26. Re:In my experiance... by 1729 · · Score: 1

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

    27. Re:In my experiance... by vigmeister · · Score: 1

      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

      --
      Atheist: Buddhist in a Prius
    28. Re:In my experiance... by bzipitidoo · · Score: 1

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

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    29. Re:In my experiance... by gagol · · Score: 1

      In 1994 when I was in high school, I had a computer class. The teacher used RS232 to daisy chain computers in order to make them in a network... so sad... programming was in LOGO, and half the year was spent on learning to type. Forward 4 years in the future, in college, I had a class dedicated to computer learning (Macintosh, I was in design). The whole first class was dedicated to opening the computer and shutting it down, Macs. .. and I am very serial! FYI I learned to program by myself on dos when I was 10 using basic in dos...

      --
      Tomorrow is another day...
    30. Re:In my experiance... by gknoy · · Score: 1

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

    31. Re:In my experiance... by Anonymous Coward · · Score: 0

      As someone who's just finishing a software engineering degree, I'd be surprised if half the people here knew what a stack trace was.

    32. Re:In my experiance... by magus_melchior · · Score: 1

      It'll depend largely on the person teaching the course. Some, like the excellent CS professors at Berkeley and Stanford, care about the fundamentals and concentrate on those regardless of whether they're marketable skills. Chances are, the administration figured that since computer programming is a form of applied math (which it is, but the problem solving skill set is different in a number of ways) and convinced your teacher to do it because it's "easy"-- it's NOT.

      Googling for code snippets and cutting/pasting are easy. Identifying the problem class and the appropriate strategy to solve it is hard, which is why architects get the big bucks.

      --
      "We are Microsoft. You shall be assimilated. Competition is futile."
    33. Re:In my experiance... by Anonymous Coward · · Score: 0

      You should have take the foreign language class and studied English.

    34. Re:In my experiance... by pikine · · Score: 1

      By a very unfortunate twist of fate, I learned to program by myself on DOS using debug.exe when I was 10. Now I couldn't decide if I want my childhood back.

      --
      I once had a signature.
    35. Re:In my experiance... by i.r.id10t · · Score: 1

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

      --
      Don't blame me, I voted for Kodos
    36. Re:In my experiance... by doishmere · · Score: 1

      Haskell FTW!

    37. Re:In my experiance... by not-my-real-name · · Score: 1

      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.

      --
      un-ALTERED reproduction and dissimination of this IMPORTANT information is ENCOURAGED
    38. 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
    39. Re:In my experiance... by turbidostato · · Score: 1

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

    40. Re:In my experiance... by Pseudonym+Authority · · Score: 1

      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.

    41. Re:In my experiance... by Anonymous Coward · · Score: 0

      This.

      "Computer science has as much to do with computers as architecture has to do with hammers." -- Dijkstra.

      Seriously, version control and bug tracking are applied software engineering. For a CS student, a weekend on these topics, early in the course, is about right.

    42. Re:In my experiance... by jc42 · · Score: 1

      [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 done during your childhood. But that's the attitude of most of academia.

      When I got my M.S. in Computer Science, I realized that I'd never once had to demonstrate the ability to write a correctly functioning computer program. Most of my profs never wrote any code, and as far as I could tell, neither did most of the grad students. I'd developed a number of programs that were in use at the school by then, but most of my colleagues thought I was a bit bizarre for doing such things.

      The bottom line is that our educational system doesn't teach programming at any level. Well, maybe in a few courses at vocational schools and community colleges. But not in "normal" (junior-)high schools or colleges or universities.

      And no, I won't tell you what university I was at. I do this with malice aforethought, because I want you to suspect that it might have been your school. ;-)

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    43. Re:In my experiance... by Rakshasa+Taisab · · Score: 1

      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.

      --
      - These characters were randomly selected.
    44. 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.

    45. Re:In my experiance... by sqldr · · Score: 1

      yeah, the biology students and ones doing media studies are the best programmers. People studying computing know sod all about computers in general.

      --
      I wrote my first program at the age of six, and I still can't work out how this website works.
    46. 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!
    47. Re:In my experiance... by arndawg · · Score: 1

      Not version control.

    48. Re:In my experiance... by Anonymous Coward · · Score: 0

      The intro to these basic tools could very well be integrated in very first lab exercise or whatever is their first decent project. Anyone who is smart enough to study CS can easily learn all of this in no time. It wonders me to no end why they haven't done so already.

    49. Re:In my experiance... by daid303 · · Score: 1

      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.

    50. Re:In my experiance... by daid303 · · Score: 1

      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 something that could read keyboard input, do a bit of math and print it back on the screen. Best case, all the real programmers teamed up with other programmers, and only half the class would fail basic programming. Worst case 75% of the class couldn't program.
      And this wasn't some first year assignment, it was the 3th year. After 3 programming classes.
      And no, those people didn't fail those classes, and they didn't fail the "software testing" class.

      These where not the people that where going to design the next best sorting algorithm. No, these where the people which will build your next ATM, E-Voting machine, traffic light and car computer.

      I have 0 respect for the education system. And the only reason I was there was to get a piece of paper at the end.

    51. Re:In my experiance... by w.hamra1987 · · Score: 0

      Visual Basic is so simple that anyone should be able to grasp it

      Visual Basic is so simple, i will never get it... or get those who use it... or get those who get it...

      --
      my sig pwns your sig
    52. Re:In my experiance... by Whalou · · Score: 1

      I'd be surprised if half the people here knew what a stack trace was.

      Easy, it's what comes out when you do:

      try
      {
      }
      catch (IOException e)
      {
      e.printStackTrace();
      }

      --
      English is not this .sig mother tongue...
    53. Re:In my experiance... by bmajik · · Score: 1

      All CS courses _could_ be taught on pen and paper.

      Now, should "software engineering" courses deal with version control, bug repository management, bug triage, release management, and so on?

      Yes. Absolutely, positively, yes.

      --
      My opinions are my own, and do not necessarily represent those of my employer.
    54. Re:In my experiance... by Anonymous Coward · · Score: 0

      This is what really bugs me about maths students who did CS instead. CS is not just about the hard maths. It's a real shame as so many people who go into CS miss what the subject actually is and stick with one corner of it.

    55. Re:In my experiance... by Xtifr · · Score: 1

      Indeed. One might even consider it to be a branch of mathematics rather than a science per se.

    56. Re:In my experiance... by Anonymous Coward · · Score: 0

      Software Engineering, Computational theory and many other subjects are a part of a broader discipline named Computer Science. If you can't see that then you are sadly missing out on much more than you'll ever realise.

      Comp. Sci. is as much about computational theory as Biology is about the study of single cells.

    57. Re:In my experiance... by fishexe · · Score: 1

      I was going to say something like, shoot me for not being native english and heavy dyslextic.

      There you go, taking all the fun out of my wild speculation. I prefer my theory.

      --
      "I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
  2. Blog Post by prestonmichaelh · · Score: 1

    Thanks for the blog post, random guy.

  3. Please Come! by Rabbidous · · Score: 1

    Please come to my university (University of Wisconsin Madison). I would love to participate in this. I have learned simplistic elements of open source on my own, but would love to see a "get involved in open source fundamentals" at my university

    1. Re:Please Come! by gabereiser · · Score: 0

      Or..... you can learn online at anytime by learning how to use git and taking a look at projects on github.... You don't need some guy to come to your school to teach you how to use widely documented tools that take virtually no time to start using...

    2. Re:Please Come! by Anonymous Coward · · Score: 0

      Or..... you can learn online at anytime by learning how to use git and taking a look at projects on github.... You don't need some guy to come to your school to teach you how to use widely documented tools that take virtually no time to start using...

      Exactly. One of the joys of opensource / free software is the extremely low barrier to participation

    3. Re:Please Come! by toadlife · · Score: 1

      Or..... you can learn online at anytime by learning how to use git and taking a look at projects on github.... You don't need some guy to come to your school to teach you how to use widely documented tools that take virtually no time to start using...

      So what you're saying is, "RTFM n00b."

      You sound like the perfect candidate. Are you available to teach the course?

      --
      I don't always use unix-like operating systems; but when I do, I prefer FreeBSD.
    4. Re:Please Come! by Duradin · · Score: 1

      I wonder if he has a follow up class on how to say "It's open source, fix it yourself".

    5. Re:Please Come! by Americano · · Score: 1

      Sorry, that's a 400-level course, not open for auditing.

  4. 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 Anonymous Coward · · Score: 0

      We had a course similar to this in my university; although we ended up developing our own software during the second semester. We used version control, open source, etc... even though we were never "taught" it in class.

      Although I do agree that some computer science majors cannot code worth a dam, people shouldn't generalize -- we are not all terrible =P.

    2. Re:This has always been one of my gripes by pinkwarhol · · Score: 1

      I'm a CS student at ODU (virginia, US) and we have (almost) exactly this as our "capstone" CS course. It's two semesters: the first is software specs, development timeline, funding, that sort of thing; and the second is a kind of semi-implementation. As far as I know, the implementation is done by the same group of students though.

      I can see a benefit of a different group doing the implementation, though - when using someone else's specs, it makes you aware of deficiencies in communication, both in the to-be-impemented specs and your personally written ones.

      I have to say that I'm not really looking forward to this class. I probably won't be that interested in the group project, and the whole focus seems to be business-oriented... and while I want to develop software (that I'm interested in), I don't want to deal with the business end so much. Yes, INB4 comments about my naivety and such, but what is your advice on what I should try to get out of (focus on) in this dream-class of yours?

    3. Re:This has always been one of my gripes by CompSciStud4U · · Score: 1

      I came to this conclusion after taking a worthless software engineering class in college. The first semester should be about various project management styles, gathering requirements, using source control, working in teams, contributing to open source, working with large codebases, etc. The second semester should be a sort of independent study with small groups implementing whatever project they came up with in the first course. You won't get any students to do the second semester if they have to implement somebody else's project though. I don't even want to do that when I'm getting paid for it.

    4. Re:This has always been one of my gripes by xaxa · · Score: 1

      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 working on has such a loose write-it-as-we-go-along specification that I'm continually asking the project manager what should happen. "You've added 'CSV output option'. Which fields?" "Oh, um... I don't know. You decide, I'll check with the scientists on Friday." I don't mind working this way -- I like to have some really easy work (like changing outputted fields) in between the more difficult problems. But it's probably different at organisations where it's not "I'll check with the scientists" but "I'll check with the clients".

    5. Re:This has always been one of my gripes by musicalmicah · · Score: 1

      This. Bonus points for a professor who changes the requirements every week or two.

    6. Re:This has always been one of my gripes by kcitren · · Score: 1

      Then the 2nd semester is where it has to be implemented by a different group of students.

      That's just mean. Unless of course, you reverse it. First, have them write code from specifications, then have them write specifications. That way, they'll have a better understanding of exactly what they need to put in the spec to make it possible for the other developers to build what they want. Even better, tie it to a IT focused management course to be the "customer".

    7. Re:This has always been one of my gripes by perplexify · · Score: 1

      I just had to do that, except it was for a real academic project, and it was in 1 semester. Sure we didn't have to interpret someone else's spec, but that sure as hell didn't make doing it any easier! Thank god we used SVN or we would never have got it done in time!

    8. Re:This has always been one of my gripes by phek · · Score: 1

      after a decade of being a professional developer i think one of the most important yet overlooked aspects of development is writing requirement docs. Having a very detailed requirement doc that you get approved by the client (or the non-technical people of your company) will give you a great outline of the project to base your time/cost estimates on as well as an official piece of paper to show the client when they complain that there's no option to save files (or whatever).

      I've worked at companies where the sales staff writes the requirements doc and its helpful, but when someone technical writes them up it's way more helpful to the development staff.

    9. Re:This has always been one of my gripes by Anonymous Coward · · Score: 0

      Business software? Sounds like a fucking blast. Sorry but some people get into because they love programming and computers and perhaps want to do something fun like video games, social networking, or whatever toots their horn. Who the hell thinks business software is fun or gets into CS for that?

    10. Re:This has always been one of my gripes by ElderKorean · · Score: 1

      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 gained - of need for good design specs & useful comments.

    11. Re:This has always been one of my gripes by Anonymous Coward · · Score: 0

      I recently did something SIMILAR to this. I was the self-proclaimed leader of a team of 5 undergrads that were given a problem and had to implement a system to solve it. I developed the requirements and design specification closely with one of my team members, and largely delegated development to the other 3 (we all developed, though). What I got back was almost exactly what had been specified, and integrating it with the other modules was almost a no-brainer. We had 1 semester to deliver; we delivered all core requirements and almost all of our non-core. In my 4 year program, this was a 3rd year course and the 4th year version is with a team of 10+, over the year (2 semesters). My 3rd year CS friends had to write some AI thing that could've been hacked out over a caffeine-fuelled weekend. This subject taught me things I never would have picked up in computer science.

      Before we were allowed to take this project subject, we studied subjects that involved writing and analysing software requirements specifications for fictitious systems, learn about, how and why we use version control, even wishy-washy management crap, on top of the standard algorithms/data structures/OS/networking stuff. Why did we study the former? Because we're software engineering students. I'm not finished with my degree yet, but I whole-heartedly believe the extra year software engineering takes over the 3 years of computer science is worth it because of the team project subjects. So it's no wonder why computer science students don't know about this stuff, many of them simply never had a chance to learn to, which TFA was trying to fix.

      Disclosure: I'm an undergrad and the University of Melbourne.

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

    13. Re:This has always been one of my gripes by pinkwarhol · · Score: 1

      loose write-it-as-we-go-along specification

      sounds horrible...
      don't you just end up with a hodge-podge of functionality, with no unity to the whole at the end?

    14. Re:This has always been one of my gripes by QuzarDC · · Score: 1

      I have a BS in Computer Science from Carnegie Mellon University, and there we had to do (almost) exactly this in Software Engineering II. A random volunteer from the admissions department came in to describe the software she uses for admissions, we had a full class time to interview her and attempt to get as accurate an idea of the software as possible (without ever seeing it or using it). From that, groups wrote up software specifications, and traded them amongst each other, at which point the next step was to (partially) implement it in code. Needless to say, the professor had to provide us with a small amount of additional details about the software so that we could even attempt to come up with a spec (imagine trying to build M$ Excel by having someone who inputs data all day explain to you what it does), and in the end the results were hit or miss. It was however a great exercise and provided a lot of insight into learning how to interact with the end user and meet their expectations when developing code.

      As to the OP (on version control), when I took an OS course, starting from the first group assignment (replacement syscalls for a generic kernel) we were instructed to use PRCS for version control. A number of students didn't know how to use such a thing, but an FAQ was provided and the professor and TAs were ready to explain and help set up repositories for the students as needed. That's likely the best way to do something like this: require it from the first project, provide a basic guide on setting up a whatever VCS you would prefer your class to use, field questions from students that have problems.

      And on open source, in Software Engineering I, the final project for students in the class was to choose an open source project and contribute to it. We had to document the full process, including the methods of interaction with regular contributors, how you decided what to contribute, what you actually did, and the result. One group of two students chose Pidgin and were able to resolve an issue from a bug tracker report. In the end it was only 2 lines of code, but what was important was the documentation (and presentation to the class) of the rest of the interaction. I chose a project I had already been a contributor to (informally) in the past, KOS: an open OS for the Sega Dreamcast, and wrote a driver for the memory card speaker.

      Both of these software engineering courses were simply electives that fulfilled a breadth requirement for the CS degree, but were not necessarily part of a larger Software Engineering track. I can't imagine a CS degree program though that does not teach any programming, as all CS students at CMU were required to take at least one course in C on Unix, two courses on Java, and a 'systems' course (which involved learning software-hardware interaction: writing a malloc replacement, a working web proxy, optimizing a matrix multiplication function, and defusing a blackbox 'bomb' program via disassembly [program would say 'Answer to #1 is?' and you had to disassemble to figure it out]).

      Perhaps all that could be boiled down to explaining why CMU is the top CS school in the country...

  5. no just open source by JonySuede · · Score: 1

    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.

    --
    Jehovah be praised, Oracle was not selected
    1. Re:no just open source by Anonymous Coward · · Score: 0

      My school does this, usually for non-profits or small businesses. Its a class that you are required to pass to graduate and it's pass-fail. It makes the CS students work with the Information Systems students in teams.

      I really liked the project, and I have more experience to put on my resume after I graduate.

  6. Version control by pak9rabid · · Score: 1

    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. Seems to me that the CS professors should be using something like subversion to have their students check-out files being provided for a project, then have them submit all their work by checking into their assigned repository. Not only would students get experience working with version control software, but it would be really easy for professors to lock checking into their repo after the due date.

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

    2. Re:Version control by TooMuchToDo · · Score: 1

      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.

    3. Re:Version control by AnonymousClown · · Score: 0, Troll
      Why?

      Version control isn't rocket science: add, checkout, check-in, compare files, ... BFD.

      If someone has to have their hand held on how to use a version control system, they have no business being in the profession.

      --
      RIP America

      July 4, 1776 - September 11, 2001

    4. Re:Version control by HogGeek · · Score: 0, Flamebait

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

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

      Using and administration are two very different things

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

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

    7. Re:Version control by Anonymous Coward · · Score: 0

      >If someone has to have their hand held on how to use a version control system, they have no business being in the profession.

      Absurd. Training is not hand-holding.

    8. Re:Version control by Anonymous Coward · · Score: 0

      If you understood things like Git, it would blow your mind. At least when you are a computer science student. There should be a mandatory class about Git itself, *how* it functions (internals, etc.) and maybe a day spent on various applications. Many CS grads spend a class on FS design, but Git includes all that theory plus it's distributed, multi-revision bits that generally are never included in FS class.

    9. 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?

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

    11. Re:Version control by OzPeter · · Score: 1

      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!

      --
      I am Slashdot. Are you Slashdot as well?
    12. 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
    13. Re:Version control by onionman · · Score: 1

      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.

    14. Re:Version control by Microlith · · Score: 2, Insightful

      Accepted. Slashdot does need an edit command.

    15. Re:Version control by Swanktastic · · Score: 1

      I think I just shed some robot tears.

      I can feel it.

      I'm afraid.

      Daisy, Daisy, give me your answer do...

    16. Re:Version control by Lord+of+Hyphens · · Score: 1

      Slashdot needs an edit command which nukes karma associated with the post (resets modpoints). Although I've wondered now and then if /. should be considered more of a newsgroup than a forum.

      --
      "I've spent my whole life figuring out crazy ways to do things. It'll work." -- Montgomery Scott, "Relics"
    17. Re:Version control by Americano · · Score: 1

      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 "every time you save we take a snapshot" system, or a formal "checkout/checkin" system, you should be using it.

      Version control, as a principle, and with a brief introduction to common systems such as git/mercurial/svn, should be foundational to any computer science or computer engineering degree program. Most programs have a couple "intro to CS" courses which teach actual programming, it shouldn't be that much of an additional burden to add a day or two of "version control systems" to that course.

    18. Re:Version control by cetialphav · · Score: 1

      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 have a vested interest in learning them. I would be completely annoyed by a professor that taught me this, because it is a waste of my time.

      Having said that, most students don't bother to learn this stuff. That is fine by me, because I just won't hire them at work. It makes for a great interview question. Any student who can talk intelligently about version control systems has spent time learning useful stuff outside of class. That is the kind of people I want to work with. If a student can't learn something on their own, then what good are they?

    19. Re:Version control by Anonymous Coward · · Score: 0

      > Apology offered

      I'm confused. Am I still on the internet?

    20. Re:Version control by hawkingradiation · · Score: 1

      How do the students in the CS program in which you attend(ed) handle group projects? I think that most Universities have group projects and at some point or another they have to use the tools. Or do you mean open source tools. At the University I attended, way back we were using RCS, then CVS and then subversion. I am fortunate to have went to a CS department which emphasized the use of open source tools and right now I believe the students use Linux and check in their projects using a tool which would allow them to submit a version of their project to be graded and encourage incremental development just as long as they flag that version as their final one. Good memories U of A.

      --
      Society use your Sciences
    21. Re:Version control by Anonymous Coward · · Score: 0

      Accepted. Slashdot does need an edit command.

      Complete with version control on the comments. How very meta-topical.

    22. Re:Version control by Quinn_Inuit · · Score: 1

      Parent is dead on. How can they not be taught how to use version control software? You'd think that would be the one thing they'd all have to be familiar with no matter where they went.

      --

      Stop learning! Only you can prevent esoterrorism.
    23. Re:Version control by Anonymous Coward · · Score: 0

      My advisor does exactly this. He used to use CVS but has since switched to git. It's extremely convenient for graders and students compared to using some hacked up web submission form or (worse) e-mailing the project.

      And as one of the people who responded to your post suggested, he enforces the due date by checking out whatever version was current when the due date rolled around.

      I agree wholeheartedly that every programming course should be doing submissions this way.

    24. Re:Version control by wrook · · Score: 1

      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 the development plans of a bridge and certify that it is safe, there is nothing in the study of software engineering that allows someone to accomplish the same task for software.

      What we need is a separate discipline which is not called "science" and not called "engineering". I recommend that it be called the trade of programming. Programmers should learn programming the same way that carpenters learn their trade. That is where a young apprentice programmer should learn about things like version control (and how to use their editor, etc, etc...)

    25. Re:Version control by illtud · · Score: 1

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

      You should give them a tag to copy to (v1.0rc?) and try to check that out for the due date, if there isn't one, check out the trunk for the due date, but mark them down for that. Please teach them to use trunk/branch/tag.

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

  8. Wow... by froggymana · · Score: 1

    I'm 17 years old and I even know what IRC is, SVN, Git, and CVS... I've used bug trackers before, filed bug reports and I've compiled (and even cross-compiled...) projects from source... oh and I read slashdot.

    --
    "To prevent this day from getting any worse, I'll just read ERROR as GOOD THING" 1GJU8xLuDKDxEs4KLf8fAGyptoDsqvEsBT
    1. 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!

    2. Re:Wow... by froggymana · · Score: 1

      almost forgot... I even use Debian on my main computer for everything except a few games that run in Wine. For those games I boot into windows..

      --
      "To prevent this day from getting any worse, I'll just read ERROR as GOOD THING" 1GJU8xLuDKDxEs4KLf8fAGyptoDsqvEsBT
    3. 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.

    4. Re:Wow... by TooMuchToDo · · Score: 1

      Excellent. Those of us who both write and use open source can appreciate that. You ready for GSOC 2011?

      http://code.google.com/soc/

    5. Re:Wow... by dave562 · · Score: 1

      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.

    6. Re:Wow... by froggymana · · Score: 1

      It does seem sad... Here I thought I was rather behind on things in the computer world for my age, but I guess I'm really not.

      Also, I'm not sure if knowing what about IRC is a good thing for me as I tend to spend 5-6 hours on it a day, but its better than facebook I suppose...

      --
      "To prevent this day from getting any worse, I'll just read ERROR as GOOD THING" 1GJU8xLuDKDxEs4KLf8fAGyptoDsqvEsBT
    7. Re:Wow... by spiffmastercow · · Score: 1

      Don't pat yourself on the back too hard, you'll damage your spine.

    8. Re:Wow... by froggymana · · Score: 1

      Then I can focus on even more important things like mastering the Ballmer Peak!

      --
      "To prevent this day from getting any worse, I'll just read ERROR as GOOD THING" 1GJU8xLuDKDxEs4KLf8fAGyptoDsqvEsBT
    9. Re:Wow... by Have+Brain+Will+Rent · · Score: 1

      That's how it worked for me :)

      --
      The tyrant will always find a pretext for his tyranny - Aesop
    10. Re:Wow... by HaZardman27 · · Score: 1

      You must be the coolest guy in the world.

      --
      Apparently wizard is not a legitimate career path, so I chose programmer instead.
    11. 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!
    12. 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
    13. Re:Wow... by Culture20 · · Score: 1

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

      Not unless he lives in India.

    14. Re:Wow... by Anonymous Coward · · Score: 0

      I even use Debian on my main computer for everything except a few games that run in Wine

      Wow, and you managed to turn Wine into a standalone OS? Nice!

      How about learning to organize your thoughts and then express then in written English in such a manner so as to not embarrass yourself?

    15. Re:Wow... by phek · · Score: 1

      my room mate didn't know anything about computers then went to some trade school for game programming when he was like 18-19 and is now a developer for video games. No idea how good of a developer he is but you don't need that much of a head start. When I was 18 I showed a friend what an IP address was, then another friend showed him some more stuff. He went on within a few years to be a great unix sys admin and eventually a CTO and my boss. I guess that's what you get when you spend your teens learning to socialize instead of sitting in front of a computer.

  9. Total noobs enthusiastically spent the day on IRC by santax · · Score: 1

    Not so enthusiastically anymore now are you?

  10. As an open-source software developer, let me say by Anonymous Coward · · Score: 0, Flamebait

    As an open-source software developer, let me say: FUCK YOU BUDDY.

    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.

    Seriously: none of these tools are a secret, and any software the students are USING has a pretty clear process for contributing. The only way they can be this clueless is if they're totally unprepared to actually contribute.

  11. Real World vs Classroom by Cloudgatherer · · Score: 1

    I attended a college where the most popular professor of CS there taught part time and ran his own software business on the side. Of course, it helped that he taught some of the advance courses and was able to cherry pick the better students for part time positions. As a result, his classes and teaching style was real world oriented in terms of producing quality code, but the soft skills of a) delving into an existing code base b) using a SCCS (source code control system) or c) bug tracking systems were completely lacking in all my time spent doing CS.

    I ended up learning the topics in this article on the job, and various companies are going to approach these systems differently. How an organization deals with some of these issues can reveal what the mindset and culture are handled in a company. 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. So it is no surprise to me that while interesting, the skills learned may be quickly lost as the day to day college student doing CS work will write one program for one assignment before moving on to write another program for a completely different assignment.

    1. Re:Real World vs Classroom by Hiro2k · · Score: 1

      That's a problem with the curriculum then which is easily solved by assigning group projects that are due at the end of the term.

    2. Re:Real World vs Classroom by vlm · · Score: 1

      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"

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  12. Re:UCOSP - Undergraduate Capstone Open Source Proj by skids · · Score: 1

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

  13. What a surprise by PapaPrinny · · Score: 1

    Computer science students who want to learn how to be programmers? Has the world gone mad??? No, it seems you have discovered what every computer science student wants: To become actual programmers. If only more CS professors possessed such insight.

    1. Re:What a surprise by magnusrex1280 · · Score: 1

      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.

    2. Re:What a surprise by daedae · · Score: 1

      +1: The class I had in undergrad that I was most excited about was the one that had a series of 7 projects, which cumulatively were 70% of the grade. There was a small midterm and smaller final, but the main point was to get our hands dirty and write a lot. On the other hand, there is something to be said I think for the basics that you get in lower-level courses, and most people in the lower-level courses aren't going to do well if you throw lots of code at them. (Yeah, yeah, use that to select out the bad students so only the good coders even make it to the upper-level classes.)

    3. Re:What a surprise by Lanteran · · Score: 1

      No. In my experience, most CS students now are part of the 'digital generation' and want to get an easy A or an easy degree. Not that this (introduction to the world of FLOSS) is a bad thing, quite the opposite. But still, for a perspective, most of the people in a web design class I'm in use Internet explorer and design all sites with WYSIWYGs.

      --
      "People don't want to learn linux" hasn't been a valid excuse since '03.
    4. Re:What a surprise by Culture20 · · Score: 1

      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.

    5. Re:What a surprise by gagol · · Score: 1

      I tried those editors, but got back to "notepad style" as it was much more quick to make the website do exactly what I want. Easy and complicated, or hard and simple... Example : rollover in dreamweaver will create huge script libraries, preload functions, etc. I use CSS and one image with the two states in it. Instantaneous, works with noscript, and take one line of CSS...

      --
      Tomorrow is another day...
  14. Correction by schnikies79 · · Score: 1, Insightful

    If by "world" you mean "religion", then okay.

    There is nothing wrong with open source, but the dogma turns a lot of people off, including myself.

    --
    Gone!
    1. Re:Correction by Anonymous Coward · · Score: 0

      Exactly, version control and automated builds are not exclusive concepts to FOSS. That the author relates them as such tells me a lot about what kind of person he is. After having read the article these people seem very much like the same evangelist types that turned me off OSS when I was in college over a decade ago.

      Dazzle me with tools that work but don't force me into your bag (man).

  15. great meeting you at the summit by LetterRip · · Score: 1

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

    1. Re:great meeting you at the summit by paulproteus · · Score: 1

      :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.)

      --
      |/usr/games/fortune
  16. In my experiEnce... by Chapter80 · · Score: 1

    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!)

    1. Re:In my experiEnce... by Anonymous Coward · · Score: 0

      you don't know how to use IRC, git, or a bugtracker? Or do you want to have sex with college kids?

    2. Re:In my experiEnce... by Anonymous Coward · · Score: 0

      He wants to cyber the "hot college girls" on IRC, duh.

    3. Re:In my experience... by Have+Brain+Will+Rent · · Score: 1

      I think it really all needs to be in there whether it be a CS degree of a "Software Engineering" degree. Really, every software developer should understand how the hardware works and how to program it at a low level even if it just an idealized machine run as a simulator, what computational complexity is and have at least some idea of what P and NP are about, basic calculus (just 'cause), linear algebra etc., logic (formal, theorem proving & hardware), and so on and so on. One of the very first CS courses I took had us programming a universal Turing machine emulator... actually very educational in general, then it turned out to make it easier to understand functional languages like Scheme and really set the stage for computational complexity in later years.

      In 4 years it shouldn't be hard to get all that in along with programming languages, software design, graphics, AI, OS, simulation, system design, compilers and the rest. 4 years is a very long time.

      --
      The tyrant will always find a pretext for his tyranny - Aesop
  17. Orthogonal by Xtifr · · Score: 1

    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.

  18. 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
    1. Re:Not Open Source Specific by vlm · · Score: 1

      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.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    2. Re:Not Open Source Specific by Luke+has+no+name · · Score: 1

      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 tools are in college.

    3. Re:Not Open Source Specific by Kjella · · Score: 1

      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 code, parsing the logs and how everything hangs together. Many OSS projects aren't willing to make that effort, if you're not able to jump in and contribute from day one you go largely ignored, while nobody will let a new employee sit there burning money in the same way. If workshops like these will keep you from having to ask the most n00bish questions and getting RTFMs slapped in your face, it's good for everyone.

      --
      Live today, because you never know what tomorrow brings
  19. Re:As an open-source software developer, let me sa by Anonymous Coward · · Score: 0
    Many students do not have an idea of what is even going on out there. This is a chance to at least help them make informed decisions to see if they might want to contribute some day. They will still post stupid questions but will at least know the context for the answers assuming it is not just "FUCK YOU AND THE HORSE YOU RODE IN ON." Students need to know how to share code and the process for how it is done. There is no place in the curriculum for these basic skills in most institutions, and this is a valuable experience to at least let students know where to start on google.

    Now that I think about it, they should probably have a section on dealing with assholes on the internet, but that is probably a basic life skill now days.

  20. So what you're saying is.... by fishexe · · Score: 1

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

    --
    "I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
  21. Sad by Microlith · · Score: 0, Offtopic

    I'm disappointed that such an arrogant and ignorant post got modded up after I gave up my downmod to post elsewhere.

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

  23. And introduction to "how to live under a bridge" by Anonymous Coward · · Score: 0

    And introduction to "how to live under a bridge" or "how to ask for money in the street"

  24. waste of time, learn to use email by Anonymous Coward · · Score: 0

    US CS should spend more time learning to describe project requirements in e-mails, and learn multiple languages. That way the real programmers in China and India will be able to complete the project quicker.

  25. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  26. Re:UCOSP - Undergraduate Capstone Open Source Proj by Vandilzer · · Score: 1

    It already is, 3erd semester, running and growing...

  27. Hmmm by Anonymous Coward · · Score: 0

    I'd say if you're studying Computer Science you should be a big enough nerd to have already encountered those things, no?

  28. 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
    1. Re:If you want to help run a similar event... by SashaMan · · Score: 1

      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/ . 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 cool new features (#1 on my list is a port to logback).

      This could be a great project for a college student wanting to get into open source. The library itself is not too big, I think it's easy to understand the design, and there are a ready list of features that users have requested. Plus, if you do a good job on it, while I can't 100% guarantee my company will hire you, I can 100% guarantee will give you an interview, and there is no better thing on your resume than showing that you can actually CODE a real project.

  29. 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
  30. Re:In my experiance(sic)... by Anonymous Coward · · Score: 0

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

    Many working programmers (and ./ posters) are unable to write/spell in English!

  31. Quite True. Can confirm by personal account. by ALoopingIcon · · Score: 1

    Yes it is true. A personal experience below.

    Using real open source projects in the context of a University course can be a quite successful experience. Both from the didactic point of view and from a software production perspective.
    Five years ago I decided to involve my students of the advanced computer graphics course at the Pisa University in the collective writing of an extensible mesh processing system that we called MeshLab with a plugin based architecture that allowed a easy to be managed compartmental development. Students get very involved and, beside the computer graphics hard core topics of the course, they learned a lot in term of collaborative development, ethics of sw development, open source licenses. At the end of that course a working system was successfully distributed under a GPL.
    Since then, every year, I have repeated this approach extending it, and with the helps of tens and tens of willing students the system evolved into a serious complex mesh processing system, GPL'd, multiplatform, included in ubuntu and that is used worldwide by ten of thousands of users in academic and commercial environments.
    I found that the knowledge of participating to the development of a **real** system gives the students a really strong motivation to give their best. The fact that their contribs will be released publicly with their name linked to the commits and listed in the official developer page was a strong incentive to do not cheat. For most of them it was the first time that they were making something real (not only exercises) something with a purpose that was quite different from the standard "get the score" approach. Many of the students continued to maintain their portion of code well beyond the course terms (some even after graduating).

    I cannot but thanks my students for the dedication that they have shown in the projects.
    Just google for MeshLab for more details of it.
    P.

  32. The one thing missing by DevConcepts · · Score: 1

    Would seen to be the assumed and inherent responsibility with regards to the use of open source (FOSS). Contribution (Not specifically money, but it helps) to the open source community as a whole, by users just want free with no strings and full (What do ya mean support is only email and you will get back to me when you can! I wont be bothered to read anything and can't figure out how to do something simple). Adding bugs that are found to trackers, maybe even fixing the code if you can do it. Helping in forums with the knowledge that you have. Promoting the use of open source and the responsibility that follows. It would seem that "most" want everything for free and on a platter waiting for them without the contribution part. I have been there in the past and I can see the error of my ways. Sometimes the contribution can be in the most unlikely ways.

    An author I have followed (All of his books are released in digital form for free under CC) is self publishing a book (Dead tree, limited edition) that is a collection of past works and includes all the digital files for the works. E books, audio books, whatever is avaiable for the contents, all licensed under CC. He was looking for some cheap hardware to clone the SD cards that are included in (Yes attached in the cover) and I wound up recomending some hardware and writing the software to perform the cloning. The code is being wrapped up, along with the program and install instructions, for all to take for free later this month once the website is updated for my FOSS contributions, as small and somewhat insignifiant as they are. We are only as free as we help with the free.

    1. Re:The one thing missing by paulproteus · · Score: 1

      It's actually baked into the curriculum -- it's not missing. If you read the announcement website, 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.

      --
      |/usr/games/fortune
    2. Re:The one thing missing by DevConcepts · · Score: 1

      Sorry, Typical /.er, didn't read TFA, but most was meant at most people I have met using FOSS, not your situation in particular.

      Looks like excellent work your doing!

  33. Continuous Integration by Anonymous Coward · · Score: 0

    You should consider a workshop on the wonderful of Continuous Integration.

    We use this a lot for our Agile projects so that we can automate our build and test when a team member checks in new code to our source control.

  34. Not all educators are stuck in 1976 by Knowbuddy · · Score: 1

    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.

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

    2. Re:Not all educators are stuck in 1976 by Knowbuddy · · Score: 1

      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 via Github.com and Google Docs, make project timelines, and gather requirements.

      But instead of sending our students home to write papers, we have them in labs 20+ hours per week writing code and building documentation.

      Let me ask you this: when was the last time you had to write a linked list? Or worry about malloc and free? Just because it was taught in a CS degree doesn't mean it's useful for the vast majority of developers.

    3. Re:Not all educators are stuck in 1976 by int69h · · Score: 1

      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.

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

    5. Re:Not all educators are stuck in 1976 by Anonymous Coward · · Score: 0

      My school has C, Assembly Language, Computer Architecture, and Data Structures as the first four required courses, and it has been that way for the last 30 years. These courses teach you what Computer Science is about. Everything else (Web, Visual languages, Learning version control etc.) are just tools to do your job better, in the business world.

    6. Re:Not all educators are stuck in 1976 by T.E.D. · · Score: 1

      Well, working backward (I got my BS in Computer Science in 89), only one of the things mentioned (mySQL) wouldn't have looked totally alien to me after I graduated 21 years ago. "Web Design & Development" didn't even exist then.

      If my degree had been nothing more than learning 1989 - tech tools and training to do 1989 jobs, it would be pretty damned worthless right now. However, all that theory I learned about data structures, analysis of algorithms, good design principles, etc. is still in use today.

  35. It's not computer science by Anonymous Coward · · Score: 0

    I was a CS major and after I got my first job someone showed me a surce control system and took 30 minutes to go over the basics and branching/merging. Done. I didn't need a 3 month class to teach me how.

  36. Just UPenn students? by nukem996 · · Score: 1

    Across the street at Drexel University almost all computer science classes require that class assignments run on the universities Ubuntu tux cluster, and comes with make files. Many are now requiring some using version control so instead of "handing in" an assignment we just e-mail the teacher a link to a git or svn repository that they can access. Most students run or at least have in a VM or separate partition Linux running and know how to install and maintain it.

    I don't mean to boast about Drexel but are you seriously telling me few students are UPenn can even run make?

  37. The difference isn't about what's learned by francium+de+neobie · · Score: 1

    SCM, bug trackers are just little details. You can always explain them to students in a traditional lecture.

    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. You make something, or help making something, and people use it. You feel happier and you're naturally motivated by your users to improve your coding skills to make your next release better. That's a positive reinforcement cycle (usually), and I think it's much easier to get people to become good at coding and project management like that.

  38. Seneca CDOT by Anonymous Coward · · Score: 0
  39. Sign me up by glittermage · · Score: 1

    Any of those workshops around here I'd sign up!