Open CS1: Mimir's 2018 CSforAll Commitment to Reducing Costs for Computer Science Education

Picture of Vinesh Kannan

Vinesh Kannan

October 30, 2018

Textbook prices are rising faster than the rate of inflation. The financial burden that students face when obtaining required course materials is clear. Thanks to the hard work and advocacy of students, faculty, instructional designers, and policymakers, the world is learning about an alternative: open educational resources (OER). OER are free assets that are licensed for reuse in teaching and learning. 

At Mimir, we care about improving access to computer science education, so we have a responsibility to contribute to computer science OER. In 2014, we reduced the cost of our core product Mimir Classroom from $50 per student to $25 per student. Mimir Classroom is a curriculum and textbook-agnostic platform that helps computer science instructors assess student work, provide quicker feedback, and automatically detect plagiarism.

To help computer science instructors and students achieve the next level of cost savings, we turned to the rising cost of textbooks.There are several free and open textbooks for teaching computer science and they have great potential to lower costs, without sacrificing quality of instruction. Our team admires the authors of these OER texts for their service to the community. In particular, we have been influenced by Dr. Allen Downey’s proposition that “students should read and understand textbooks” and Dr. Remzi and Dr. Andrea Arpaci-Dusseau’s conclusion that “Free Online Books (FOBs) are coming.”

We wanted to learn what barriers prevented instructors from adopting free textbooks and reducing costs for their students. We interviewed computer science instructors from all over the U.S. who teach introductory programming (CS1) courses at the university level. They serve a wide range of students and work at all kinds of institutions: two-year, four-year, liberal arts, technical, Ivy League, community college. Everyone we spoke to wanted to make their course more affordable for their students, but their paths to adoption fell short at different places:


“We give open-book exams, so we do not allow online textbooks.”

“My students will not read any textbook, sometimes even if the homework tells them to.”

“I worry that if the book is online, students will be able to find all the answers to homework exercises.”

“The book is only a partial fit. It leans heavily on a library that simplifies things I like to emphasize. It focuses on certain topics earlier than I’d like to.”

“The department won’t approve a new book. We’ve tried.”

“I didn’t have the time to switch to a new textbook. All the quizzes, homework, and slides I had to rewrite turned out to be crushing.”


Every instructor teaches in a unique context. We wanted to amplify the value of OER in computer science classrooms across the country, but in a way that respects each teacher’s varying needs.


Our Commitment

Copy of CSforAllLogo-20180216-V8The result is Open CS1, a commitment that we have made as part of the 2018 CSforALL Summit:

Mimir, in collaboration with Mississippi State University, Ohlone College, and ten other U.S. universities, will develop and pilot eight units of free CS course materials to improve adoption of free digital textbooks and reduce costs for students.

Our target is to help 1,800 students save a combined $135,000 before the end of 2019.

Rather than reinventing the wheel on open texts, our commitment is textbook-agnostic. We have selected seven OER textbooks and will create mappings between the Open CS1 course materials and relevant readings from each book. The OER community grows and shares and we believe that this list will grow too.


  • Think Java, 2nd Edition Draft, by Allen Downey and Chris Mayfield

  • Think Python, 2nd Edition, by Allen Downey

  • Think Like a Computer Scientist, C++ Version, by Allen Downey

  • Programming Fundamentals: A Modular Structured Approach using C++, by Kenneth Leroy Busbee

  • Programming Fundamentals: A Modular Structured Approach, 2nd Edition, by Kenneth Leroy Busbee and Dave Braunschweig

  • Wikibooks C++ Programming, by Wikibooks Contributors

  • NanoBook: Learn Python through bite-sized modules, by Vinesh Kannan, Mary Vo, and Eduardo Vidaurri-Rodriguez

Every unit of Open CS1 includes course materials that supplement existing OER textbooks:

  • one programming project

  • one instructor guide

  • two peer instruction questions

  • six practice exercises


Each unit will be available on Mimir ClassroomPublic-facing course materials will also be available on GitHub so that instructors who are not customers of Mimir Classroom can utilize them. Fifteen instructors at twelve U.S. schools will pilot these materials and share new insights on adopting computer science OER. From our conversations with computer science instructors, we developed five design principles to guide the Open CS1 materials.


Design Principle 1: Address the most common needs of CS1 courses.

Many CS1 instructors would not consider a textbook if it did not fit with the primary programming language of their course. Some departments standardized the programming language, some instructors considered the language to be the most pedagogically valuable, and some student teaching assistants felt most comfortable helping students in the language. Not wanting to incite a language war, we chose to support the languages that instructors requested most frequently: C++, Java, and Python.

We reviewed syllabi from across the country to understand what name each topic was called, what order the topics were sequenced in, and how much time instructors planned to spend on each topic. Another influential resource came from research papers about the FCS1 and its replication, the SCS1. These two language-independent assessments of CS1 knowledge were validated by researchers who presented the content to panels of experts and gathered observations from students across many institutions. We choose eight topics for the Open CS1 units:

  1. Variables, Data Types, Operations

  2. Strings

  3. Conditional Logic

  4. Definite and Indefinite Loops

  5. Functions

  6. Arrays/Lists

  7. Recursion

  8. Object-Oriented Basics

Design Principle 2: Empower instructors to remix, refine, and reorder course materials to meet specific needs.

Our goal is to serve a broad audience of CS1 instructors, but from our own teaching experiences, we feel that there can be no blanket offering that suits all classrooms.In the OER ecosystem, instructors are unbridled by any company or platform and can remix materials to match their instructional goals. We aim to contribute a solid foundation by analyzing OER textbooks, developing usable curriculum, and gathering diverse perspectives. This way, when instructors sit down to remix, they can comfortably build on the materials and attend to details that matter to their students. 

All Open CS1 materials are licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. We are learning from established stewards of OER such as OpenStax, SPARC, the Rebus Foundation, Runestone Interactive, the Noba Project, and many others.Instructors who commit to piloting Open CS1 course materials and OER textbooks can join our discussion forum where we refine the core content. We also hope to grow this into a peer group where pilot instructors can empathize with each other and consider the challenges and nuances of their different teaching contexts. 

Design Principle 3: Design tasks that are inclusive, accessible, and engaging to students.

To design OER course materials for all learners, we drew guidance from an OER project that has already achieved scale in computer science education: EngageCSEdu, an initiative of the National Center for Women In Technology (NCWIT). The EngageCSEdu engagement practices offer eleven practices for designing engaging and inclusive curriculum, with curated examples from college courses across the U.S. The practices offer a way for computer science instructors from different types of schools to discuss OER materials.

In each instructor guide, we list all eleven engagement practices and explain how materials in the unit use the practices. This process helps identify areas for growth in the Open CS1 materials.The practices also allow us to introduce instructors to evidence-based practices for engaging computer science students with rigorous instruction. Peer Instruction for Computer Science is a tremendous resource for clarifying student misconceptions and checking the pulse of a classroom. To magnify their work, we write two peer instruction questions for each unit and encourage instructors to help grow OER peer instruction questions. 

Design Principle 4: Provide low-stakes formative assessments, not high-stakes summative assessments.

Exams offer delayed feedback on where students are succeeding and where they are struggling. To give instructors more options to differentiate based on their students’ needs and to facilitate improvement of course materials, Open CS1 emphasizes formative assessments. The Open CS1 course materials should save instructors switching to an OER textbook from writing a new course completely from scratch. However, they will still have to write their own exam questions and high-stakes assessments.

Plagiarism is an important concern for computer science OER. Several instructors feared that switching to OER would embolden students copying code from online sources. In fact, we learned that even instructors who require paid textbooks struggle with this:“This is my favorite thing [sarcastic]: when professors at other schools publicly post the instructor solution manuals for the textbook exercises. I appreciate that you wanted your students to review, but now all my students have the answers too."

Instructors have private access to the solutions, but we know that given enough time and enough anonymous accounts, solutions will find their way online. This is why each unit instructor guide includes plagiarism counterbalances: small but pivotal ways in which an instructor can modify Open CS1 exercises and projects to distinguish them from publicly-distributed versions.We won’t give away the best tricks here, but we have learned the ways of the plagiarism arms race from some of the most clever computer science teachers around the nation. 

Design Principle 5: Design tasks that allow students to be productive even if they struggle with programming.

The final Open CS1 design principle emerged from instructor stories about students who became frustrated when working on textbook exercises outside of class. We seek to create multiple entry points for Open CS1 programming projects and reward skills in addition to programming.We have found opportunities to make practice exercises less rigid. Tying into the engagement practice of using well-structured collaborative learning, each Open CS1 instructor guide points out practice exercises from the unit could be suitable pair programming tasks. The instructor guide breaks those problems down into subgoals that instructors can provide to students or use as suggested checkpoints to switch pair programming roles. This is another way that we hope to make Open CS1 materials versatile and open to instructor choice.

 Pilot with Open CS1

If you or an instructor you know is interested in adopting free computer science OER textbooks, please email ( Piloting Open CS1 units can be a low-pressure way to try OER in your classroom. Many instructors choose a single Open CS1 unit to replace an existing segment of their course, so that they can try out OER and prepare for a full-semester of teaching with free textbooks.We would love to work with you through our product Mimir Classroom as well, but know that our commitment to OER extends beyond our customers. Open CS1 materials will always be publicly-available and free of charge. We look forward to your feedback as we work to magnify computer science OER.