Greets,
There's a Coursera MOOC (Massively Open Online Course) which started this
past Monday; it looks like Logan and I are both going to try it out, and
perhaps some others might find it interesting.
https://www.coursera.org/course/hwswinterface
The Hardware/Software Interface
Gaetano Borriello and Luis Ceze, University of Washington
Examines key computational abstraction levels below modern high-level
languages. From Java/C to assembly programming, to basic processor and
system organization.
The thing which caught my eye was the book which is used for supplemental
reading:
http://www.amazon.com/Computer-Systems-Programmers-Perspective-2nd/dp/0136108040
Computer Systems: A Programmer's Perspective (2nd Edition)
Randal E. Bryant, David R. O'Hallaron
That's a book which has been a candidate for the Lucy Book Club -- but at over
1000 pages, it's a big committment. In constrast, the Coursera course is 8
weeks and done. If we want to continue on with the book afterwards, we'll
have that option.
We'll presumably be meeting weekly, just as the Book Club has since we started
last year.
To take the course, apparently knowledge of C is helpful but not a required
prerequisite -- the professors mention that they ordinarily teach it to first
year comp sci undergrads who often know Java but not C. Given the diverse
backgrounds of people who are interested in Lucy development and are
subscribed to this list, it's only natural that some amount of the material
will be review, but nevertheless I expect that for many of us it will fill in
some gaps. Personally, I'm looking forward to beefing up my x86 assembler
chops and increasing my familiarity with low-level processor instruction sets
(which is also a focus of the book).
The one catch is that the course has already started and the first assignment
is due this coming Monday April 22 at 5pm PDT. It's cake, but you have to set
up a VM which is a bit of a chore. (Tip: if you're using a Mac and you don't
own VMWare Fusion, see this thread for how to use VirtualBox instead:
<https://class.coursera.org/hwswinterface-001/forum/thread?thread_id=22>.)
If you haven't yet tried a MOOC, they are a great resource but if you take
them in a group setting like the Lucy Book Club it's easier to sustain
momentum. FWIW, I'm currently finishing up another Coursera MOOC and I've
been pretty happy with the experience:
https://www.coursera.org/course/posa
Pattern-Oriented Software Architectures for Concurrent and Networked
Software
Douglas C. Schmidt, Vanderbilt University
In this course we will learn how to apply patterns, pattern languages, and
frameworks to alleviate the complexity of developing concurrent and
networked software.
Coursera MOOCs are free, and once you're registered, enrolling in any given
course is two clicks. There's nothing lost by signing up for a course and
then not completing it. For better or worse. ;)
Marvin Humphrey