Continuing my habit of posting before and after notes on my courses, after notes for Spring 2014.
CS621: Parallel and Distributed Computing/Zhang
As I said at the beginning, low hopes, signed up for the relevant topic and course of the form “CS 6xx.” Those low hopes were really borne out. Instruction consisted of going over slides made in the late 1990s and updated some time in the mid 2000’s which had various obvious signs of not really matching the current reality. We had a gap in class meetings due to instructor illness, and I got considerably more worrying about adequately covering material myself than when the class started meeting again. We only did three programs (in MPI + our choice of language), only one of which was nontrivial, a few written assignments, and one or two of problem-type assignments. The final was an paper on cloud computing. In our HPC-oriented parallel computing class. If it would have counted the same, I would have taken the EE-prefix parallel programming class and happily covered as much in the first half. At least it was easy, looks good, and puts some pad in the GPA.
CS541: Compiler Design/Finkel
The lectures were typically engaging, and the project sequence really did lead to a whole damn compiler (if you ignore that the JVM doesn’t really look much like a computer).
I’ve spent a lot of time fiddling with compiler tools, and am not terribly fond of the particular tools (Java, jflex, CUP) used in the class: I’m really not a fan of hiding the parse tree/abstract syntax tree/however you’re breaking your language into a DAG in an object hierarchy. The more straightforward tree data structure + walkers is way cleaner, and doesn’t result in having to sprinkle single-use setters/getters or hide copies of single-use data in accessible locations the way the OOP approach does. Then again, I’m not generally a big fan of OOP, so that shouldn’t come as a surprise. The CUP/Jflex interaction also served to further convince me that the PCCTS/ANTLR/Terrance Parr’s tools single-specification approach is far more right than the conventional split lexer/parser flex/yacc system (Speaking of which, ANTLR4 came out not long ago, it does things very differently with a listener paradigm instead of reducing to an AST, I’ve been fiddling with it).
Unfortunately, I got stubborn and failed ask for help on the later projects, which mean they were more than a little …ugly… because I tried to misuse some of the tools thinking they were more like the ones I knew, but that was entirely my fault and I still made it with a decent grade.
I noted in the course review (and this is NOT a typical opinion for me) that it would probably benefit from slightly smaller projects with a couple of more conventional exercise assignments. The fact that I’d had the material before was the only reason I could really do the first test’s parsing/FSA type material (and that was reflected by other student’s grades) which is clearly not ideal.
I’ll also note that I think the old C version of Fisher/LeBlanc “Crafting a Compiler” is a better text than the new Java one, and not just because Pearson is still refusing to replace my copy of the new one which is a widely-noted bad printing missing all lower case letters in the identifiers in the code examples…
GS630: Instructional Technology/Rice
I had an awful lot of fun in here. Arguing about tech is what I do for fun on the ‘net, the instructor clearly had the same habit, and I had drastically more tech background than most of the class, which made me more skeptical than many of my classmates who were blown away by various new whizzbangs. The phrase “that is just reinventing $TECHNOLOGY_FROM_THE_80s” was one of my standards. I learned quite a few interesting things – things that I consider to be painful, clumsy, awful solutions that are apparently “easy,” things I can’t imagine being easier that are apparently hard (Wikis and associated markup are apparently confusing to some people?), and weird metrics (better than 95% of UK students apparently have access to an iOS device?!), as well as trying out a couple neat new tools and learning more ed-tech jargon.
There is a lot of serious cool-aid drinking in education circles, and my two GS classes this semester demonstrated that nicely. GS630 was steeped in Universal Design philosophy, which I find to be generally pretentious (surely I know how to best accommodate my students needs…) and a bit misguided with it’s tendency to stamp out individual consideration (and related policy making). I consider the conversation with students who require accommodations at the beginning of the semester about how to make a class work for them absolutely doing it right, and, (perhaps barring massive lectures), something valuable that all students could do.
We also got a pretty good dose of Assertion-evidence design in there which I’m not hugely opposed to, but think can be largely boiled down to (without judgement because there is merit to the idea) “Forcing students to ask for the content that traditionally would have been on the slide.”
Reading (part of, still not finished, current top of stack) Danah Boyd’s excellent It’s Complicated: The social lives of networked teens at the same time (which, based on a choice of example, I asked one day after class and Dr. Rice was also reading) made a nice compliment for the course material.
GS610: College Teaching Seminar/Worley
Once again, there is a lot of serious cool-aid drinking in education circles. Because this class was heavily guest sessions, we got to see a variety of true believers in different silver bullets, especially people who are way into constant group work, service learning, and interrupted lectures, all of which I would characterize as “not wrong.” One of the few pieces of material that almost everyone who spoke in either GS class pointed to as excellent is Classroom Assessment Techniques: A Handbook for College Teachers, which one of these days I will actually get a copy instead of just occasionally looking at the available ones, it really is a neat tool.
Also applying to both the GS classes, I really enjoy interacting with academia-pointed grad students from other departments (and not just because of the detail that they are over half female (!) in contrast to my field), young academic types are a particular breed, and all of us know we’re in the process of being screwed and have decided to go with it anyway, which makes for a fun environment.
Projects over the summer, more classes in the fall.