Type, Test, Debug, Learn

Get comfortable with things not working! No one, of any experience level, writes working code on their first try. Try things, be prepared for them to break, and be curious about how they broke.


You won’t fully grasp the concepts unless you actively type the code yourself and experience the many ways things can go wrong. The more errors you encounter, the better! Each mistake you troubleshoot builds your understanding and sharpens your problem-solving skills. Remember, errors are not setbacks, they’re expected. Testing and debugging are vital components of any software development process, and embracing them will help you grow as a coder.

Getting Help When Stuck

If you are stuck, there are many resources to help! Almost all coding issues you’ll encounter have been seen before. Getting used to troubleshooting on your own with documentation, Google, Stack Overflow is an invaluable skill. But if you can’t figure it out on your own, your classmates or the instruction team can help. If you’re really stuck, feel free to email me or the teaching team for help. As with any debugging, detailing the problem is important, so for any email make sure you include the following:

  • A screenshot of the error
  • Steps you’ve taken to debug it
  • The outcome of your debugging efforts
  • The search terms and results you’ve explored
  • (If applicable) The specific prompt you used with an AI tool and the corresponding response it generated

This way, we can turn challenges into valuable learning experiences!

Use of GenAI

Using Generative AI tools such as GPT, Claud, Gemini, Copilot, etc., is permissible; however, you must be able to explain what each line of your code does after submitting your assignment or project. You may also be asked to explain your code during the grading process and reproduce some specific patterns or styles used there, without looking at the code. Failure to meet this requirement will result in no points awarded for the assignment.

Please keep in mind the results of an experiment shared by Esther Shein:

Eric Klopfer conducted an experiment in his undergraduate computer science class at MIT. He divided the class into three groups and gave them a programming task to solve in the Fortran language, which none of them knew.

One group was allowed to use ChatGPT to solve the problem, the second group was told to use Meta’s Code Llama large language model (LLM), and the third group could only use Google. The group that used ChatGPT, predictably, solved the problem quickest, while it took the second group longer. It took the group using Google even longer, because they had to break the task down into components.

Then, the students were tested on how they solved the problem from memory, and the tables turned. The ChatGPT group “remembered nothing, and they all failed,” recalled Klopfer. Meanwhile, half of the Code Llama group passed the test. The group that used Google? Every student passed.

Acknowledgement: Thanks to Martin Fleischmann for the excerpt above.

Recommendations for Using GenAI Tools Effectively

You will lose points if you leave any GenAI “fingerprints” in your code (e.g., boilerplate comments not written by you, example code or helper text, or advanced constructs we have not covered and that you cannot explain). You are responsible for reviewing any GenAI-generated code you use and for ensuring that you fully understand every line you submit. If you cannot explain your own code when asked, you will receive a zero for that activity.

When using GenAI tools to ask coding questions, always request online references and verify them yourself.

  1. Never Share Sensitive or Private Information
    Avoid sharing sensitive, confidential, or private information with web-based or public AI tools, as they may store or process your data in insecure ways.

  2. Ask Clear, Specific Questions
    Frame your questions with context and details. For instance, instead of asking, “Why doesn’t my code work?”, ask, “Why does this Python loop produce a syntax error on line 3?”.

  3. Request and Verify References
    Always ask for references and cross-check the provided information. Open the links, read through the sources, and cross-check the information. This fact-checking step is crucial and often introduces you to new, valuable resources for learning.

  4. Verify Responses with Trusted Sources
    Cross-check AI responses with reputable resources like:
  5. Type the Code Instead of Copying and Pasting
    Typing the code reinforces your learning and helps you understand its structure.

  6. Experiment with the Code
    Test and modify the code in your environment to solidify your understanding and uncover potential issues.

  7. Discover Learning Resources
    Use AI to discover beginner-friendly tutorials, projects, or relevant exercises that support your learning goals.

  8. Be Aware of Limitations
    AI can provide outdated or incorrect information. Treat it as a starting point and thoroughly validate any critical code.

  9. Stay Ethical
    Adhere to academic integrity policies. Credit AI-generated content if required and ensure your work complies with course guidelines.

  10. Practice Problem-Solving
    Explore real-world coding challenges on platforms like LeetCode or Kaggle and use AI to guide you through step-by-step explanations.
  11. Don’t let any tool take away your joy of problem-solving!


This site uses Just the Docs, a documentation theme for Jekyll.