Appendix E — Appendix E: Discord, Office Hours, and Getting Help

Appendix E: Getting Help

How and when to ask for help during the course. Read this once at the start; come back when you are stuck.

E.1 The escalation ladder

When something is not working, in this order:

  1. Re-read the chapter. Often the explanation is there and you missed it the first time.
  2. Re-read the error message. Compiler errors look intimidating but they tell you exactly what the problem is. Read the first error; the rest are usually cascading.
  3. Look at the LeetCode submission archive at ~/leetcode-submissions/ for similar problems. The pattern may be familiar.
  4. Search the course Discord. Someone may have asked your exact question already.
  5. Ask on Discord. Students answer at all hours; I read but do not always reply quickly.
  6. Office hours. Live, face-to-face. Best for big-picture confusion or architecture questions.
  7. Email me. Last resort for sensitive issues. For technical questions, Discord is better.

E.2 How to ask a good question

The difference between a question that gets answered in 5 minutes and one that gets ignored is specificity.

Bad: > “My code doesn’t work, help?”

Better: > “On P2 problem 3, my operator<< outputs garbage for empty Fractions. Code: > > // [paste the relevant 10 lines] > > Input: Fraction f; cout << f;. Expected: 0/1. Actual: random bytes. > What I have tried: added a debug print before the <<, the fields seem uninitialized.”

The second one tells the helper exactly what you tried, what you saw, and what you expected. They can answer in one paragraph.

E.3 What I expect of you

  • Show your code. Snippets, not just symptoms.
  • Show what you have tried. “I have not tried anything” is not acceptable.
  • Format your code in Discord with triple backticks (```cpp … ```).
  • If a TA or peer answered your question well, thank them. People volunteer their time.
  • Do not post screenshots of code unless the code is two lines. Screenshots cannot be copied.

E.4 What I will not do

  • Debug your code for you. I will point at the bug; you fix it.
  • Tell you the answer to a graded problem. I will explain a similar problem.
  • Respond to “is my code correct?” without seeing test output.
  • Read DM threads of 20 messages. If it is that long, come to office hours.

E.5 Discord norms

  • Course channel for questions about the material. Off-topic in #offtopic.
  • #general for class-wide announcements (mine).
  • DM only for personal/sensitive matters.
  • No name-and-shame. If a classmate’s posted code has a bug, send them a DM, not a public callout.

E.6 When you find a typo in this book

Three options:

  1. Mention it in #book-feedback on Discord.
  2. Open an issue on GitHub.
  3. Fix it and send a pull request.

Option 3 gets your name in the next edition’s acknowledgements.

E.7 A note on AI

Every quarter the question comes up: can I use ChatGPT/Claude/Copilot for assignments?

The course policy is on the syllabus; check there first. My general position:

  • AI is a tool, like a calculator. You should learn to use it well.
  • AI cannot take the exam for you. If you used AI for everything, the exam will be unpleasant.
  • Be honest about it. If AI wrote a function, say so in a comment or in your AI log. Honesty makes everything easier.
  • Reading AI code is a skill. Sometimes AI writes confidently wrong code. The skill is recognizing when. That skill develops from writing code yourself first.

Use AI to learn. Use AI to debug. Use AI to explore. Do not use AI to skip the learning.

For more on my (evolving) thinking on AI in education, see my substack and the persona files in this repo.