Reaction for: Literate Programming by Matt A

This article was very interesting. The idea was to create a programming environment that allowed the "author" to fully document their code. WEB basically took documentation and code and integrated them into one. Documentation is key when writing programs, but many of WEB's features seem to preclude its use in an introductory CS class.

As the author says himself, WEB is for "computer scientists." Not everyone who takes an intro CS course is a computer scientist, and certainly very few intro students think like one. It's difficult enough to learn complicated OOP concepts and Java syntax all at once; I can't imagine adding another level of complexity on top of that. Trying to teach two languages at once would confuse many people, and scare them away unnecessarily. Introductory CS courses are already very imposing, convoluted programming languages would not help.

Another question I had was to the value of the documentation produced. When programs are made in industry, commenting and documentation is generally sacrificed for space. People want more features in less space, and something gets cut out. I think that some form of documentation like WEB would be great for a large scale group project. It would allow for a group to quickly understand other parts of the program without having to sift through the code. Where I question its value is in the programs that introductory students are doing. This sort of documentation seems unnecessary for programs that will most likely never be touched again. The time that would be need to teach WEB and implement it could be better spend teaching good commenting skills. Commenting has always provided adequate documentation, and I expect that it will continue to do so.

The author also seemed positive that literate programming would catch on, and be the new "thing" in CS. Fourteen years later I have yet to see the onslaught of literate programming. The main problem I see is that programs are not read like works of literature. Very few programmers are interested in hearing about what is done in a method if they can just look at the code and see how it works for themselves.

Now that I've thoroughly bashed the article, I would like to point out that it raises a valid point. Documentation is extremely important. Many programmer's commenting skills are seriously deficient, and as a result their code is hard to understand, debug, extend upon, or fix. Ask any TA who has had to grade a poorly commented program; it can be extremely difficult to understand someone else's convoluted code. I think an introductory course needs to stress the importance of commenting when coding, perhaps "a thoughtful program" will help demonstrate this.

Overall, I think the article itself shows why WEB or its modern day equivalent wouldn't work in a CS015 type class. Perhaps, however, requiring more user guides, better commenting, and further explanation of complex code, CS students can be shown the benefits of solid documentation.


Reactions


MY NAME: Saul Lehigh Nadler

MY COMMENTS

People were very reluctant to comment in-line, much less readmes, much less any of the other crap that this would entail. Theoretical cs education and realistic application are two ideas that must be considered.


MY NAME: Danah Beard

MY COMMENTS

I agree with Saul. Most students are just trying to get by. I am curious as to whether or not this is a Brown-only issue or if it occurs elsewhere. Part of me thinks that it is more problematic due to the quantity and difficulty of most assignments.


Jon:

I don't think it is something that is found at Brown more than other places. When it comes down to it, commenting code that you wrote is boring. It is explaining something you already understand, and does not seem to serve a useful purpose. Even if you get a program done in plenty of time (which even I have done on occasion) sitting down once it is functional and adding commenting because I felt like I needed to was a huge headache, and seemed like a boring chore. Even understanding the importance of it does not seem to make it fun.


MY NAME:Matt C

MY COMMENTS: I agree with Jon, commenting is boring though a necessary evil of programming. As I believe Danah pointed out in other reactions, perhaps we can make it easier to do if we give good guidelines on what to say for various comments, even more than the guidelines we give now. Idealistically, a program should be readable by someone who has no programming experience, therefore a reader should not be following the code itself, but the comments to take them through the program.


[BACK]