# Programming Exercises Overview

> **Portal:** `/lms` · **Desk:** Learning workspace

---

## Overview

**LMS Programming Exercise** brings coding assessments to Smooth LMS. Learners write code in a browser editor; submissions run against test cases server-side to determine pass/fail. Use programming exercises for technical training—API usage, scripting automation, data skills—not for general HR policy quizzes.

Enable the feature in **LMS Settings** → **Programming Exercises** section before creating exercises. Exercises attach to courses, lessons, and cohort assessments like quizzes and assignments.

## Architecture

| Record | Purpose |
|---------|---------|
| **LMS Programming Exercise** | Problem statement, starter code, test cases, language |
| **LMS Programming Exercise Submission** | Learner code, execution status, test results |

Submissions store code and link to test case results in child rows. API methods in `lms.lms.api` execute code in a sandboxed environment and update submission **Status** (Pass/Fail/In Progress).

The portal exposes **Programming Exercises** and **Programming Exercise Submissions** pages for learners and reviewers.

## Creating an exercise

1. Confirm **Programming Exercises** enabled in **LMS Settings**.
2. Open **`/app/lms-programming-exercise`** → **New**.
3. Enter **Title** and problem description (rich text).
4. Select programming **Language** supported by the runner.
5. Provide **Starter Code** template learners begin from.
6. Define **Test Cases** child table:
   - Input values
   - Expected output
   - Hidden vs visible (visible help debugging; hidden prevent hard-coding)
7. Link **Course** and optionally embed in **Course Lesson**.
8. Save and publish parent course.

Test thoroughly with a moderator account before assigning to employees.

## Learner experience

1. Open exercise from course lesson or **Programming Exercises** list in `/lms`.
2. Read problem statement; starter code loads in editor.
3. Write solution; click **Run** for sample tests or **Submit** for full evaluation.
4. View pass/fail per test case; iterate until all pass (if attempts allowed).

Failed hidden tests show count but not details—encourages robust solutions rather than output matching.

## Reviewing submissions

Trainers open **`/app/lms-programming-exercise-submission`** or portal **Programming Exercise Submissions**:

- Filter by exercise, member, status
- Inspect submitted **Code**
- Override status if manual review needed (edge cases, partial credit policies)

Cohort **Assessments** with type **LMS Programming Exercise** appear on batch dashboards with completion counts.

## When to use programming exercises

Ideal for:
- Engineering onboarding labs
- Data analyst SQL/Python modules
- IT automation certification prep

Not ideal for:
- General HR compliance (use quizzes)
- Document collection (use assignments)
- Non-technical roles without IDE comfort

Most HR-led mandatory training programs rely on quizzes and assignments; programming exercises serve specialized L&D tracks.

## HR integration notes

Technical certification completion may still produce **LMS Certificate** records when tied to course completion. File PDF proof in [Employee Document](https://smoothhiring.com/help/hrms/documents-compliance/employee-documents) when external accreditation requires code assessment records—export submission details from desk or custom reports.

[Employee Compliance](https://smoothhiring.com/help/hrms/documents-compliance/employee-compliance) tracks regulatory items separately; map internal engineering competency programs to custom compliance types if renewal applies.

## Security considerations

Code execution runs server-side with sandbox restrictions. System Managers should:

- Keep LMS app updated for security patches
- Limit exercise creation to trusted **Course Creator** roles
- Avoid exercises that prompt learners to embed secrets or production credentials
- Monitor resource usage on peak usage during large cohort submissions

## Tips

- Start with visible test cases; add hidden cases after pilot.
- Provide starter code with function signatures documented.
- Link exercises to prerequisite reading lessons.
- Use cohort assessments for deadline-driven technical bootcamps.

## Troubleshooting

| Issue | What to do |
|-------|------------|
| Feature not visible | Enable in **LMS Settings** |
| All tests fail | Contact Smooth support; verify starter code in the exercise |
| Timeout errors | Optimize test cases; increase limits if configurable |
| Submission stuck In Progress | Re-run submit; check worker logs |

---

## Frequently asked questions

### Does LMS training completion automatically update Employee Compliance?

No. Smooth LMS tracks learning progress, quiz scores, and certificates. Smooth HR **Employee Compliance** is updated separately by HR when a regulatory or policy requirement is satisfied. Download LMS PDFs and attach them to [Employee Document](https://smoothhiring.com/help/hrms/documents-compliance/employee-documents), then mark the matching compliance row **Complete** with the correct renewal date.

### Where should quiz PDFs be stored for audits?

Use [Employee Document](https://smoothhiring.com/help/hrms/documents-compliance/employee-documents) on the employee record with an appropriate **Employee Document Type** (for example Training Record or Policy Acknowledgment). Include the **Quiz Submission Report** PDF exported from LMS. For organization-wide retention policies, align document type expiry settings with [Employee Compliance](https://smoothhiring.com/help/hrms/documents-compliance/employee-compliance) renewal periods.

### Which desk workspace manages LMS content?

Open the **Learning** workspace from the app switcher. Desk paths use `/app/list name` slugs—for example `/app/lms-quiz` and `/app/lms-enrollment`. Learners consume training at `/lms` on the same site.

### How do new hires get enrolled in mandatory training?

When **Employee Onboarding** is created in HRMS, the LMS integration enrolls the employee user in every published **Mandatory** course and creates **LMS Training Assignment** rows with default due dates. Ensure the **Employee** record has a linked **User** with the **LMS Student** role.

### What is the difference between an LMS Certificate and HR compliance?

An **LMS Certificate** proves course completion inside Smooth LMS. **Employee Compliance** in Smooth HR tracks regulatory obligations (training renewals, I-9, background checks) with scheduled expiry alerts. Course certificates do not automatically appear on the HR compliance ledger—HR attaches LMS PDFs to [Employee Document](https://smoothhiring.com/help/hrms/documents-compliance/employee-documents) and updates [Employee Compliance](https://smoothhiring.com/help/hrms/documents-compliance/employee-compliance) when policy requires.

### Can managers view their team's quiz scores?

Managers with **Moderator** or **Course Creator** roles can open **LMS Quiz Submission** list views filtered by course and member. The **Statistics** dashboard summarizes average assessment scores by course. For official personnel files, export PDFs and store under the employee's HR documents rather than sharing desk login credentials.

## Glossary

| Term | Definition |
|------|------------|
| **LMS Course** | Training container with chapters, lessons, and assessments |
| **LMS Enrollment** | Links a User (employee) to a course with progress tracking |
| **LMS Quiz** | Assessment document composed of linked questions |
| **LMS Quiz Submission** | Record of one learner attempt with scored results |
| **LMS Training Assignment** | Due-date tracker for assigned mandatory training |
| **LMS Certificate** | Issued credential after course or evaluation completion |
| **Mandatory course** | Published course flagged for auto-enrollment on onboarding |
| **Cohort (LMS Batch)** | Scheduled group of learners with shared live sessions and assessments |
| **Employee Document** | HR file-cabinet record for attachments on the employee profile |
| **Employee Compliance** | HR ledger for regulatory and policy compliance status with renewals |
## Smooth LMS + Smooth HR capability map

Use **Smooth LMS** for training delivery and assessments, and **Smooth HR** for employee files and compliance records — both on the same account.

| Business need | Primary app | How |
|---------------|-------------|-----|
| Online training library | **Smooth LMS** | **LMS Course** with chapters, lessons, video/PDF/SCORM, quizzes, assignments |
| Assign training + track progress | **Smooth LMS** | **LMS Enrollment**, **LMS Training Assignment**, cohort batches, progress dashboards |
| Print completed tests as PDF | **Smooth LMS** | **LMS Quiz Submission** → **Quiz Submission Report** print format |
| Course completion certificates | **Smooth LMS** | **LMS Certificate** with customizable print templates |
| Employee file storage | **Smooth HR** | [Employee Document](https://smoothhiring.com/help/hrms/documents-compliance/employee-documents) with document types and expiry |
| Regulatory compliance tracking | **Smooth HR** | [Employee Compliance](https://smoothhiring.com/help/hrms/documents-compliance/employee-compliance) with **Compliance Type** renewals |
| New hire document collection | **Smooth HR** | **Employee Onboarding** portal + e-signatures |

Course completion certificates from LMS are separate from HR compliance records until HR explicitly files them. Attach LMS PDFs to **Employee Document** or update **Employee Compliance** when a training record must appear on the official employee file for audits.
## LMS roles reference

| Role | Capabilities |
|------|----------------|
| **System Manager** | Full desk access; configure LMS Settings, print formats, AI keys |
| **Moderator** | Manage all courses, quizzes, enrollments, certificates, statistics |
| **Course Creator** | Author courses, quizzes, assignments; view learner submissions for own content |
| **Batch Evaluator** | Grade submissions, conduct certificate evaluations, manage cohort assessments |
| **LMS Student** | Access `/lms` portal; take quizzes; view own certificates and assignments |

HR users without LMS roles can still manage [Employee Document](https://smoothhiring.com/help/hrms/documents-compliance/employee-documents) and [Employee Compliance](https://smoothhiring.com/help/hrms/documents-compliance/employee-compliance) records when L&D provides exported PDFs.
## Connecting training records to Smooth HR

Smooth LMS and Smooth HR share one account. Completing a course does not automatically update HR compliance—you connect the two when your policy requires it.

| LMS artifact | HR destination | When to use |
|--------------|----------------|-------------|
| **LMS Certificate** PDF | [Employee Document](https://smoothhiring.com/help/hrms/documents-compliance/employee-documents) | Store course completion certificate on the employee file |
| **Quiz Submission Report** PDF | [Employee Document](https://smoothhiring.com/help/hrms/documents-compliance/employee-documents) | Retain scored test results (safety quizzes, policy acknowledgments) |
| Mandatory training status | [Employee Compliance](https://smoothhiring.com/help/hrms/documents-compliance/employee-compliance) | Track renewal dates, expiry alerts, and audit-ready compliance status |

**Recommended workflow:** When an employee completes mandatory training and passes required assessments, download the LMS certificate or quiz PDF from the Learning portal or desk, then attach it to an **Employee Document** or update the corresponding **Employee Compliance** record. HR Managers can configure **Compliance Type** with renewal periods so expiring certifications trigger scheduled reminders—complementing LMS **Training Assignment** due dates.

New hires enrolled via **Employee Onboarding** may receive automatic LMS enrollments for courses marked **Mandatory**; HR still uses **Employee Compliance** for regulatory items (I-9, background checks) that live outside LMS.
---

## Related guides

- [Quizzes Overview](https://smoothhiring.com/help/lms/assessments/quizzes/overview)
- [Assignments Overview](https://smoothhiring.com/help/lms/assessments/assignments/overview)

---

_Last updated: May 2026_
