Open Educational Resource (OER) course materials for CS1 courses in Python, Java, and C++.
Open CS1 is a commitment that the team at Mimir submitted for the 2018 CSforALL summit:
Mimir, in collaboration with universities around the country, will develop and pilot eight units of free course materials to improve adoption of free digital textbooks and reduce costs for students.
If you use these materials in your course and have feedback to share, please let us know!
Contact: oer@mimirhq.com
These five design principles define the focus of the Open CS1 course materials:
- Address the most common needs of CS1 courses [A].
- Empower instructors to remix, refine, and reorder course materials to meet specific needs.
- Design tasks that are inclusive, accessible, and engaging to students [B].
- Provide low-stakes formative assessments, not high-stakes summative assessments.
- Design tasks that allow students to be productive even if they struggle with programming.
A. As defined by the SCS1 and limited to courses teaching Python, Java, and C++.
B. As defined by the EngageCSEdu engagement practices, an OER initiative from the National Center for Women In Technology.
To help instructors adopt an open textbook, each unit will list relevant readings from the following freely available texts.
Think Python, 2nd Edition
By Allen Downey
NanoBook, Learn Python through bite-sized modules
By Vinesh Kannan, Mary Vo, and Eduardo Vidaurri-Rodriguez
Think Java, 2nd Edition Draft
By Allen Downey and Chris Mayfield
Think Like a Computer Scientist, C++ Version
By Allen Downey
Wikibooks C++ Programming
By Wikibooks Contributors
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
The Open CS1 course materials cover eight units, selected based on a review of CS1 syllabi and the SCS1, a validated, language-independent assessment of CS1 knowledge.
- Variables, Data Types, Operations
- Strings
- Conditional Logic
- Definite and Indefinite Loops
- Functions
- Arrays/Lists
- Recursion
- Object-Oriented Basics
Each unit includes the following resources:
- 1 Programming Project
- 6 Review Problems
- 2 Peer Instruction Questions
- Instructor Solution Manual
- Mappings to Recommended Readings
There are three versions of each unit, one in each of the three focus languages: Python, Java, and C++.
If you are interested in piloting these materials and would like access to the instructor-facing materials, please contact oer@mimirhq.com
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.