How to: Write homework

This guide is intended for students early in their undergraduate career who do not have a lot of experience writing technical reports.

Clearly communicating your results and findings goes a long way no matter what career path you take. And it takes practice to improve them. And since you have a homework almost every week for almost every class, they are one of the best avenues to practice writing and communication skills.

Here are some loose guidelines that I tend to follow when writing a technical report. You do not have to strictly adhere to all (or even any!) of them. But sticking to at least some of them will make your homework look more professional. On the plus side, you will have a more pleasant experience when you refer back to them in the future.

Note: These guidelines are as broad as possible. However, always consult your instructor for expectations in case of conflicting viewpoints (even if I am your TA and referred you here).

  1. Essentials
  2. Completeness
  3. Code
  4. The checklist
  5. Typesetting
  6. Stories
  7. Resources


Let’s get some basics out of the way. These seem pretty obvious, but it is surprising how often students forget them.

  1. Write your full name, class code, and homework number at the top of the first page.
  2. Clearly number the questions.
  3. Number your pages.
  4. List your collaborators, if any, at the top of the first page.
    • Check with your instructor and syllabus for collaboration policies.

If you are turning in a hard copy:

If you are scanning your assignment:


  1. Answer questions in order. Even if you decide to skip one.
  2. If you skip a question, mention that you skipped it (or leave it blank).
  3. Label and caption all tables and figures.
  4. Leave no table/figure unreferenced. Write at least one line referencing the table/figure. For example “See Figure 1(a) for a plot of force as a function of mass”
  5. Leave no table/figure unexplained. What are the different parts of the figure? What do the axes represent? Does the table/figure match your expectations? What is your final takeaway? Each table/figure has its own story. Make sure you tell it from the start to finish.
    • Sometimes the question just asks you to submit a plot. In those cases, you don’t need to go to the trouble of explaining the figure. Consult your instructor for expectations.


  1. Unless asked, move all unecessary code to the appendix.
  2. Refrain from submitting raw code output (for example from the summary function in R).
    • But sometimes life is hard and it is easy to submit raw output. If you do, make sure to interpret the output by highlighting items of interest like p-values and standard errors.
  3. Explain your output clearly. What do the numbers mean? Do they match your expectations? How are the connected to the plots? Again, try to tell the full story.
    • Sometimes you don’t need to tell the full story. Consult your instructor for expectations.
  4. A controversial opinion: Avoid R Markdown unless you know what you are doing.
    • Yes, it is convenient for beginners. But it comes with a lot of overhead when you want to make nuanced changes to styling. By default it prints output and unecessary code, both of which go against Rules 1 and 2. Either learn how to fix those, or stick to LaTeX.

The checklist

  1. Am I using consistent styling?
    1. Are all of my tables and figures labelled/captioned the same way?
    2. Am I using the same font (or colored pen)?
  2. Did I accidentally forget to insert a question or a plot?
  3. Are any of my plots overflowing?
  4. Did I caption my tables/figures and label the axes?
  5. Do I have my name and class code at the top of the first page?
  6. Did I number the pages?
  7. Did I proofread the final draft before hitting submit?
  8. Am I submitting the correct assignment? (We’ve all been there!)


I recommend, at least considering, to typeset your solutions.


  1. The final version is often more readable and clean. Future-you will thank present-you.
  2. You automatically follow many of the guidelines from above.
  3. It is easier to proofread and find errors.
  4. In assignments that involve calculations, you may have a rough draft on paper first. When you typeset your solutions, it will help you distill your thoughts and produce a more coherent writeup.
  5. If your assignment consists primarily of code, this can be a more convenient option.


  1. It takes a really long time, especially to transcribe long calculations.
  2. If this is your first time typesetting a document, the learning curve can be steep. (If this is your first time, see resources for links to start learning.)
  3. Formatting images and tables can be painful.

Weigh these advantages and disadvantages. Sometimes, typesetting your solution is just not worth it. If you handwrite your solution, just make sure it is readable. If you decide to typeset, here is an ever-growing template to get you started.


Writing scientific findings is often like writing a story. The story may not be immediately apparent, but as you work your way through the answer, the story often tells itself. And much like retcons, once you know the final answer, you will have to rewrite the initial part for a comprehensible answer.

Maybe you are writing a proof. These are like quests. You are setting out to prove a fact. You have your tools – propositions and theorems from before. Like a puzzle, you fit them together to arrive at the final result. How do you put them together? Why did you do certain steps that way? Was there something unexpected you did? Answer these prompts, and you have yourself a story about a journey. Remember to retcon your answers.

Maybe you are analyzing a dataset. What is the question you want the data to answer? Were you able to answer it? Are you just exploring the data? Did you find interesting patterns or relationships in your data? Did you expect to see those patterns? If not, is there a plausible explanation for them? The story lies in the answers to these questions. Support your answers with plots, numbers, and tables.

Sometimes with an open-ended question, you may be unsure of what to add. Here is a good exercise. Ask yourself, “Is this plot I am adding relevant to the question? Is it adding value to the story I want to tell, or is it just a filler?”

Tell the story fully, but be succinct. Learn when to elaborate and when to give a sparknotes version. This is indeed a difficult skill to master.

If you think of homework as writing stories, you may even find yourself having a little fun!