Assignments for students to reflect on their coding process

After students complete their coding assignments, or at designated points during the semester, they can be prompted to reflect on their coding process. Example reflection assignments are provided below. Please copy the assignment below and share with your students or modify it to fit your needs.


Week 1 - Reflection assignment - Think about how you solve problems

This assignment invites you to look back at how you worked on your coding task(s). You will answer questions to help you understand your coding habits and problem-solving approach.

Step 1: Open your coding process report generated by Process Feedback

Start by reviewing your coding process reports from past assignments. You can look at all your reports, your most recent one, or the one from the assignment you found most difficult. Use the online version of your report (not the PDF) so you can click on and explore the charts.

Step 2: Answer these questions about your problem-solving approach

When answering, include dates, times, and examples from your report.

  1. How did you approach the task? What was the first thing you thought when you read the task instructions? What strategies did you use while working on it? For example, did you try different solutions, ask for help, or look up information online? What did you do toward the end of the task? For answering, refer to your coding process report, and mention specific date and time to support your response.
  2. Did you get stuck at any point? When did you feel unsure, frustrated, or stuck? What did you do to move forward? Did this experience reveal any gaps in your knowledge or patterns in how you solve problems? For answering, refer to your coding process report, and mention specific date and time to support your response.
  3. After finishing, how did you make sure your code worked correctly? How did you verify that your code was correct and functioning as expected?
  4. Considering your programming experience, was your time management effective? How long did you work on the task? Do you think the time you spent coding was reasonable? How often did you take breaks? Did your breaks help you complete the task, or did they slow you down? For answering, refer to your coding process report, and mention specific date and time to support your response.
  5. If you had to do this task again, what would you do differently? How would you change your approach to work more efficiently? What strategies could help you solve the task better next time?

Step 3: Submit your reflection

Submit a single document containing the questions above followed by your responses. Be sure to include specific examples, dates, and times from your coding process report to support your points.


Week 2 - Reflection assignment - Think about how you debug

This assignment asks you to look back at how you worked on your coding task(s). You will answer a few questions to help you understand your debugging approach.

Step 1: Open your coding process report generated by Process Feedback

Start by reviewing your coding process reports from past assignments. You can look at all your reports, your most recent one, or the one from the assignment you found most difficult. Use the online version of your report (not the PDF) so you can click on and explore the charts.

Step 2: Answer these questions about your debugging approach

When answering, include dates, times, and examples from your report.

  1. How many times did you run your code overall? How many of these executions were successful, and how many ended in errors or failures? What was the longest streak of consecutive failures? Refer to the “Code Execution” chart in your coding process report to identify patterns or notable clusters of runs. Include specific dates and times (e.g., “On February 12 at 3:15 PM, I had three failed runs in a row”).
  2. What percentage of your time did you spend on debugging activities? Reflect on whether debugging was concentrated at the beginning, in the middle, or towards the end. Look at your coding process report and note when you started and ended your debugging sessions.
  3. What was your most common approach to debugging (e.g., trial and error, print statements)? Were these methods effective? Why or why not? Refer to your coding process report for any evidence of switching strategies or repeatedly using a certain approach.
  4. What types of bugs or errors did you encounter most frequently? How did you resolve them? Did you notice any patterns—e.g., repeated syntax issues or a recurring logic mistake? Hover on the code executions in the “Code Executions” chart in your online coding process reports to see the errors encountered.
  5. If you had more time, how would you have approached debugging or testing differently? Would you have added more tests? Tried different debugging tools? Consider any insights from your report about where you spent the most time or got stuck.

Step 3: Submit your reflection

Submit a single document containing the questions above followed by your responses. Be sure to include specific examples, dates, and times from your coding process report to support your points.


Week 3 - Reflection assignment - Think about how you test your code

This assignment asks you to reflect on your testing process and how you ensure your code works correctly. By examining your testing strategies, you can better understand how to catch bugs proactively.

Step 1: Open your coding process report generated by Process Feedback

Start by reviewing your coding process reports from past assignments. You can look at all your reports, your most recent one, or the one from the assignment you found most difficult. Use the online version of your report (not the PDF) so you can click on and explore the charts.

Step 2: Answer these questions about your testing approach

When answering, include dates, times, and examples from your report.

  1. How did you test your code during development? Did you write test cases upfront, test as you coded, or only test at the end? Mention specific times or dates from your report when you ran your tests or introduced new test cases.
  2. How many of your code executions were specifically to check your code’s correctness rather than to debug errors? Refer to the “Code Executions” chart in your process report and include examples.
  3. At what time of your coding process did you write most of your code comments? How did you use code comments in your testing process? Did you write comments to explain particular test cases or document the expected outcomes? Refer to the “Code Comments” chart in your process report and include specific examples.
  4. If you had more time, how might you have tested your code differently? What additional tests or testing strategies would you consider using next time?

Step 3: Submit your reflection

Submit a single document containing the questions above followed by your responses. Be sure to include specific examples, dates, and times from your coding process report to support your points.


(Optional) Week 4 - Reflection assignment - Think about how you use AI tools

This assignment asks you to look back at how (and when) you used AI tools (e.g., ChatGPT, GitHub Copilot) while completing your coding tasks. You will answer a series of questions to reflect on the benefits and challenges of AI usage.

Step 1: Open your coding process report generated by Process Feedback

Start by reviewing your coding process reports from past assignments. You can look at all your reports, your most recent one, or the one from the assignment you found most difficult. Use the online version of your report (not the PDF) so you can click on and explore the charts.

Step 2: Answer these questions about your problem-solving approach

When answering, include dates, times, and examples from your report.

  1. Which AI tools did you use during this assignment or in past ones (e.g., ChatGPT, GitHub Copilot)? For what specific tasks or purposes did you use them (e.g., planning, code generation, debugging, testing, documentation)? Refer to the “Copy-Paste Event” section and “AI Feedback” section of your process report.
  2. At what stages of your coding process did you consult AI? (For example, only at the start, throughout the process, or near the end?) How often did you rely on AI tools compared to researching solutions manually (e.g., reading documentation, Stack Overflow)?
  3. Did AI-generated suggestions improve your workflow or code quality? Were there any moments when AI suggestions saved you significant time or effort? Provide specific examples (with dates/times from your report).
  4. Did you encounter any confusing, incorrect, or unhelpful AI outputs? How did you verify or correct AI-generated solutions? Did you feel you had to rely heavily on your own knowledge to interpret or improve the AI’s suggestions?
  5. Imagine you didn’t have access to any AI tools. How would that have impacted your coding process or final solution? Would you have needed more time, or used different research strategies?
  6. How will this experience change how you will use AI tools in the future?

Step 3: Submit your reflection

Submit a single document containing the questions above followed by your responses. Be sure to include specific examples, dates, and times from your coding process report to support your points.


References

  1. Zarestky et al., Computers and Education Open, 2022, “Reflective Writing Supports Metacognition and Self-regulation in Graduate Computational Science and Engineering.”
  2. Donald Schön, 1983, “The Reflective Practitioner: How Professionals Think in Action.”

Last Published: Feb 22, 2025