Skip to content

CT 301 Homework 1 Design Document

CT 301: C++ Fundamentals · Summer 2026
Homework 1: Design Document
Instructor: Dr. Francisco R. Ortega

About

Along with your code, you submit a short design document describing how you approached this assignment. The document carries no points on its own. I am not grading it for grammar, style, or writing quality. I want to read, in your own words, how you worked through the problem and what you took away from it.

Write it yourself. The point is to hear your own thinking, not a generated summary of it.

AI is not allowed for this document. Do not generate it, in whole or in part, with an AI tool.

What to cover

Cover these four things. You do not need headings for each, but they should all be there.

  1. How you navigated the process. Where you started, the order you built things in, how you tested as you went, what you changed along the way.
  2. What you learned. Ideas or techniques that are clearer to you now than when you started.
  3. What you found difficult. List at least five things and no more than ten. For each, say briefly what made it hard and how you got past it (or that you did not).
  4. Your design choices. Decisions you made in your own code, why you made them, and any tradeoffs you saw.

Including code snippets

When you talk about a design choice, it helps to show a few lines of your own code and then explain them. Keep snippets short (a few lines, not whole functions). Put the code in a monospace block, then explain what it does and why you wrote it that way. For example:

std::vector<Item*> selected = inventory.selectAll();
for (Item* item : selected) {
    item->printTo(std::cout);
}

Here I get a list of non-owning pointers to the items I want, then loop over them and print each one. I used Item* rather than copying the items because the inventory still owns them; I only need to look at them, not take them. That is the snippet-then-explanation pattern: show the code, then say what it does and why.

How to make a monospace block:
  • Word: select the code lines and change the font to a monospace one such as Consolas or Courier New. Optionally shade the paragraph (Home → paragraph shading) to set it off.
  • Google Docs: select the lines, set the font to Consolas or Roboto Mono, or use Format → Paragraph styles, or insert a code block from the Insert → Building blocks menu.
  • LibreOffice Writer: select the lines and apply the built-in Preformatted Text paragraph style (or set the font to Liberation Mono).

Length and format

What "justified" means. Text alignment controls how lines line up at the edges of the page.

  • Left aligned (the default in most editors): the left edge is straight, the right edge is ragged.
  • Justified: both the left and right edges are straight. The word processor spaces the words out so every full line reaches the right margin, like the columns in a newspaper or a printed book.

In Microsoft Word, select your text and press Ctrl+J (Windows) or Cmd+J (Mac), or use the justify button in the paragraph toolbar. Google Docs and LibreOffice have the same option in the alignment controls.

Justified

Keep it organized and succinct. Short, clear paragraphs are better than long ones.

How to submit

Grading

The document carries no points by itself. However, a missing document or one that shows no serious effort will cost at least 10 points, and possibly more. I reserve the right to deduct beyond that, and I also reserve the right to award positive points for a document that is genuinely thoughtful.