Desription of Programming Journal
You have read an introduction to the phenomenology of programming
languages in the chapter 1 (section 1.4).
The purpose of keeping a programming journal, in which
you record your experiences while programming, is develop your
awareness of the full range of phenomenological issues in programming
language design.
For example, in your journal you should record the sorts of errors
you make, the difficulties you had in finding them, and what you had to
do to correct them. You should also describe especially good
experiences, for example, when the code seems to "write itself."
Describe cases where you found (your own or other programmers') code
especially hard to decipher. You should also record your feelings
during the process of programming (e.g. do you feel frustrated,
empowered, cheated, competent, blocked, etc.). Do you feel like you
are "hacking" or writing elegant code? Are you experiencing "fear" or
"fascination"? How is the language ampliative or reductive? In what
ways is your use of it embodied, in what ways alienated? Etc. etc.
As much as possible, make entries in your journal while you are
programming; you can always add afterthoughts or additional analysis
later. The purpose of this journal is to make you more familiar with
the phenomenology of the languages you use, so that you will be more
sensitive to the full range of phenomenological issues when you design
programming languages (and other language-like systems).
Additional Information
- Although I said in the
syllabus
that you will be graded for writing style, grammar, etc., that
does not apply to your "programming journal." Don't
worry about those kinds of issues when you are writing in your
journal!
- In fact, you will not be graded on your journal at all! But you
will be expected to do it, and it may provide the data for later
projects in the course.
- You can keep your journal in any medium you choose: from a "low
tech" bluebook to a word-processor to an online note-taking system.
However, from time to time we will ask you to hand in your journal (at
least the part written since the previous time it was handed in), so it
is necessary that you be able to produce a hardcopy to hand in.
- The main reason for handing in the journal is so that we can look
it over to make sure you have got the idea, and perhaps suggest ways in
which it can be improved. As I said, it will not be graded in itself,
but you will be expected to do it.
- You should record in your journal any experiences you have while
programming (or even doing programming-like things, such as writing in
scripting languages). Most of you are taking at least one course in
which you are programming, and these activities should be reflected in
your journal. If you are not taking any courses that involve
programming, then record your experiences while doing personal or other
programming. In the unlikely event that you are a CS major who is
doing no programming (and if so, why aren't you?),
talk to me so that we can a way for you to do the journal.
- Feel free to record in your journal experiences you have with other
language-like things (e.g. the Unix shell), since many of the same
issues apply to programming languages. Although in this course we are
focused on programming languages, much of that is part of a general
phenomenology of tools.
I will add information to this site as questions arise about the
programming journal.
Return to MacLennan's home page
Send mail to Bruce MacLennan / MacLennan@cs.utk.edu
Last updated:
Wed Dec 5 15:35:39 EST 2001