Unlimited Ubuntu servers
A full working Ubuntu server that starts in a couple of seconds. Each user can have any number of servers.
You can install any programming language, database or component just like you can on a regular machine.
512MB thru 16GB RAM
Our default memory allocation is fine for 99% of use cases. However, if you need more for memory hungry applications, you've got it.
Each project can have up to 5GB of storage space with more available on request.
Teaching GUI based application development works perfectly with the Virtual Desktop.
Create GPU Nvidia Tesla accelerated instances for computer visualization and big data use cases.
Host Jupyter Notebooks
Easily host and distribute your existing Jupyter notebooks and auto-grade student assignments with nbgrader.
The Codio infrastructure serves every student in every state and country, so we are constantly dealing with very large numbers of users and adding more every day.
Always On Boxes
Codio servers automatically shut down when they are not in use and start on demand in a couple of seconds. If you don't want your server to shut down when not in use, you can use our optional Always On Box allocation.
Any modern browser
Runs on all modern browsers such as Chrome, Firefox, IE, Edge, Safari and more.
Multiple code panels
Like most powerful IDEs, you can create and destroy panels for code editing, terminal access and web page previews.
Command line access
Terminal window providing access to the command line with sudo level privileges.
Full visual debugger with support for Java, C, C++ and NodeJS. Other languages can be added on request.
Create GUI based applications.
The file tree is fully functional and supports drag and drop, uploading and downloading of files.
Access manual grading features, including grading rubric and grading moderation within the IDE while reviewing student code.
Remote deployment targets
Configure remote deployment targets and deploy your code via FTP, SFTP, SSH or rsync.
SSH into your Box from your local PC.
Configure remote SSH servers for easy access from the command line.
Search and Replace
Full search and replace functionality including regex support.
Automatically format and indent your code (some languages only).
Access any IDE feature by typing in a search string rather than locating through menus.
Give read/write/admin access to your server to other users.
Fork another user's project, including the server stack, into your own account.
Reboot the server, which takes only 10 seconds from within the IDE.
Download a single file or the entire project to your local PC.
Files can be uploaded from your desktop directly into the file tree.
For web applications, generate a QR code so students can try their project out on a smartphone without typing in long URLs.
Git is preinstalled on every Codio server. We also offer some menu shortcuts for simple operations as well as displaying the current branch name in the file tree. Your user SSH public key can also be uploaded to your Git remote using a menu.
Supported for almost every language. Additional languages easily added.
We offer a number of light and dark themes to suit your preferences.
Install software shortcuts
A dialog driven approach to installing commonly used components with a single click without having to install yourself from the command line. We take requests for additional items.
To prevent students from having to use the command line, add commands to a dropdown menu.
A list of over 70 settings that customize the code editing experience.
Contact Codio support directly from within the IDE. You can also track all support conversations, current and past.
Standard auto graded code tests
Dialog driven, this approach lets you create tests based on argument and stdin inputs to match expected output. You can create several tests cases for each assessment to ensure full code coverage. Caters for at least 80% of cases.
Advanced auto graded code tests
This gives you complete control over how your tests execute. Use any language to script the tests and use any framework or library such as JUnit to help.
Multiple choice questions
Single and multiple response MCQs. Supports negative points for incorrect answers.
Fill in the blank
An autograded assessment type that requires students to complete words or phrases in a sentence by entering text or selecting from a dropdown list.
Free text answer
A manually graded assessment type that requires a student to enter a free text answer to a question. Grading is done from the teacher dashboard.
Allows a teacher to review a project assignment and assign a manual grade. See below for additional related features.
A user definable two dimensional matrix with grading criteria on the side and scores across the top. Weighting can be applied to both axes. This can be displayed during the manual grading process as a reference or can be clicked in to automatically calculate the grade.
Secondary faculty members can review the grading and assign a parallel grade. These grades can be reviewed to ensure grading consistency.
Grade -> LMS gradebook transfer
If a class is LMS enabled, grades (auto graded and manual) can be transferred back to the LMS gradebook for the matching unit.
By default, grades are not shown to students or passed to an LMS platform. Releasing grades ensures that all grades are shown only when the teacher is ready.
End of coding assignment auto grading
Run an auto grading script when the student has completed the assignment unit. It can also be triggered manually by the teacher to process an entire class.
Create classes of students and assign content and projects.
Although Codio is a superb LMS for coding in its own right, we appreciate the need to integrate with LMS platforms. Our LTI integration gives your LMS full control and covers account creation, single sign on, LMS unit mapping and grade passthrough.
You can add students to your class using either an invitation URL or using your LMS. No need to deal with complex exports and imports.
You can assign any server, project or piece of tutorial content to your class with just a couple of clicks. Each student will instantly have their own cloned copy to work with exactly as you configured it.
You can add any number of teaching assistants to a class so they can help reviewing student code, grading and other tasks.
Our dashboard allows you to monitor all aspects of student progress. You can see time spent, unit scores and scores for individual assessments.
You are able to export all class data to a CSV file.
Instant access to student code
This is one of Codio’s most beloved features. With a single click, you can instantly access any student’s code. You have full access to the project, so you can review, compile, run and grade the students work. It spells an end to emailing or painful aggregation of student code.
Our plagiarism detection capability was specially developed at Princeton University to ensure the best possible results for student programming assignments. Detection is launched across all students with a single click. No need to painstakingly aggregate code to upload it for processing.
Allows you to pin a unit of teaching content to the top of the student dashboard for easy location.
Specify a start and end date and time for a teaching unit. The unit will not be accessible outside these times. Auto grading scripts can be automatically triggered upon completion.
Grading rubric mapping
Map a grading rubric to a teaching unit to support manual grading.
Specify that a Gigabox (larger memory allocation) should be used for a given unit.
Allows a teacher to release grades to the students and to an LMS platform.
A content and curriculum authoring tool that controls the IDE as a student navigates through the content.
All assessment types are authored in Guides. See above section for a complete list of assessment types.
Curriculum course management
A course is comprised of teaching assignment units that are organized into a simple hierarchy. Course materials can be assigned to a class.
A template library that allows a snapshot to be taken of an underlying server configuration for any project. The snapshot can then be applied to new projects or replace the stack on an existing one.
A combination of a Stack (see above) and code. Most often used as a way of providing students instant access to a working project as a suitable starting point for the remainder of a coding exercise.