Back

Written Response: Your Creative Artifact

divider

Written Response

Your Creative Artifact

Key Concepts

Explaining Your Own Code

What a Good Answer Looks Like

Looking at Everybody Else's

The Part Nobody Practices

You built it. Now write about it.

This is homework, due at the start of the exam session.

The Part Nobody Practices

You built it. Now write about it.

In May you will sit in a room with no computer and answer four written questions about a program you wrote months earlier.

Today is that, at one tenth the size, one week after building it.

This Answer Earns Nothing

My function draws a target. It takes x and y.
It works well and I am happy with it.

This Answer Earns Nothing

My function draws a target. It takes x and y.
It works well and I am happy with it.

It is true, it is about the right function, and it says nothing a reader could not have guessed from the name.

This One Does

drawTarget(x, y, size) draws one target wherever
it is told to. The rings are drawn by a loop that
counts down from 3, and an if inside it colors a
hit target gray instead of red. It is called from
the traversal that draws all the targets, and
again to draw the one under the mouse.

This One Does

drawTarget(x, y, size) draws one target wherever
it is told to. The rings are drawn by a loop that
counts down from 3, and an if inside it colors a
hit target gray instead of red. It is called from
the traversal that draws all the targets, and
again to draw the one under the mouse.

Names the parameters. Says what the loop does and what the decision decides. Says where it is called from, twice.

Same function. Same program. One of these is worth marks.

Write About What Is There

Not what you meant to build, not what it would do with another week.

A small program described precisely beats a big one described vaguely.

Today's Objectives

  • Describe your program's purpose and how it is used
  • Explain your own procedure precisely
  • Say what you cut, and why
  • Describe a bug honestly, including the wrong theory

Key Terms

Documentation
Writing that explains what a program does and how.
Functionality
How a program behaves while it runs, described by what a user does. The exam's word.
Abstraction
Using something by its name without needing its details. A function you call is one.

'F' → Fullscreen

divider

Build

This is homework. It is assigned at the end of the build session and due at the start of the exam session — on paper, at the door.

Open your program once, run it, then close the editor and write from what you remember. If you get stuck, open it again — but notice that you had to.

Task 1: Purpose and Use

Two short paragraphs on the documentation sheet:

  • Purpose. What the program is for. Not the mechanics — why anyone would run it.
  • Use. What a person does, in order, from launching it to finishing. What they press, what they see, how it ends.

Task 2: Your Procedure

The graded one. Write about the function you wrote, and cover all five:

  1. Its name and its parameters, and what each parameter is for
  2. What it does with them
  3. What the loop inside it repeats, and how many times
  4. What the decision inside it decides
  5. The two places it is called from, and why each one calls it

Then paste the function itself underneath. It should be short enough to read in one go — if it is not, say so and explain which part matters.

Task 3: The Table

What is in it, what the program does with it, and what would happen if you deleted it.

If the honest answer is "not much", say that. An accurate description of a weak table is worth more than an invented description of a strong one, and it tells you exactly what to fix in Quarter 3.

Task 4: What You Cut

Three sentences:

  • What you planned that is not in the program
  • When you decided to drop it, and why
  • What you would build first with another session

Task 5: One Bug

Describe the worst thing that went wrong while building. What you saw, what you thought it was, and what it actually was.

"What you thought it was" is the interesting part and it is the part people leave out.

divider

Checkpoint

  • Purpose and use, both written
  • Your procedure described with all five points, and the code pasted
  • The table described honestly, including the delete test
  • What you cut, and when you decided
  • One bug, including what you thought it was
  • Handed in on paper at the start of the exam session
divider

Reflection

Answer the following questions before submitting your work.

  1. You wrote about your program with the editor closed. Say which part you could not remember, and what that tells you about writing code you will have to explain in May.
  2. At the gallery walk you saw somebody else's program do something yours did not. Describe it, and say what you think they had to know to build it.
  3. This quarter started with a program that printed one line. Name the single idea from the last twenty-five sessions that made the biggest difference to what you can build, and say why that one.
divider

Submit

Hand the documentation sheet in on paper at the start of the exam session. Do not email it — you will not have a computer that period.

Response Complete