Course Title: Object Oriented Programming with Java, parts I & II
Provider: University of Helisinki
Effort: 2 modules, 6 weeks each (by ECTS reckoning, as many as 300 hours)
Completion awards: Free certificates of completion for each module
About the course:
In short: highly recommended.
This is not a computer science course, but it doesn’t claim it is. It really is two (nearly) completely different courses. The first one is about learning Java syntax and semantics, and the second one is about object-oriented programming in general, and some intermediate Java-specific techniques, as well.
It’s also not a MOOC, making their URL ironic. It’s online, and it’s open, and a lot of people take it, but it’s not Massive Open Online. It is an online textbook, and a very cleverly written code testing system. You’re on your own. Allegedly there’s someone to answer your questions in a few hours on IRC, but IRC users won’t really need the help, and answers to emails might take a few days, but again, you’ll almost certainly be past that “week” by the time you get an answer. There’s no online community, no forums, no helping each other. It’s an online textbook, an IDE, and nothing else.
(As there’s no video of anybody reading the book or walking your through its examples, it strongly parallels Open University modules without the support. If you’re looking for the perfect module to taste what online study is like, this is it. Imagine this course, but eight months long instead of a few weeks.)
Part I is a tutorial for basic Java usage, and is brilliant. It’s quick, it’s informative, it’s very accessible. It took me a week in my spare time, and was blown away at how quickly I picked up the skills with how they were taught.
Part II has a massive jump in difficulty, especially the week-ending challenges, where you’re welcome to use any programming techniques you care to in order to solve the problem, so long as its behaviour is exactly correct. It highlights what I really love about programming: There’s only ever one right answer, but there are countless ways to get there.
Being presented by the University of Helsinki, it’s an English course, and the vast majority of the content is very well written. There are some peculiarities of language, however. For example, the course keeps referring to built-in classes as made-up classes, which is … pretty much the antithesis of built-in. So there are a very few minor confusions.
The certificates you get at the end are very clear about what has been studied, and even states that had it been accompanied by the university’s overseen exams, each would be worth 5 ECTS. For the 10 credits between them, that’s 20 OU credits, and a little less than TM111 or TM112. I’m guessing it’s not quite that impressive, but it does highlight that it’s the exact course their students take, and it’s definitely fit for purpose.
I’d like to thank Newbie from a comments page for pointing me in the direction of these modules. They’re everything the Microsoft course wasn’t. It’s not perfect. It doesn’t include recursion, doesn’t discuss why one method is preferable to another, and states that abstraction is very important, but doesn’t teach any actual techniques for it. Still, it’s a coding course, not a computer science one.
A highlight for me was using both NetBeans and IntelliJ IDEA to write the code and interface it with their testing system. It’s a slick system, and couldn’t really be better. It’s by far the best automated evaluation I’ve ever seen of checking code, including the one from CS50. (Also, I enjoy both NetBeans and IntelliJ, and their ability to both prompt and automate things, but found myself working about twice as fast in IntelliJ. If you have a student email address, do yourself a favour and get a free license for the full version. If you don’t, at least check ot the community version.)