Index

Subject : Re: LUG: Blog post - CSC 116 critiqued

From : Kevin Hunter <hunteke@earlham.[redacted]>

Date : Sat, 31 Dec 2011 14:58:34 -0500

Parent


At 1:13pm -0500 Sat, 31 Dec 2011, Matthew Frazier wrote:
> I took CSC 116 last semester, and wrote up an article with my
> thoughts and opinions on the class. It's at
> http://leafstorm.us/articles/csc-116-critiqued/.

That's a very thoughtful critique. Thank you for sharing it. I have
had similar thoughts, though I've never taken the time to spell them
out. (Perhaps I've never had an opportunity to take a course for the
purpose of this kind of research?) I also envision myself in a
CS-education role at some point in my future, and have plenty of notes
of how I believe many a course should be taught.

You made several good points, which I believe are more interrelated for
the learning mind than many current-guard CS professors choose to
acknowledge. From the pedagogical point of view, as well as general
code readability by other people[1], I absolutely concur with your
belief that even though code /can/ work without being formatted, it
should be taught and graded in introductory courses. When moonlighting
as a TA, by far the best tactic I found to help a student find their own
problem was a simple "For the purposes of asking me this question,
assume that I'm an idiot: format your code accordingly so that I can
read it, and then I'll help you out."[2] Literally 9 times out of 10,
that was enough for folks to find their own problem.

Another very good observation is the lack of REPL in the choice of
language, and the ensuing opaqueness in regards to individual
statements. I had not articulated that so well to myself, but it is
very interrelated with comprehension of individual statements, and is
only crudely affected by IDEs and debuggers. Well articulated point.

I think the largest issue you cited, however, is that "the instruction
delivered a very superficial understanding of how to program." This is
an issue that I believe is a combination of instructor quality,
too-large of a class size, and departmental rigidness into which an
instructor must fit.

Thanks for the read,

Kevin

[1] I maintain that first and foremost, code is meant to share a concept
(algorithm) with other people. It is *not* first to make the computer
do something. The fact that it can make the computer do something is a
(happy) side effect, but a side effect, nonetheless.

[2] Another phrase I use is "Does your program pass the squint test?"
In other words, if I squint at the code with blurry vision, can I get
good overall sense of the program flow?