Thursday, November 4, 2010

Calling All Eyes (pt. 1)

I'm applying for the NSF Graduate Research Fellowship Program, and the materials are due in two weeks minus a few hours. I feel like I'm finally approaching acceptable drafts of my essays, but plenty of proof-readers can't hurt. So, here's the current working draft of my personal statement with the research proposal and previous research to follow shortly. Any and all comments are encouraged, and please especially point out contractions. I write so conversationally that it's hard for me to weed them all out and I don't always catch them when I'm reading. The conclusion is also incomplete, so ideas there would be great (I hate writing conclusions). Thanks in advance and feel free to tell your friends:

__________________


As I look around at my peers taking their first steps towards earning a PhD, I cannot help but be grateful that my undergraduate education took place at a small, liberal arts college. I may not have had all of the resources or opportunities to participate in original research that would have been available at a major university, but I was able to thoroughly integrate myself into a small, successful department in a way that would not have been possible in any other setting. For five years, I took every opportunity I could to leave my mark on Calvin College's Computer Science department. As president of the departmental student organization, I strove to foster community and engage my classmates in extra-curricular programming and service projects. As a lab assistant, I gained insight into the essential difficulties of programming while helping first-year students as they took their first steps into computational thinking. As a student grader for courses in Abstract Data Types, Programming Languages, Operating Systems, Software Engineering, and High Performance Computing, I developed an ever deepening appreciation for the intricacies of our field.

Perhaps most importantly, I developed relationships with classmates and alumni who had entered the industry in every conceivable environment. From locally owned Agile software shops to IT departments at manufacturing and distribution plants, from Google to MySpace to RIM to Microsoft, I was able to get a strong sense of what the world on the other side looked like. Combined with my own internship experiences, I quickly came to the realization that, while I could perform well there, industry wasn't quite the right fit for me. Whereas products are of limited appeal to me, novel problems can keep me captivated endlessly. Further, I was surprised to realize, upon reflection, that the work I did with students were among the most fulfilling experiences of my life. The obvious route appeared to be a PhD and a career in academia, but I had come to view programmers as “my people”, and I knew that the only way I would be happy in the ivory tower was if I felt like I was doing work that would help them to be fruitful and multiply. To my understanding, there is no better path to this goal than working to improve the most fundamental tools at the disposal of every programming: programming languages.

We live in a rapidly digitizing world, and while plenty of us have not yet bought into the smart-phone revolution, I can't believe that the day is far off when every individual will benefit from being able to write simple applications for whatever personal computing device they carry with them. That isn't likely to happen if people need to use Objective C or Java or even Python to do so. Alternatively, if we do expect users to adapt to the demands of modern high level languages, we will need to provide better environments in which to program, environments that have a better understanding of the code and of the resources readily available for expanding or improving it. More worrisome is the simple truth that applications developed by such para-programmers are likely to be riddled with gaping errors and security vulnerabilities. We need tools that can identify these problems, explain the problem in comprehensible language, and even suggest fixes. While such improvements would certainly help professional programmers, they have their own set of needs that we must meet. As technology advances, software engineers must increasingly look to multi-processor computing to provide users with the performance and convenience improvements that they expect and deserve. Current abstractions for concurrency are fraught with difficulties and simply aren't sufficient to this task. These are all tasks that fall to Programming Languages researchers, and by taking them on, we assist in the efforts of all other practitioners of our discipline, be they hobby hackers, software engineers, or our fellow researchers.

When the time came to decide where I wanted to pursue these goals, it was easy to choose the University of Colorado at Boulder. For one thing, CU gave me an opportunity to get in near the ground level with a young, energetic, and talented group of professors who are eager to make a name for their lab. This would not have been enough on its own, but when the time came for me to visit campus, Professor Evan Chang and others echoed my strongly held sentiments that programming languages research ought to be done with a strong eye towards the tenets of Human Computer Interaction. After all, if we make a tool that is difficult to use, no matter how great its functionality, then we have made an inferior tool. Fortunately, CU also provides me the opportunity to work with respected researchers in HCI and cognitive science, including Professor Clayton Lewis, who found one of his first passions within academia in programming language comprehensibility. Considering these prospects, CU provides a near ideal environment in which to build the connections and lay down the foundational work to achieve my goals.

Ultimately, though, the purpose of academia is not just to achieve our own goals. We do not simply seek to make new advances and build new connections in order to gain renown or satisfy our own curiosity. We work to push the state of the art so that the next generation can push it even further. This work isn't complete if we don't prepare the next generation to pick up where we left off and provide them with the necessary resources to do so. This, along with my professed love of teaching, is why I hope to return to the liberal arts when the time comes. Ideally, my work and my particular view of Programming Languages will benefit my pedagogy. I hope to come to a more human understanding of computing so that I can better predict the obstacles my students will face and design curricula that will mitigate their struggles while helping them gain an appreciation for both the art of programming and the principles that govern it. Moreover, as my career in academia progresses, I hope not just to network with my colleagues but to build working relationships that will help me find the sorts of opportunities for my students that small colleges are too often lacking.

There's a lot of work to be done before I get to that point, and that all starts with having the freedom to work on these problems.

4 comments:

benpost said...

Without knowing anything whatsoever about your research topic... here’s what I saw:

1st paragraph:
--I don’t like the way the first line sets you against your peers, when you’re really contrasting the opportunities of a small school with the anonymity of a huge one.
--should be ever-deepening

2nd paragraph:
--Detail necessary on “my own internship experiences”? Even if that info shows up elsewhere in the application, it might not hurt to just mention what you were working on.
--The Genesis 1 language feels a bit off, as does the self-deprecatory “ivory tower”
--last sentence should have “programmer” instead of “programming”

3rd paragraph:
--a “can’t” slipped through, although I hate “cannot” like the plague. Maybe reword? There’s a lot of nested clauses in this thought that could be untangled.
--What does it mean to say “environments that have a better understanding of the code”?
--“identify these problems, explain the problem them”

2nd from the end:
--I don’t like making statements about “the purpose of academia”, at least not so bluntly (maybe filter through your own experiences--“it seems clear to me,” “as I have come to realize”, something like that?)
--a stray contraction: “This work isn’t complete”. Instead of “is not complete”, what about “remains incomplete” to keep things active?
--the wording of “...if we don’t prepare the next generation to pick up where we left off and provide them...” isn’t super-clear (on a second read it’s fine, but the subject of “provide” isn’t immediately obvious). What about eliminating the “pick up where we left off” part? (“This work remains incomplete unless we provide the next generation with the resources/tools they need to continue and surpass our work” or whatever)
--“professed” doesn’t seem to be a good adjective for “love of teaching”--makes it sound a bit insincere.

Conclusion
--I hate conclusions too. It definitely has to be something about how the fellowship will help you fulfill your goals, bring shalom to a fallen world, that kind of stuff. The NSF people probably aren’t looking for anything super-detailed here, especially since you’re giving them a seperate research proposal, but if you can tie the NSF’s goals/history to your goals, even in a short paragraph that touches on the themes you’ve already brought up, you should be good to go. This is what I want to do; this is how your money will help me do it.

Best of luck with the fellowship—I’m off to watch The Bad Sleep Well in a real live theater.

Jim said...

Best way to find contractions: Do a search for apostrophes.

Anonymous said...

near the end: be careful with talking about spending your career at a "small" liberal arts college unless you are certain to display how you can be a leader in your field in that situation compared to large research universities.

they dont want you to just be a great builder of community, they want you to make a deep impact across the field. dont paint yourself into that box

Walz said...

Ben:
Good calls pretty much all around. First line reveals more of my own insecurities than it builds up my experiences. The Genesis language and self-deprecation are the sorts of thing I write to entertain myself and sometimes fail to catch before final submission. The use of "environment" in the third paragraph is a somewhat jargon-y one which can be improved upon. Taking direct ownership of my view of academia makes that paragraph stronger.

Jim: So it is, why don't you get on that? :P

Tim: Good thinking, will strengthen my statement of intent to bring more research and collaboration opportunities to the liberal arts.

Thanks, all!