> in the 21st century programming proficiency on its own is neither representative of the skills that the marketplace requires from computing graduates, nor does it offer the strong vocational qualifications it once did. Universities are not vocational education facilities though. Time a student has in university is better spent on getting deeper understanding of things that are hard to pick up in the workplace, and…
Why Computing Students Should Contribute to Open Source Software Projects
121–130 of 179 posts
Re: Why Computing Students Should Contribute to Open Source Software Projects
#122> in the 21st century programming proficiency on its own is neither representative of the skills that the marketplace requires from computing graduates, nor does it offer the strong vocational qualifications it once did. Universities are not vocational education facilities though. Time a student has in university is better spent on getting deeper understanding of things that are hard to pick up in the workplace, and…
"Universities are not vocational education facilities though." Their prices say they are. There is no way they could be as expensive as they are, except that they are capturing a lot of the value of the vocational education they are expected to provide. Their prices speak louder than high-falutin' principles. I'll permit University's their "we're not vocational training facilities" argument when their prices come bac…
Re: Why Computing Students Should Contribute to Open Source Software Projects
#123How would this work? How many project maintainers would sign on for this? "Hey, can you merge this PR? I'll fail if you don't review and merge this by tomorrow morning. I'm sorry I left it until the last minute but I had a bunch of work do to in another class and couldn't get to it until today." "Hey, I ran everything through flake and black and spent the past 72 hours getting my test coverage (and the coverage of th…
Re: Why Computing Students Should Contribute to Open Source Software Projects
#124As a relatively inexperienced undergrad with some basic knowledge in C and python, can anyone recommend how I should go about to start getting involved in any project? I dunno how to work alongside anyone on anything useful or "real" and all I have done is making line drawing algorithms, sorting algorithms, avl trees and some basic games and simulations in python. I am kind of interested in lisp and functional progra…
Re: Why Computing Students Should Contribute to Open Source Software Projects
#125As a relatively inexperienced undergrad with some basic knowledge in C and python, can anyone recommend how I should go about to start getting involved in any project? I dunno how to work alongside anyone on anything useful or "real" and all I have done is making line drawing algorithms, sorting algorithms, avl trees and some basic games and simulations in python. I am kind of interested in lisp and functional progra…
* Send nice bug reports, with foolproof reproduction steps. Err on the side of too foolproof. People underestimate the importance of bug reports, but they are very helpful. Try to see how they fixed it, so perhaps next time you understand where the error is and perhaps fix it. (Sometimes navigating the project structure is hard, and it's difficult to even find the file where the error is.)
* Send PR fixing typos. Typos in the docs. Typos in comments. Typos in error messages. The nice part is that it's an easy fix, it's probably correct, and it has a high chance of being approved. (English has a few spelling variants, check that it's not just a en-uk vs en-us difference.)
It's also helpful because you must learn how to clone the project, use github (or gitlab, or the mailing list, or whatever system they are using), and how to interact with the maintainers.
* If you have a feature you want and can implement it, it's a nice PR. Start with easy and short features. Don't spend more than one or two days building it (4 to 8 hours, or even less). Nobody guaranties that it's correct, that it's in the vision of the maintainer, that the maintainer is not a moron. If it's not merged, you've only lost one or two days. If the maintainer likes the idea but want a different implementation, you've only lost one or two days.
Some people recommend to ask in the mailing list or an issue in github/gitlab if the maintainer likes the idea. My English is not so good, and some features are difficult to explain. So I prefer the alternative method of just writing the PR, but only short PR that need one of two days of work.
Be prepare to fix your PR. There are implicit local rules about the code, like tabs vs spaces, trailing spaces, indentation, ... try to follow the local conventions. Also, you may need to add some new test for the new feature or a regression test, and other testing. So expect that sometime you will need additional work to polish the PR.
* For big features, discuss them with the maintainer first. Again, nobody guaranties that it's correct, that it's in the vision of the maintainer, that the maintainer is not a moron.
Re: Why Computing Students Should Contribute to Open Source Software Projects
#126How would this work? How many project maintainers would sign on for this? "Hey, can you merge this PR? I'll fail if you don't review and merge this by tomorrow morning. I'm sorry I left it until the last minute but I had a bunch of work do to in another class and couldn't get to it until today." "Hey, I ran everything through flake and black and spent the past 72 hours getting my test coverage (and the coverage of th…
Yeah I think this is a huge issue. It might be good for the students to get this experience, but it would be horrible for the projects. People working on a project to check a box is not going to lead to good outcomes. A better option would be to require students to work on projects which depend on eachother, and practice pull-requests on eachother's student projects.
The instructor forks a real open source project, with an existing license, contributor guide, etc. The instructor then picks an issue from the issue tracker with a known solution, but no PR yet.
The assignment is to submit a PR to the instructor's fork of the project that fixes the issue, and the PR itself is the final project submission. Points can be deducted, according to a rubric, for failing to pass the test suite, failing to follow contribution guidelines, etc.
Choosing an issue that has not been publicly resolved in code should prevent obvious cases of plagiarism.
I'm not sure if this could scale up to a big lecture-type course with TA is doing the grading, but I think it could be a fun assignment.
The risk of course is that there is some unforeseen problem preventing the "known" solution from being valid. But maybe that in and of itself is part of learning exercise...
Re: Why Computing Students Should Contribute to Open Source Software Projects
#127Earlier quoted context omitted.
> Universities are not vocational education facilities though I see this argument a lot; universities would like to not be vocational education, but unavoidably they are. Certainly for all the older class of professional job: engineer, actuary, lawyer, doctor. For those you absolutely have to go to university to even begin your vocational training. Programming is different in that the degree is less of a hard require…
"A formal apprenticeship model would be great for programming, but there's a lot of obstacles to that." Is there? The standard for the locality I live in, around the University of Michigan, is that students seem to be trying to pick up internships every summer now, including their first summer after being a freshman. It also not uncommon to see people who graduated with several internships on their resume. When I gra…
Re: Why Computing Students Should Contribute to Open Source Software Projects
#128Software design and implementation is FUN. Now I know not everyone agrees, but a self contained game etc (no it does not need to be reusable package that are 'useful for other people/future'!) is a very helpful experience for software implementation.
Re: Why Computing Students Should Contribute to Open Source Software Projects
#129Earlier quoted context omitted.
"Universities are not vocational education facilities though." Their prices say they are. There is no way they could be as expensive as they are, except that they are capturing a lot of the value of the vocational education they are expected to provide. Their prices speak louder than high-falutin' principles. I'll permit University's their "we're not vocational training facilities" argument when their prices come bac…
This is more of a US problem. In the EU much of higher education is very cheap or free. Some students even get paid a small amount of money and have access to loans with low interested and great terms so that it's easier to focus on school and everyone is on a more even playing field.
In US Engineering is framed as a very practical, "how-to" oriented, to the point that people can be surprised to learn that engineers do research and publish papers.
Re: Why Computing Students Should Contribute to Open Source Software Projects
#130> in the 21st century programming proficiency on its own is neither representative of the skills that the marketplace requires from computing graduates, nor does it offer the strong vocational qualifications it once did. Universities are not vocational education facilities though. Time a student has in university is better spent on getting deeper understanding of things that are hard to pick up in the workplace, and…
I am surprised that more Computing departments haven't embraced Open Source. It seems like it would be a great way to introduce students to larger projects, and act as a great advertisement for their core areas of expertise. After all who hasn't heard of BSD, or X11.
It ought to be out there along the ASME's racing events where students design and build race cars. Why shouldn't Computing students design video or audio codecs, raspberry pies, or other things for real world experience?