Teaching
Teach a course
Run computational courses with student projects, assignments, collection, grading, and feedback.
What courses are for
CoCalc courses manage computational classes where files, notebooks, terminals, software environments, realtime help, and grading all live in student projects. The course file is the instructor control center; student work happens in ordinary CoCalc projects.
Use courses when students need to run code, write notebooks, edit LaTeX, submit files, receive feedback, or get help in the same environment where the work runs.
Core workflow
- Create a course file in an instructor project.
- Add students or invite them by email.
- Prepare assignment files in the instructor project.
- Assign files into student projects.
- Monitor progress, answer questions, and open student work when needed.
- Collect, grade, return, or peer grade the assignment.
For the assignment-specific flow, see Create a course assignment.
Student projects
Each student gets a project for course work. That project can contain notebooks, scripts, terminals, data, output, and chat. Instructors can open student projects to help, inspect files, use TimeTravel, or run grading workflows.
When the class needs a shared software stack, use a runtime image or project host setup that every student project can run. This avoids per-student package installation drift.
Grading
Use ordinary collect/grade/return workflows for file-based assignments. Use nbgrader when notebooks need autograded cells, hidden tests, structured feedback, or a more formal grading pipeline.
Operational advice
Test assignments in a student-style project before releasing them. Keep starter files small, put large datasets in a durable shared location, and make setup steps reproducible. For large classes, choose project hosts and runtime images that match the expected memory, disk, and package needs.