Code Review & Annotation
Comprehensive guide to reviewing student code with inline comments, visual annotations, drawing tools, and discussion threads.
Where to Find It
Navigation: Go to Activities → [Your Activity] → Submissions
Click any student's row to open the Submission Review view, which displays:
- Code panel with syntax highlighting
- Review tools (comments, annotations, discussions)
- Test results and grading controls
Inline Comments
Add line-anchored feedback that appears directly on the code line you select. Perfect for quick corrections, style notes, and pointing out specific issues.
How to Add a Comment
Click the Line Number
Or select a code span to highlight multiple lines
Choose "Add Comment"
A comment box will appear anchored to that line
Type Your Feedback
Students see comments on the exact line you selected
Use Cases
Quick Corrections
Point out syntax errors, typos, or missing semicolons
Style & Readability
Suggest better variable names, formatting, or code structure
Boundary Conditions
Highlight missing edge case handling or input validation
I/O Format Issues
Point out extra spaces, newlines, or case sensitivity problems
Pro Tip: Summary + Details
Add a short summary comment at the top of the file (e.g., "Good logic; watch whitespace and variable names"), then add detailed inline comments where needed. This gives students a quick overview before diving into specifics.
What Students See
Comments appear on the exact line you selected, so students can instantly connect your feedback to the relevant code.
// Line 15
if (x = 0) { // Assignment instead of comparison
Teacher Comment:
Use == for comparison, not =. This assigns 0 to x!
Drawing Tools (Visual Callouts)
Draw shapes, arrows, highlights, and freehand annotations directly over the code panel. Perfect for visual learners and complex feedback scenarios.
Available Tools
Rectangles
Box around code blocks, loops, or classes
Circles
Highlight specific variables or expressions
Arrows
Point to missing checks or control flow
Freehand
Sketch custom shapes or underlines
Text Insert
Add floating text labels anywhere
Highlighter
Emphasize code spans without covering text
Line Weight
Adjust thickness (thin → thick)
Line Colors
Choose from multiple color options
Undo / Redo
Quickly adjust if you mark the wrong area
How to Use
1. Select a Tool
Choose a shape, arrow, highlighter, or text tool from the annotation toolbar
2. Draw on the Code Panel
Click and drag to create shapes, arrows, or highlights directly over the code
3. Customize Colors & Weights
Use colors and line weights to create visual hierarchy
Color Strategy
Red = Errors
Logic bugs, syntax errors, critical issues
Yellow = Caution
Warnings, style issues, potential improvements
Green = Praise
Good code, clever solutions, best practices
Best Practices
Arrows + Text for Control Flow
Great for explaining loops, conditionals, or pointing to missing edge case checks
Shapes to Label Blocks
Use rectangles/circles to label sections as "loop body", "I/O parsing", or "edge case handler"
Highlighter for Emphasis
Emphasize spans of code without covering the text (semi-transparent highlighting)
Keep Annotations Concise
Don't clutter the code panel. Focus on key issues so the code remains readable
Use Undo/Redo Freely
Experiment with different annotations—undo lets you adjust quickly if you mark the wrong area
Discussion Threads
Start per-submission conversations to discuss deeper issues like algorithm choice, design tradeoffs, or conceptual misunderstandings that require back-and-forth dialogue.
How It Works
Start a Thread
Click "Start Discussion" on any submission to open a conversation space
Open/Close Controls
Teachers can open a thread to invite replies or close it when the topic is resolved
Multi-Message Back-and-Forth
Students can reply to your messages, creating an ongoing conversation thread
When to Use Threads vs. Comments
Inline Comments
Best for:
- • Pinpointed fixes on specific lines
- • Style and readability notes
- • Exact syntax or logic errors
- • Quick one-way feedback
Discussion Threads
Best for:
- • Conceptual misunderstandings
- • Algorithm or design feedback
- • Multi-message conversations
- • Open-ended questions
Close Threads When Resolved
After a discussion is resolved, close the thread so students know where to focus their attention next. This keeps the submission clean and organized.
Reviewing & Re-grading Together
From the submission view, you can review (comments/annotations/threads) and then re-grade the same attempt if needed.
How Re-grading Works
Per-Test Mode
Adjust which tests count as passed or failed (e.g., change 3/5 to 4/5). The score updates immediately based on your allocations.
Percentage-Based Mode
Changing the pass/fail status of tests automatically recalculates the percentage score (passed tests / total tests × 100).
Academic Integrity Deductions
If your activity has integrity deductions (e.g., missing name/ID comment), the final score shown will automatically include those deductions.
Teacher Tips
1. Triage First
Scan the test breakdown before diving into annotations. Focus your review on the lines that caused test failures.
2. One Focus Per Mark
Keep each comment or annotation focused on a single issue. This makes fixes clear and actionable for students.
3. Close Threads When Resolved
After a discussion is complete, close the thread so students know where to focus their attention next.
4. Use Color Strategically
Red for errors, yellow for warnings, green for praise. Consistent colors help students quickly identify issue severity.
5. Combine Tools
Use arrows to point, shapes to label, and inline comments to explain. Multi-tool feedback is most effective.
6. Summary + Details
Start with a high-level summary comment at the top, then add detailed feedback on specific lines.