By Saul Costa
After a long day at SIGCSE 2018 this past February, I arrived back at my hotel room ready to wind down for the night. Working my way through an overflowing inbox, one email in particular from a Harvard University address caught my eye. And not just any Harvard address. It was an email from Dr. David J. Malan, the instructor for Harvard’s CS50 course, one of the most influential courses in computer science education.
Sleep would have to wait. After a few quick emails, David and I met for a late-night chat over iced tea and juice. By the end of the meeting, it was clear that an exciting opportunity was at hand.
CS50 is one of the most influential courses in computer science education and an icon in the field. The course is delivered with just the right mix of novelty and difficulty, which results in an engaging and valuable experience for its students. It’s no surprise that has become the largest course at Harvard, with over 600 students enrolled on campus and more than a million online. While CS50 provides an introduction to a range of concepts including abstraction, algorithms, and security, David strives to make the whole course an experience that students can look back on fondly, enabling them to explore areas beyond their comfort zone and hopefully fall in love with a new field of study.
At Codevolve, we believe that delivering opportunities to learn tech skills via an easy-to-use development environment removes the barriers that can derail a student when they’re just getting started. To execute on this core belief, we’ve built a platform that allows students to gain hands-on experience with technical skills like programming, web development, database management, and data science. We’ve already partnered with leading education companies around the world to power learning experiences for their students.
With Codevolve’s focus on building great tools for learning tech skills and CS50’s dedication to producing top-of-the-line learning materials, it was immediately apparent that both teams working together would have an incredibly positive impact on the students of CS50. That collaboration is now underway, and we’re already seeing excellent results!
Since SIGCSE, CS50 has leveraged our technology to develop sandbox.cs50.io, where students and teachers can quickly spin up an online, real-world coding environment preloaded with support for various languages like C, C++, HTML, Java, Python, and SQL. Users can set the environment to use any combination of text editor, terminal, web browser, or full GUI via an interface developed by CS50. Each sandbox has no preloaded learning content and instead provides value by allowing users to open environments in seconds so they can experiment with new ideas and concepts.
One of the great features of the CS50 sandbox is the ability to share a link that clones the current environment. Using this feature, an instructor can write a program in the sandbox during a class to show students a new concept and then share the link so they can easily pick up exploring where the instructor left off. Or a struggling student can copy their program into a sandbox environment and share that with a teaching fellow for feedback. No doubt, a multitude of other use cases will emerge in the coming semesters!
Backing each sandbox is a custom image that contains everything CS50 needs, from the languages they teach to custom tools that they have built. Codevolve hosts this specialized image and backs it with our “smart-scaler” to ensure that each sandbox session is provided a fresh environment in seconds (2.13 on average, as of this writing). While we have used these tools internally for years, this is the first time we have hosted a completely custom image for a partner. We foresee doing much more of this in the future as it opens up many exciting opportunities to form new partnerships!
CS50 has already been an invaluable source of feedback for us. Until now we have primarily partnered with learning companies, which adds a layer between us and their learners, who are the people using our product every day. Over the course of SIGCSE, I met with the CS50 team multiple times (as well as a couple of times all over the country since!) to discuss what worked, what didn’t, and what needed polishing. This feedback from one of the most experienced teams working on computer science education helped us map out numerous future improvements to our product, many of which we have already implemented.
In the coming months, CS50 plans to build lessons using API endpoints that we added per their request that let them remotely run their custom test suite (check50) to test student code. They’ll also use a git-centric structure for hosting their content, allowing them to create highly customized lessons very quickly without having to train their staff on our authoring tool. Internally we have always seen this as a logical next step for our product, and it is exciting to see such a talented group beginning to bring this vision to life before we’ve had the chance to build it ourselves!
Even though they’ve logged 90% of our recent feature requests, working with David and his team at CS50 has already been an incredible experience. They’ve pushed the boundaries of our product and already built out a great tool on top of it. We can’t wait to see what they come up with next!
In the meantime, want to learn more about CS50? You can take it for free at cs50.edx.org!
Originally published on Medium here.
Top comments (2)
As a current student in CS50, I definitely appreciate the custom sandbox and IDE environment available to us throughout the course! I enjoyed reading about how this inclusion came to be.
Thank you! Glad you are enjoying it :)