Skip to main content
This guide covers everything instructors need to create programming assignments, add problems, manage submissions, and grade student work.

Instructor Roles

Wecode has two instructor-level roles: Head Instructor
  • Create and manage classes (lops)
  • Create assignments for their classes
  • Add instructors and students
  • Full control over their classes
Instructor
  • View classes they belong to
  • Create problems and assignments
  • Add students only
  • Limited to resources they create
This guide applies to both Head Instructors and Instructors unless specifically noted.

Creating Classes

Only Head Instructors and Admins can create classes. Regular instructors must be added to existing classes.
Classes (called “Lops”) organize students and assignments:
1

Navigate to Classes

Click “Classes” or “Lops” in the main navigation
2

Create New Class

Click “Add New Class” or “Create”
3

Enter Class Details

  • Name: Class identifier (e.g., “CS 101 - Spring 2024”)
  • Open: Check to allow student self-enrollment
  • User List: Enter usernames of students to enroll (comma or space-separated)
4

Save Class

Click “Create” - you are automatically enrolled as the instructor

Managing Class Enrollment

To add or remove students from a class:
1

Open Class

Click on the class name in the class list
2

Add Students

Enter additional usernames in the “User List” field
3

Remove Students

Check the boxes next to students you want to remove
4

Save Changes

Click “Update” to apply enrollment changes
When a class is “Open”, students can self-enroll. When closed, only instructors can add students.

Creating Assignments

Assignments are homework sets containing one or more programming problems.

Assignment Creation Workflow

1

Navigate to Assignments

Click “Assignments” in the main menu, then “Create New Assignment”
2

Enter Basic Information

  • Name: Assignment title (required, max 150 characters)
  • Description: Optional detailed description
  • PDF File: Optional PDF with full assignment details
3

Set Time Parameters

Start Time
  • Date and time when students can begin submitting
  • Students cannot submit before this time
Finish Time
  • Primary deadline for the assignment
  • Used for calculating late penalties
Extra Time
  • Additional time after finish time (in hours)
  • Can use expressions like:
    • 24 (24 hours)
    • 2*24 (2 days)
    • 7*24*60*60 (1 week in seconds)
  • Submissions accepted until: finish_time + extra_time
4

Configure Late Policy

Enter a mathematical expression for late submission penalties:Common formulas:
// No late submissions accepted
delay <= 0 ? 100 : 0

// 10% penalty per hour late
max(0, 100 - (delay/3600)*10)

// Full credit within extra_time, then 0
delay <= extra_time ? 100 : 0

// 20% penalty per day, minimum 0%
max(0, 100 - floor(delay/86400)*20)
Variables available:
  • delay: Seconds after finish_time
  • extra_time: Your extra time in seconds
5

Add Problems

Click “Add Problem” to include problems in the assignment:
  • Problem: Select from available problems
  • Problem Name: Custom name for this assignment (optional)
  • Score: Points for this problem (e.g., 100)
  • Ordering: Drag to reorder problems
You can add multiple problems to create a problem set.
6

Select Programming Languages

Check which languages students can use:
  • C++
  • C
  • Python 2/3
  • Java
  • Pascal
  • Others as configured
7

Assign to Classes

Select which classes can access this assignment
8

Configure Visibility

  • Open: Students can submit (uncheck to close assignment)
  • Scoreboard: Enable public ranking (optional)
9

Create Assignment

Click “Create” to publish the assignment

Assignment Settings Explained

Start Time and Finish Time
  • Start time: When assignment becomes available
  • Finish time: Official deadline
  • If start_time >= finish_time, the assignment never closes (useful for practice)
Score Board
  • When enabled, students see rankings
  • Shows relative performance
  • Updates in real-time as submissions are judged
Open Status
  • Open: Students can submit
  • Closed: Submissions disabled (except for instructors)
  • Toggle anytime to pause/resume submissions

Managing Assignments

Editing an Assignment

1

Find Assignment

Go to Assignments list
2

Click Edit

Click the edit icon or assignment name
3

Modify Settings

Change any assignment parameters:
  • Times and deadlines
  • Problems and scores
  • Class assignments
  • Language restrictions
4

Save Changes

Click “Update” - changes apply immediately
Changing problem scores or late policies after submissions exist will affect existing grades. Consider rejudging submissions after major changes.

Duplicating an Assignment

To create a similar assignment:
  1. Click “Duplicate” next to any assignment
  2. A copy is created with the same problems and settings
  3. Edit the duplicate to adjust for the new semester/class

Deleting an Assignment

Deleting an assignment permanently removes all associated submissions. This cannot be undone.
  1. Click the delete icon
  2. Confirm deletion
  3. Assignment, submissions, and queue items are removed

Working with Problems

Viewing Available Problems

Instructors can use:
  • Problems they created
  • Sharable problems from other instructors
  • Admins can use any problem
Filter problems by:
  • Search term (problem name)
  • Tags
  • Owner
  • Usage statistics

Creating Problems

See the detailed Creating Problems Guide for complete instructions on:
  • Problem creation workflow
  • Test case structure
  • Writing descriptions
  • Configuring languages and limits
  • Template code

Problem Settings

Allow Practice
  • Enables students to submit outside assignments
  • Appears in Practice mode
Sharable
  • Makes problem visible to other instructors
  • They can add it to their assignments
  • Only you can edit it
Allow Input/Output Download
  • Students can download test cases
  • Helpful for local debugging
  • Consider privacy implications

Viewing Submissions

Submissions List

Access submissions at /submissions/index/{assignment_id}: Filter options:
  • User: View specific student (or “all”)
  • Problem: View specific problem (or “all”)
  • Type: All submissions or final only
Information shown:
  • Submission ID and timestamp
  • Student username
  • Problem name
  • Language used
  • Status (PENDING, ACCEPTED, WRONG ANSWER, etc.)
  • Score (pre-score × coefficient)
  • Delay from deadline

Viewing Submission Details

Click on any submission to see: Code Tab
  • Student’s submitted source code
  • Syntax highlighted by language
Result Tab
  • Verdict for each test case
  • Time and memory usage
  • Error messages if compilation failed
Log Tab
  • Detailed judging log
  • Compiler output
  • Runtime errors

Understanding Verdicts

ACCEPTED (AC)
  • Output matches expected output exactly
  • Passed all test cases
  • Score: 10000 (100.00%)
WRONG ANSWER (WA)
  • Output differs from expected
  • Partial credit based on test cases passed
TIME LIMIT EXCEEDED (TLE)
  • Program took too long
  • Check time limit settings
MEMORY LIMIT EXCEEDED (MLE)
  • Program used too much memory
  • Check memory limit settings
RUNTIME ERROR (RE)
  • Program crashed during execution
  • Common causes: segfault, array bounds, null pointer
COMPILATION ERROR (CE)
  • Code did not compile
  • Check compiler output in log
PENDING
  • Submission queued for judging
  • Should process within seconds/minutes

Rejudging Submissions

Rejudge when you:
  • Fix test cases
  • Change time/memory limits
  • Update problem configuration
Rejudge a single submission:
  1. Click the rejudge icon next to the submission
  2. Status changes to PENDING
  3. Submission is re-evaluated
Rejudge all submissions for an assignment:
1

Access Rejudge Page

Navigate to the assignment, click “Rejudge”
2

Select Scope

Choose:
  • All problems
  • Specific problem only
3

Confirm

Click “Rejudge All” - this queues all submissions
4

Wait for Processing

Monitor the queue until all submissions are rejudged
After rejudging, you may want to reload the scoreboard to reflect updated scores.

Scoreboards

Viewing Assignment Scoreboards

1

Navigate to Scoreboard

Click “Scoreboard” in the assignment view
2

Review Rankings

See student rankings with:
  • Total score
  • Score per problem
  • Number of attempts
  • Submission times
Scoreboard views:
  • Full: Complete details with submission times
  • Simplified: Scores only, no timestamps
  • Plain: Text-only for copy/paste

Reloading Scoreboard

If scores seem incorrect:
  1. Navigate to the assignment
  2. Click “Reload Scoreboard”
  3. System recalculates all final submissions
  4. Students’ chosen final submissions are reset to best scores

Class Scoreboards

View cumulative performance across all assignments:
  1. Go to Classes page
  2. Click “Scoreboard” next to a class
  3. See aggregate scores for all students in all class assignments

Downloading Submissions

Download student code for:
  • External grading
  • Plagiarism detection
  • Record keeping
  • Code review

Download Options

All Submissions (ZIP)
  • Complete assignment folder
  • All students, all attempts
  • Includes test cases and results
Final Submissions by User
  • One file per student per problem
  • Folder structure:
    assignment_X_by_user/
      student1/
        problem_1.cpp
        problem_2.py
      student2/
        problem_1.java
    
Final Submissions by Problem
  • One file per student per problem
  • Folder structure:
    assignment_X_by_problem/
      problem_1/
        student1.cpp
        student2.cpp
      problem_2/
        student1.py
        student2.py
    
1

Navigate to Assignment

Go to the assignment page
2

Click Download

Choose your preferred download format
3

Save ZIP

Browser downloads the ZIP file automatically
4

Extract and Review

Unzip to access student code files

Plagiarism Detection with Moss

Moss (Measure of Software Similarity) detects code similarity.
Moss integration must be configured by your system administrator. You’ll need a Moss User ID.

Running Moss Detection

1

Navigate to Moss Page

Click “Moss” in the main menu
2

Select Assignment

Choose the assignment to check
3

Run Detection

Click “Detect Plagiarism”
4

Wait for Results

Processing may take several minutes depending on submission count
5

Review Moss Report

Click the generated Moss link to see similarity percentages

Interpreting Moss Results

Moss shows:
  • Pairs of similar submissions
  • Percentage similarity
  • Side-by-side code comparison
  • Highlighted matching sections
What to look for:
  • High similarity (>80%) between different students
  • Identical variable names and structure
  • Similar unusual approaches
False positives:
  • Template code (if provided)
  • Simple problems with few solutions
  • Common algorithms
Moss is a tool to identify suspicious submissions. Always review code manually before making accusations.

Best Practices

Assignment Design

1

Start Early

Create assignments well before the start date to test thoroughly
2

Test Problems

Submit sample solutions to verify test cases work correctly
3

Set Reasonable Time Limits

  • Test your solution
  • Allow 2-3× your solution’s runtime
  • Consider less efficient student approaches
4

Provide Clear Descriptions

  • Input format and constraints
  • Output format
  • Sample inputs/outputs
  • Edge cases
5

Configure Late Policy

  • Decide on penalty structure
  • Communicate policy to students
  • Set appropriate extra_time

During Assignment

1

Monitor Submissions

Check regularly for:
  • Common errors indicating unclear problems
  • Submissions stuck in queue
  • Unexpected failures
2

Answer Questions Promptly

Students may email about:
  • Clarifications on problem statements
  • Technical issues
  • Grading questions
3

Handle Edge Cases

If test cases are wrong:
  • Fix the problem
  • Rejudge all submissions
  • Announce the correction

After Assignment

1

Review Scoreboard

Check for:
  • Unexpectedly low scores
  • Problems too easy/hard
  • Common mistakes
2

Run Plagiarism Detection

Use Moss before finalizing grades
3

Download Submissions

Archive for records
4

Provide Feedback

Consider:
  • Posting sample solutions
  • Discussing common errors
  • Highlighting good approaches

Problem Creation Tips

  • Use clear, descriptive names for easy identification
  • Tag problems by topic (arrays, recursion, etc.)
  • Mark sharable if you want others to use them
  • Enable practice after assignment deadline for student review
  • Include edge cases in test data (empty input, maximum values, etc.)
  • Provide template code for complex I/O or starter structure

Troubleshooting

Students Can’t Submit

Check:
  • Assignment is “Open”
  • Current time is after start_time
  • Student is enrolled in a class assigned to the assignment
  • Assignment hasn’t exceeded finish_time + extra_time

Submissions Stay Pending

Solutions:
  • Check queue status
  • Contact administrator if queue is stuck
  • Verify problem test cases exist
  • Check problem directory permissions

Wrong Scores

Causes:
  • Late policy calculation issues
  • Problem scores changed after submission
  • Coefficient errors
Fix:
  • Reload scoreboard
  • Rejudge submissions
  • Check late_rule formula

Scoreboard Not Updating

Solutions:
  1. Click “Reload Scoreboard”
  2. Check that scoreboard is enabled for assignment
  3. Verify submissions are judged (not PENDING)

Summary

As an instructor, you can:
  • ✅ Create and manage classes
  • ✅ Design programming assignments
  • ✅ Add problems from the problem bank
  • ✅ Monitor student submissions in real-time
  • ✅ Grade automatically with custom test cases
  • ✅ Download submissions for review
  • ✅ Detect plagiarism with Moss
  • ✅ Customize late policies and scoring
  • ✅ Track class performance with scoreboards
For creating problems, see the Creating Problems Guide. For administrative tasks, see the Admin Guide.

Build docs developers (and LLMs) love