Dr. Fatema Nafa

AI for Programming: Teaching Approach

Learn to use AI as a programming assistant while taking responsibility for the result. These activities guide students to formulate a problem, prompt AI tools, examine generated code, test its behavior, identify errors, and justify improvements. Submit the saved JSON record as evidence of your evaluation and reasoning.

3 Practice Tools

Problem Planner

Pseudocode, Design, and Validation

Break down any coding problem before writing a single line. Design your solution step by step in pseudocode, then implement, verify, and validate it with structured test cases.

Week SelectorPseudocode DesignStep-by-Step WorkflowTest CasesJSON Export
Open Problem Planner

Bug Hunter

Syntax, Logic, and Design Errors

Find and fix bugs in C++ code samples organized by week. Three difficulty levels with syntax highlighting, a live challenge timer, and automatic grading on every submission.

Week SelectorSyntax ErrorsLogic ErrorsDesign ErrorsAuto-GradingJSON Export
Open Bug Hunter

Code Judge

Compare, Evaluate, and Review

Compare two C++ solutions side by side. Evaluate readability, correctness, efficiency, and design quality then write structured code review comments like a professional engineer.

Side-by-Side Code5 Analysis QuestionsRubric RatingReview CommentsVerdict GeneratorJSON Export
Open Code Judge

How It Works

For Students

  • Start with Problem Planner for every new assignment
  • Read the problem carefully and identify all requirements first
  • Design your pseudocode before writing any code
  • Use Bug Hunter weekly to sharpen your debugging instincts
  • Use Code Judge to practise professional-level code review
  • Export your completed worksheet as a JSON file to submit

For Instructors

  • Review submitted JSON files for each student submission
  • Update debug challenges by week and difficulty level
  • Change code review scenarios each semester
  • Track session timing and self-assessment scores
  • Use JSON exports for ABET outcome evidence