okay, I have survived a semester as a graduate student! my main accomplishments this semester have been doing research, avoiding doing research, and thoroughly enjoying my classes. hopefully next semester I will choose the right two out of those three to continue doing.
I suppose it's obvious that it's been strange and disorienting, but I have also learned a ton and am glad that I did it. research continues over break; I've been mostly succeeding at doing it in small bursts whenever I feel like it and not feeling guilty at all, just like I said I would do. as for classes,
- 15-799 - "grad undergrad OS" - in the middle of the summer I got an email from garth telling about his new elective class for the fall, which would be a souped-up version of 410 for grad students; students would do the projects through p3, but instead of a little p4, they would propose, do, and write up a big researchy p4, and also read and review papers each week; and would I like to take the class?, but instead of doing projects 0-3, since I've already done them, how about I TA instead in addition to the papers and p4? so I did it, and it was great.
paper reviews started at three per week, which was manageable but worrying, but thankfully stopped just before project-4-time. some of the papers came straight from this year's SOSP, which was happening during the semester - it was pretty cool to know exactly what the "state of the art" systems research was, with no such doubt about what's happened since then. being immersed in papers was definitely a good way to learn what's going to be expected of me as a grad student, in terms of writing and presenting and evaluating my work. I also didn't at all mind having to present on a paper every couple weeks - it was more like "summarise, and then lead a discussion about it", which was easy when I let myself realise I was expected to understand the paper worse than my professors did.
this was also the class that jiri, my research mentor, took in order to do the projects, making him simultaneously my student, classmate, and teacher all at the same time.
for project 4 I turned out to be able to use an idea for a small research project that I had a while ago. in short: there are some parts of kernel code, such as when interrupts are disabled, that you're not allowed to invoke the scheduler, but there are also parts of code, such as blocking mutexes, that indirectly invoke the scheduler, and it's typically impossible to tell just at a glance whether given code respects or violates this rule. for the project, I built a static analysis tool and an annotation syntax (the latter not strictly necessary, but made the project feasible), which involved surprisingly much type theory work, to the point that if I want to keep working on this until it's publishable, it might have better chances in a PL conference than in a systems one. it was also oddly exciting to realise when doing the writeup that there were enough "future work" loose ends that this could itself have been a master's thesis.
- 15-814 - typesys - strangely enough, my first actual PL theory course, since I never took 312 and got into HOT with just clogic. this was a perfect way to fill in the gap without repeating too much material or being too easy.
garth was confused why i took this instead of "performance modelling" (whose first lecture I went to and immediately dropped), but I know that I had a better time in type systems than I ever would have with performance modelling. partly it was because I had infinity times more friends taking type systems, and partly because - as sully pointed out - if I end up going in a more compilers / language design direction (which I might - I really should talk to mozilla about working on rust) it's the sort of thing I'll be glad to have already learned. it's also kind of a testament to how hard of a time I have focussing entirely in one area.
it was entirely a homework class, which I found to be rather a relief - some people tell me e.g. that frank's class next semester is going to be "easier", but if it's a project class, I don't buy that it will be less stressful. this class would eat an afternoon and evening every week, and be sometimes pretty frustrating, but was free of the pervasive "shouldn't I be working on this now?" stress that project classes always come with.
its final exam was a 24-hour take-home one, from 9am to 9am, and it took me a little over 17 hours to finish - which is the sort of "buckle down with good company and good music" thinking-marathon that's good to have only once a semester.
oh, also, somehow I managed to get an office (just a desk and key, though, not a computer, which I wouldn't want anyway)? apparently it's not in policy to give master's students offices, but I asked when vijay (jiri's officemate) graduated if I could maybe take his spot, and garth and deb both went out of their way for me, which flattered me quite a bit.
this coming semester it looks like I will be taking clinical psychology, and also frank's linear logic class. I chose clinical psych at joshua's suggestion - one half of me presented the "man, I wish I'd taken more interesting classes in college back when it was free for me to do so!" and the other half (the half that's worried about finishing his thesis) couldn't argue his way around it. both classes will probably confuse garth, but next semester may well be my last as a full-time student (and if not, then I'll have plenty of time to de-confuse), so it seems like the right approach.