Lessons Learned By Developing Open Educational Resources (OER) For Computer Science

Picture of Vinesh Kannan

Vinesh Kannan

December 14, 2018

MIMIR_infographic+CSForALLAt Mimir, my teammates and I care about improving access to computer science education, so we contributed to open educational resources (OER) in computer science. We heard from professors around the country that they wanted to use free and open textbooks to reduce costs for their students, but faced an enormous challenge in finding or creating other materials for their course.

We started the Open CS1 initiative to contribute free course materials: practice exercises, programming projects, peer instruction questions, and instructor guides to make it easier for instructors to switch to free and open textbooks in C++, Java, and Python. All eight units produced through Open CS1 are publicly available on our GitHub page, released under a CC BY-NC 4.0 license.

We learned a great deal from student and instructor feedback on our work. For example, some lessons we learned include:


Instructors need other materials to adopt a new textbook.

After instructors read and evaluate a new text, the time and effort needed to write new quizzes, projects, or even slides remains a significant barrier to adoption. We wanted our Open CS1 efforts to avoid reinventing the wheel and chose to support existing textbooks. However, we did experiment with writing our own textbook. There are also other phenomenal texts for which we did not design materials.

Choosing and ordering CS1 topics is hard.

We read syllabi from across the country and used the SCS1 to pick our eight units. Many instructors told us that the Open CS1 units lined up almost perfectly with their course structure. However, some exercises in early units include or rely on constructs from later units like functions or objects. Through discussions with faculty, we worked towards reasonable defaults. One benefit of OER is that when those defaults are not appropriate for certain courses, the instructors can make their own modifications.

Balancing three different languages constrains content.

As a curriculum team, the context switches from developing materials in Java, C++, and Python were very stressful. Treating each language appropriately while maintaining a sense of uniformity resulted in some false choices. For example, the Python Open CS1 materials never touch on the very useful concept of dictionaries, because Java and C++ CS1 courses typically did not include equivalent structures.

Exercises and projects aren’t the only valuable supplementary resources.

Open CS1 introduced  several instructors to peer instruction for the first time and they told us that the peer instruction questions we wrote for each unit could help direct class time towards uncovering misconceptions. Our team would have loved to see more open resources like in-class activities, worked examples with subgoal labels, or Parsons Problems.

Creative assignment design can reduce worries of plagiarism.

Many instructors told us that they don’t use OER because if the materials are shared, they worry that the solutions will be shared too. As curriculum developers, we operated under the assumption that as soon as an assignment is used in the classroom, the answers will find their way online; whether through students sharing them, or instructors posting the solutions for review. We experimented with plagiarism counterbalances: ways to allow an instructor to modify the assignment so that the solution would be significantly different, while the learning objectives remained constant. For example, the project for the unit on arrays challenged students to decode a secret message embedded in the pixels of an image and to implement the encoding algorithm. If plagiarism abounds, instructors can modify the decoding/encoding algorithm and use all of the other project materials.

Perspectives from diverse instructors are crucial.

Some of the most valuable conversations on this project were with instructors from community colleges and two-year institutions. The instructors were generous in sharing time from their busy schedules to help us uncover important blind spots. Their students were brilliant too. Some of the most useful feedback in developing the Open CS1 materials came from students who demonstrated clever adversarial thinking when working through the draft versions.

For-profit companies can be stewards of OER.

This topic could be the most taboo. I met a few instructors who were skeptical: “your company sells a product to schools, isn’t that directly opposite from your work on OER?” All of the instructors who participated in Open CS1 extended trust to our team, even those that are not our customers. We did this work for free, but it strengthened our business by allowing us to work with a constructive community of instructors. We met educators whom we may never have interacted with because of their school size and instructors who may never have considered us because we don’t sell pre-built content. Even if you have reservations about collaborating with a for-profit company, I want you to know that Mimir followed the CARE framework and worked very hard to align incentives and motivations around OER. If you talk to the instructors we worked with, I believe they will agree with that.


Today is my last day at Mimir. I am stepping away from my role as a curriculum engineer to spend more time with my family and on my studies. I am grateful to all of the instructors and students I have met while working on Open CS1 and feel inspired by the educators that are contributing to the OER community. I hope you find value from the lessons we have learned. If you’d like to communicate or collaborate with our team about Open CS1 in the future please email oer@mimirhq.com.