TITLE: Some People Get Stuff Done
AUTHOR: Eugene Wallingford
DATE: December 18, 2010 11:34 AM
DESC:
-----
BODY:
On Thursday, my students presented their Klein
compilers. Several of the groups struggled with
code generation, which is a common experience in a
compiler course. There are a lot of reasons, most
prominently that it's a difficult task. (Some
students' problems were exacerbated by not reading
the textbook...)
Still, all four groups managed to get something
working for a subset of the language. They worked
really hard, sometimes trying crazy ideas, all in
an effort to make it work.
Over the years, I have noticed that some students
have this attribute: they find a way to get things
done. Whatever constraints they face, even under
sub-optimal conditions they create for themselves,
they find a way to solve the problem or make the
program meet the spec. I'm surprised how often
some students get things done despite not really
understanding what they are doing! (Of course,
sometimes,
you just gotta know stuff.)
This reminds me of a conversation I had at Clemson
University back in 1994 or 1995. I was attending
and NSF workshop on closed labs. We were attending
the midweek social event that seems de rigeur at
weeklong workshops, chatting with some Clemson CS
profs who had joined us for the evening and some
AP CS graders who were also stationed at Clemson
for the week. The AP folks talking about grading
programs, the sort our students write in AP CS,
CS1 and CS2.
One Clemson prof was surprised by how much weight
the CS1 profs give to style, documentation, and
presentation, relative to correctness. He said
that he taught CS1 differently. Programming is
hard enough, he said, that if you can find
students who can wrote code, you should do whatever
you can to encourage and develop them. We can
teach style, presentation, and documentation
standards to those students. Trying to teach more
advanced programming skills to people who produce
nice-looking programs but don't seem to "get it"
is much, much harder.
He was expressing a preference for students who get
stuff done.
In practice, students who major in CS from all
across the spectrum. As a professor, I would like
for my courses and
our academic programs
to help develop the "gets things done" attribute
in our students, wherever they start along the
spectrum. This requires that we help them grow
not only in knowledge but also work habits. Perhaps
most important is to help students develop a certain
attitude toward problems, a default way of confronting
the challenges they invariably encounter. Attitudes
do not change easily, but they can evolve slowly over
time. We profs can set a good example in how we
confront challenges in class. We can also create
conditions that favor a resilient approach to tough
problems.
It was good for me to end the semester -- and the
2010 calendar year -- seeing that, whether by nature
or nurture, some of our CS majors manage to get stuff
done. That bodes well for success when they leave
here.
-----