I am a jr. CS professor working in an applied field (computational linguistics). I have found myself repeatedly giving the same impromptu lectures to RAs and graduate students concerning various UNIX tools. This is a clear inefficiency (I could have planned the lectures ahead of time, with nice illustrative examples, and given it just once). The scarier thing (for me) was that I occasionally observe students (as well as many open-source contributors) doing something in an enormously complex way because they have not yet _discovered_ tools like `tee` or `cut` (it is hard to know just how much time is wasted in this fashion).
Consequently, a colleague and I created a course entitled Research Programming, which is taken by all our masters students, as well as some RAs and Ph.D. students. At first, some of my other colleagues were skeptical; they felt that students should already know this material (true in a normative sense, perhaps, but contrary to fact). However, the "economy" argument appears to have won them over and the class is going well thus far.
Personally, I don't agree with Guo's assertion that command-line skullduggery is intellectually unstimulating. But it's unfortunate when it gets between you and scientific (or business) progress, and as an educator I hope to minimize that.
The only thing I think would make it even better would be if we could make it an interactive course online, since so much of these details about shells, commands, etc. are things which happen in a computer context anyway. If several of the major could collaborate on a common research-programming tutorial and release it openly, it would be a huge win for more fields than just computational linguistics.
I've seen some related links to put shells in the browser, so it's more than just an academic speculation; I think one could put the site together with under a thousand hours of programmer time at this point. Hosting costs might be a concern, but application development is probably not too difficult.
Good idea, I'd love to enable online learning for this type of material. In the meantime, I'm putting handouts for the first unit ("UNIX") online, and the second unit ("Python") will use iPython notebooks. There may be Coursera (etc.) offerings that cover similar material, but I haven't looked into it yet.
This sounds like a gap in the curriculum that could be filled by grad students. I'm not in CS, but I know that the bioinformatics students have organized a course that covers some basics of the unix command line tools, probably because data conversion is a big part of most projects.
There's also "Best practices for scientific computing" (http://arxiv.org/abs/1210.0530) that covers some of the same ground, and physics departments usually have a scientific computing course as well.
Also, if it's really a one-off use of something, the department IT person could probably do it for you.
The curriculum goes far beyond the knowledge of most IT professionals (not to mention our current graduate students), as it is focused on research; IT pros don't normally know much about, say, Python libraries for machine learning or signal processing.
They won't know how to use specific libraries, but they can sometimes help with things like how to install iPython on a Mac or Windows machine.
It does seem like some of this would make a good online course. There's some good stuff here http://faculty.washington.edu/rjl/classes/am583s2013/notes/i... which goes with the "High performance scientific computing" Coursera course, and of course there's the Software Carpentry site.
Consequently, a colleague and I created a course entitled Research Programming, which is taken by all our masters students, as well as some RAs and Ph.D. students. At first, some of my other colleagues were skeptical; they felt that students should already know this material (true in a normative sense, perhaps, but contrary to fact). However, the "economy" argument appears to have won them over and the class is going well thus far.
Personally, I don't agree with Guo's assertion that command-line skullduggery is intellectually unstimulating. But it's unfortunate when it gets between you and scientific (or business) progress, and as an educator I hope to minimize that.