Give assignments, grade them automatically, and help any student live. Students open your class link and start coding in minutes, right in the browser.
Everything runs in the browser, so there is nothing to install.
Create a class. Give it a name.
Add an assignment. Start from a lesson in our library, upload a folder, or write your own.
Share the class link. Paste it anywhere, or put its code on the projector.
Students start coding. Each in their own online Linux container, with the assignment already in their files.
Every student gets a workspace with an editor, a terminal and files that stay put between classes, so a first print statement and a final project live in the same place.
Nine languages. Python, Java, C, C++, C#, JavaScript, TypeScript, Go and PHP, each with a Run button.
Jupyter notebooks. Open a notebook and run its cells right in the editor.
Install what you need. Packages from pip and npm install into the student's files and stay installed.
Programs with windows. Turtle, tkinter and other programs that open a window show up in a pop-up.
Websites at a public URL. A web server a student starts can get an address anyone can open.
A real terminal. Bash, where input() waits for typing and scripts run like they do on any computer.
Write tests once and run them against the whole class in one click. Every score lands in the gradebook, one click away from the student's code.
Public and hidden tests. Students run the public tests as they work. Hidden tests decide the grade.
Scheduled release. Write it now, and it appears for students on the day you pick.
Collected at the deadline. At the due time, every student's work is submitted and locked.
Feedback on the line. Leave a note on a specific line of a student's code.
Weighted grades. Weight each assignment, or override any score by hand.
Export. Download the whole gradebook as a spreadsheet.
Open a student's workspace from the class page and edit their code with them, live, like a shared Google Doc. You get a terminal on their files too.
See who is online. A green dot marks every student working right now.
Edit together. Both cursors show, with names, while you type.
Nicknames. Call students what you call them in class. Only teachers see it.
Setting up a class, importing a lesson, and a student writing, testing, and publishing their first project.
A nonprofit has nothing to sell. Our privacy policy says so in writing.
We don't sell it, use it for targeted ads, or build profiles from it.
No analytics or ad tag loads on a signed-in page, so nothing a student does reaches Google.
Student work belongs to the school. We act as a FERPA school official and can sign the NDPA.
CS Room is built by Birdflop, a 501(c)(3) nonprofit, and paid for by donations rather than by schools. There is no paid tier to move you onto and no investors waiting for one. Teachers at 51 schools and universities in 22 countries use it today.
Each guide shows how your old setup maps onto CS Room, step by step.
Yes, for every teacher and student. Birdflop, the 501(c)(3) nonprofit that runs CS Room, pays for it with donations.
Request access and we set you up within a day or two. Students don’t request anything: they join with your class link.
A computer with a web browser, and a Google account or an email address to sign in with. If CS Room doesn't load at school, ask IT to allow *.csroom.org, including WebSocket connections.
Python, Java, C, C++, C#, JavaScript, TypeScript, Go and PHP, plus Jupyter notebooks and HTML and CSS sites. Autograding works with input and output cases or a test command such as pytest.
Up to 100 members, counting teachers and pending invites. Email help@csroom.org if you need more.
Not directly. The gradebook downloads as a CSV for your LMS or a spreadsheet.
Request a teacher account, and we’ll set you up within a day or two.
Get started