?

Log in

No account? Create an account
Year of Fail 'til You Succeed - Lindsey Kuper [entries|archive|friends|userinfo]
Lindsey Kuper

[ website | composition.al ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Year of Fail 'til You Succeed [Mar. 23rd, 2009|08:42 pm]
Lindsey Kuper
[Tags|, , , , ]

"How's it going?"
"I'm working on The LiveJournal Post That Would Not Die."
"The 2009 year-in-review-so-far one?"
"Yeah."
"So, like...is the general tone of it...um..."
"The working title is 'Year of Fail'."

Oof.

My 2009 started exactly like my 2008 had: with a snappy New Year's Day four-mile run that was intended to be Alex oniugnip's and my first day of marathon training. The difference is that when we did that in 2008, it actually culminated in, you know, eventually running a marathon. In 2009, I had to give it up after not much more than three weeks.

At first, everything was going fine. When the semester began on January 12, the two days per week of cross-training fell by the wayside, but I had always figured those were kind of optional, anyway; I was still keeping up with the scheduled runs. After another week and a half, though, I didn't have time for the weekend long runs, and that was pretty much the end of it. Last semester, this wouldn't have been a problem. But last semester, I wasn't teaching anything, and all of my courses were introductory courses (the only kind I could take, then), and none of them were of the 'P' designation, which, according to my department, stands for, um, "programming-in-the-large". By contrast, this semester I'm teaching C311, and none of my courses are intro courses, and one of them is P523 Compilers. No matter how many times I do the arithmetic, there only seem to be 32 waking hours per weekend, and I need, oh, four of those for household chores and cleaning and laundry, and two for grocery shopping, and one for complaining on the phone to Alex about how I need all of the remaining 25 to work on my compiler.

If I'm not working on my compiler, I'm working on a homework assignment for C311 -- either actually doing the assignment, grading it, or talking to a student about it. Or all three at once. The assignments are substantially the same as the ones I did for B521 last semester, so they ought to be easy, and for the most part, they are. But last semester, I was doing the homework so that I could turn it in, which meant it had to be good, and now I'm doing it so that I can teach it, which means that I'm not supposed to make mistakes. I could talk to you for a while about how much I've learned this year about the distance from "good" to "no mistakes", but I believe the agreed-upon jargon is "nontrivial".

If I'm not doing either of those things, I'm reading something or writing something or LaTeXing something for my theory course, B502, in which I'm holding on by the skin of my teeth.1 And if I'm not doing any of those things, I'm definitely sleeping. Unless I'm in rehearsal, in which case I'm only probably sleeping.

If that were all that were going on, I'd be okay. The problem is that I'm also supposed to be taking another course: B621 Advanced Programming Languages. I say "supposed to be" because, due to [SEE ABOVE], I pretty much never manage to get anything done for 621. Ever.

I know now that I signed up for too much, and that some things were going to have to slide. But it would have been nice if I could have distributed my letting-things-slide a little more evenly. The trouble is that if I don't get my other stuff done, the consequences are extremely clear. For instance, if I don't get my compiler to pass the test suites that come with each assignment, then I don't pass the course. If I don't grade a C311 homework assignment, then I've personally let fourteen people down in a concrete way.2 If I were to miss one of the War Requiem dress rehearsals, then I could just as well not bother showing up for the performance. Cause and effect. It's very simple. But in 621, it's not like that. We don't have anything as well-defined as "grades" or "exams" or even "assignments". Instead, every time class meets, we're given a problem to solve. All of the problems are described verbally. We can only ask limited questions. We're discouraged from reading about the subject matter on our own, because we might stumble across the answer to something and spoil the fun.3 There are vague or nonexistent consequences for doing or not doing any particular problem. The problems are hard. There have been fourteen so far. I haven't been able to finish any of them. Most of them, I haven't been able to start.

By all accounts, 2008 was an amazing year for me. I ran a marathon, I went to Japan, I got a buzz cut, I made a graceful exit from my job, I did all the SICP chapter 1 exercises, I did the ICFP contest, I did tai chi, I went to OSCON. I got myself and my belongings settled in Bloomington. I made friends. I made a budget and stuck to it. I got into a good choir. I studied for all of my theory exams by going running on the night before, and I aced them all. I was accepted for GWWE. There was actually a period of a couple of weeks in the late fall during which I was making biscuits from scratch every day.

By comparison, 2009 feels like Year of Fail. I very rarely have time to cook. I haven't been keeping to my budget, largely because of all the prepared food I buy due to never cooking. In turn, I think my health is suffering due to eating a lot of prepared food. I was turned down for the Google internship I interviewed for. I didn't hear back from any of the other internships I applied for, except for "we received your application" form letters and one "sorry, we forgot to mention that we can't accept non-European applicants" letter. Three days ago, I was turned down for the Anita Borg scholarship. I just had to tell Schwern xwrn that I couldn't work on the project he asked me to work on this summer.4 I don't deserve to pass 621.

But it's going to be okay. Here's how I know.

On the very first day of B521 last September, Dan asked us each to rate ourselves from 1 to 10 on our proficiency with each of the languages that we knew. I gave myself a 7 for Scheme then. Now I know that that number was inflated.5 I was really probably about a 4 at the time.

When we did the ICFP contest last year, Alex was absolutely flat-out better at Scheme than I was. I didn't talk a lot about that, but I remember what it felt like, and I'm glad, because it makes it possible for me to know that now, I'm absolutely flat-out better at it than he is. Now I'm a 7. I am a good Scheme programmer now, and it's in no small part due to taking Compilers and to teaching C311. I'm not trying to brag. I didn't specifically set out for this to happen. It's just kind of what happens when your job is to hang out in a limestone fortress and read Scheme and write Scheme and talk to people about Scheme all day long, and occasionally go sing, and then come back and write some more Scheme. The money isn't very good, but damn, I really have a great job.

And.

When I was in Portland last week, Paul stereotype441 told me that he had written a little domain-specific language for his job, and that it was lexically scoped. I told him that I'd be proud of myself if I could look at the implementation and see why it was lexically scoped. (He told me that if I could do that, he would be proud of himself.)

We sat down and looked at it, and it turned out that, without realizing that that's what it was called, Paul had written an environment-passing interpreter. And that without realizing that that was what he was doing, he was taking something that used to just be data, and treating it as a program.6 Eight months ago, I wouldn't have been able to know those things. In fact, eight months ago, I probably wouldn't have been able to have had a conversation about those things. Oh, yeah, and not only was I able to see why his language was lexically scoped, I was even able to sort of explain what he would need to do if he wanted to implement dynamic scope.7

And today, I made biscuits. I can still do it in half an hour from ingredients to first bite, and I can still do it without a recipe. And afterward, I even made it to my own office hours on time.8 Everything is going to be okay.


  1. Although, according to the midterm grade distribution that our professor just posted, it appears that the entire class is holding on by the skin of our collective teeth, so I don't feel so bad. (I got a 54 on the midterm, which puts me well within the top half of the class.)
  2. On the other hand, I suppose I risk letting fourteen people down when I do grade the homework, too, so I might as well not worry about it, 'cause I'm screwed either way!
  3. If this were the case in 502, I would have given up a long time ago. Wikipedia, Kozen, and the second half of Sipser are getting me through the course.
  4. This is the one that really burns. I really wanted to do it. I'm actually the one who brought it up in the first place, and Schwern has been extremely encouraging about it. But now I'm too busy to write a proposal for it. Even if I managed to squeeze out the proposal, the specter of having to keep right on working when summer arrives is terrifying. I'm looking forward to a low-responsibility summer so that I can catch up on everything I'm not doing for 621.
  5. Although another thing I know now is that everyone inflates that number. You should see what some of the undergrads put down.
  6. Incidentally, it was XML. Also incidentally, what else is executable and dead easy to parse and looks a whoooole lot like XML except for being waaaaay less verbose? Three guesses!
  7. Paul: "Shoot myself?" Lindsey: "Well, yes, but after shooting yourself..."
  8. Almost.
LinkReply

Comments:
[User Picture]From: jamey1138
2009-03-24 01:38 am (UTC)
Re: 621: I freakin' love conceptual classes like this. Sometimes, the lesson is that there's stuff you don't know how to do yet. Sometimes, the lesson is that there's stuff *nobody* knows how to do yet.

Don't stop worrying about it-- but be aware that there's lots of lessons that a class like 621 can teach you, and "how to solve this particular hard problem" is among the least valuable.
(Reply) (Thread)
[User Picture]From: lindseykuper
2009-03-24 03:16 am (UTC)
Oh man is there ever stuff I don't know how to do yet.
(Reply) (Parent) (Thread)
[User Picture]From: pmb
2009-03-24 02:25 am (UTC)
Sounds like "stress" and not "fail". Also, feel free to blow off grading and do it all at the end of the term if you are too swamped. That's what everyone else does.
(Reply) (Thread)
[User Picture]From: lindseykuper
2009-03-24 03:38 am (UTC)
Well, yeah, but students ask me questions, and I find that I can't answer effectively if I haven't been keeping current with the homework. And since I have to grade it anyway, I might as well keep current with it by grading it quickly. (In the future, I might be good enough at this that I can answer all questions off the top of my head, but I'm not there yet.)

Also, because a lot of what we do is cumulative, if students don't get feedback relatively quickly on a particular assignment which they made mistakes on, then they're likely to keep making the same mistakes on the next assignment and the next. I then basically have to count off multiple times for the same mistake, which seems rather unfair.

Some would say, "If they make the same mistake repeatedly, let them suffer repeatedly." But I'm interested in teaching them what closures are. I'm not interested in teaching them that life is unfair. They can learn about that when they get real jobs!
(Reply) (Parent) (Thread)
[User Picture]From: pmb
2009-03-24 10:44 am (UTC)
I'm not saying that it's not rude to the students. I'm merely pointing out that it's what everyone does. By being so prompt with grading and conscientious wrt questions, you are definitely putting yourself in the upper echelon of TAs, or whatever the acronym is at IU.
(Reply) (Parent) (Thread)
[User Picture]From: pmb
2009-03-24 10:53 am (UTC)
A semi-important/semi-unserious leading question:
Is there anything good that happens to you if you are a superb TA versus "merely" being a good TA versus being a bad TA?
(Reply) (Parent) (Thread)
[User Picture]From: lindseykuper
2009-03-25 12:52 am (UTC)
I'm thinking about how to properly answer that question. However, I'm not sure it's the right question, because it's not so much that I'm trying to be a good AI for its own sake (although that would be a worthwhile goal) as simply that I'm trying to learn, and the most effective way for me to learn something is to teach it. Also, I don't think I have a particular knack for teaching. I suspect that I have to work harder at it to be as good as other people are.
(Reply) (Parent) (Thread)
[User Picture]From: pmb
2009-03-25 01:18 am (UTC)
"Knack"s are capricious and, I'm increasingly convinced, unreal. Every now and then I come back to ideas like http://www.daniel-lemire.com/blog/archives/2009/03/20/research-productivity-some-paths-less-travelled/ and especially the "Further Reading" linked there.

You are and become good at what you practice and think about. Teaching is something that everyone kind of sucks at initially and then gets better with practice. In grad school you can't help getting better because you are forced to practice it repeatedly in order to stay funded.

And you are not EVEN joking that the right way to learn the hell out of something is to teach it. But it is also extremely time consuming to do well. Even when you have become good at it. I too am unsure that I asked the right question, but I can't quite feel my forwards to figure out what the right question is.
(Reply) (Parent) (Thread)
[User Picture]From: lindseykuper
2009-03-24 02:02 pm (UTC)
It's "AI". As if that's not confusing enough, our undergraduate counterparts are called UIs.
(Reply) (Parent) (Thread)
[User Picture]From: oniugnip
2009-03-25 01:47 am (UTC)
Where's the form to fill out to get that changed, by the way?
(Reply) (Parent) (Thread)
[User Picture]From: lindseykuper
2009-03-26 02:03 am (UTC)
It's pretty well ingrained. You'd be fighting the whole university, not just the CS department.

But I can ask where they keep the change request forms.
(Reply) (Parent) (Thread)
[User Picture]From: kel_e_o
2009-03-24 04:06 pm (UTC)
"Some would say, "If they make the same mistake repeatedly, let them suffer repeatedly." But I'm interested in teaching them what closures are. I'm not interested in teaching them that life is unfair."

Wow. You're probably the best TA ever. No exaggeration.
(Reply) (Parent) (Thread)
[User Picture]From: oniugnip
2009-03-24 05:42 pm (UTC)
It's true :)

(although I was probably a distant second, in 2004.)
(Reply) (Parent) (Thread)
[User Picture]From: lindseykuper
2009-03-25 01:41 am (UTC)
There's still time for you to come from behind and pass me!
(Reply) (Parent) (Thread)
[User Picture]From: oniugnip
2009-03-25 01:46 am (UTC)
And then you'll step up your game, and we'll be in a virtuous cycle of increasingly well-educated undergrads!

Likely scenario: Skynet coming out of IU in the next five years.
(Reply) (Parent) (Thread)
[User Picture]From: lindseykuper
2009-03-25 01:53 am (UTC)
It's on.
(Reply) (Parent) (Thread)
[User Picture]From: lindseykuper
2009-03-25 12:14 am (UTC)
Aw, shucks. Thanks, Kelly!
(Reply) (Parent) (Thread)
[User Picture]From: jkirk
2009-03-24 04:40 am (UTC)
Damn, that's a busy schedule! Don't think of it as fail, though. It's not, really.
(Reply) (Thread)
[User Picture]From: stereotype441
2009-03-24 11:38 pm (UTC)
I'm still chuckling about footnote 7. You're always good about noticing when I say something funny. Thanks :)

Also, re: footnote 6. Are you talking about scheme? Jeez. Freaking parenophiles.
(Reply) (Thread)
[User Picture]From: lindseykuper
2009-03-25 12:13 am (UTC)
Paul, you are extremely funny. You have a gift. Seriously. I probably haven't written down at least half the funny things you've said.

Regarding footnote 6: To be more general, I'm talking about S-expressions.
(Reply) (Parent) (Thread)
[User Picture]From: kel_e_o
2009-03-25 02:26 am (UTC)
Erik's guess was yaml. I ask him when there are things on your LJ that I can't figure out. He's my super-secret, super-personal hacker dictionary. :)
(Reply) (Parent) (Thread)
[User Picture]From: praetorian42
2009-03-25 09:36 pm (UTC)
I missed the "executable" portion.

Although, I had talked with Mark at one point about the possibility of a turing-complete language being created out of syntactically-correct Yaml. Syck is your parser, and that is happiness =)

(But it turns out to be not very programmer-friendly)
(Reply) (Parent) (Thread)
[User Picture]From: lindseykuper
2009-03-26 01:57 am (UTC)
You bet. Just about anything can be executable, if you write the right interpreter. For me, one of the interesting things about studying programming languages is that the line between code and data starts to blur. (But making it programmer-friendly -- yeah, that's really hard.)

(Reply) (Parent) (Thread)
[User Picture]From: lindseykuper
2009-03-26 02:07 am (UTC)
He's my super-secret, super-personal hacker dictionary.

Alex is mine for stuff like artificial intelligence and C programming. And world history.
(Reply) (Parent) (Thread)
[User Picture]From: jennekirby
2009-04-04 04:05 am (UTC)
Ohhhh yeah, the whole first year and change of grad school totally felt like this combination of Fail and Potential to Win. It still kind of hurts to think about it, even the good stuff, because it was all laced with so much creeping self-doubt. Sigh.
(Reply) (Thread)
[User Picture]From: lindseykuper
2009-04-05 05:53 pm (UTC)
Man, it's good to hear that from someone who's come out the other side. I think the worst part is that last semester was so awesome, and I totally felt like I was winning at grad school. Then I got blindsided by this semester.
(Reply) (Parent) (Thread)