This looks like an excellent class, and fills a very important educational niche. We taught something vaguely similar a couple of years ago geared towards molecular biologists and clinical researchers, and it turned out to be extremely popular. Most of our students had less than zero programming experience, and pretty much all of them were able to put what they learned to practical use. The point of the class was teach them just enough, about enough different things, to get a feel for what sorts of problems could be easily tackled programmatically.
For example, one student realized part-way through the class that she could write a script to automatically process the lengthy and complex output of a particular laboratory instrument instead of doing it by hand, and by the end of the class was able to not only write that script but modify and extend it to deal with a slightly different model of the same instrument. Other students figured out that Python was easier to use than SAS for some types of data reformatting and analysis. Nothing fancy, just the sort of day-to-day hacking that we all take completely for granted- but it's incredibly useful for working scientists to be able to do that sort of thing for themselves, and courses like this one give them a real leg up.
It looks like the UNH course had some really great content- seriously, check it out or send a link to your scientist buddies.
Cool! I love how universities are acknowledging that there is a fast-growing "long-tail" of programmers who are scientists and data analysts, and that they need different sorts of programming training than CS majors ...
I'm a student at MIT, and we would never see a course like this in the course catalog. I still haven't decided whether this is a good or bad thing, but I believe we need to find a middle ground: Do we take a theoretical approach or an implementation approach?
I've been unimpressed by MIT's ability to teach "coding." In fact, no classes actually teach you the art; you find out by experimentation in problem sets. However, as a result, you adopt a lot of bad habits that will make you less marketable to any company; you're code probably sucks.
I know this is a bit off-topic, but I applaud UNH for teaching such a class. It is important to teach the "tools" and the "technology" rather than the theory; at least to the point so you know what applications are out there to help.
1.00, 6.00, IAP Matlab, IAP Python, I'm sure there are more, but those were just the options I considered when I was starting out (I went with 6.00).
Sure the catalog is very coding light, but they assume you can figure it out on your own if you need it or can apply what you've been taught in 6.00/1.00 to many scenarios and learn from that basis.
These classes are not required in EECS, but required for the other engineering majors (you can, of course, substitute 6.01 if you are ambitious).
"...but they assume you can figure it out on your own if you need it or can apply what you've been taught in 6.00/1.00 to many scenarios and learn from that basis."
But that is the problem. Most/all MIT students teach themselves how to code, but that doesn't mean their code is clean and legible. Many times, the code quality is very bad because they develop bad habits in the process of teaching themselves. MIT needs an actual course about coding.... maybe a required HASS about how it should be considered an artwork.
This is pretty cool. As a mathematician, I feel like they should get to R instead of, say, how to use IRC or emacs, but I'm sure that's just my bias.
When I was an undergrad, every 3rd year student had to take a class that involved write a 20-page position paper. Those of us in the hard sciences were required publish in LaTeX, which drove the English professors running the class crazy. It was good practice, though.
The closest our school came to anything like this was informal seminars the math department would run, with seniors and grad students tutoring sophomores on how to use R, MATLAB, LaTeX, and similar.
We even did ALP for the actuaries among us. I love the language, but trying to teach it is another story.
This looks like a very cool class. I did a masters in ecology, and I got an R-based stats class that was not enough stats to get me up to speed on stats or enough coding/R for me to do much of anything. There was a lot of cursing and naming things 'fuckihatemylife'.
Maybe I'll try and revisit this on my own. I run into so many situations where I KNOW there has to be an easier and less-human-error-prone way to have a computer do data manipulation for me, but I don't know enough to actually put it together.
I went to UNH for my undergraduate program followed by MIT for my masters and I totally agree that the middle ground between the theoretical approach and the implementation approach is the goal, however, I believe that BOTH need to be taught for the full experience.
As a working man now, I feel that the implementation approach is more beneficial for getting a job done, but as an entrepreneur I can say that the theory is what really gets you steps ahead of your competition.
For example, one student realized part-way through the class that she could write a script to automatically process the lengthy and complex output of a particular laboratory instrument instead of doing it by hand, and by the end of the class was able to not only write that script but modify and extend it to deal with a slightly different model of the same instrument. Other students figured out that Python was easier to use than SAS for some types of data reformatting and analysis. Nothing fancy, just the sort of day-to-day hacking that we all take completely for granted- but it's incredibly useful for working scientists to be able to do that sort of thing for themselves, and courses like this one give them a real leg up.
It looks like the UNH course had some really great content- seriously, check it out or send a link to your scientist buddies.