This collection was curated by an ASCCC OERI discipline lead. A comprehensive list of current discipline leads is available.
Archived Computer Science Webinars
Title | Date | Tag |
---|---|---|
Collaborating for Computer Science Success: Adopting/Adapting a Shared Open Educational Resource (OER) Canvas Course Shell | December 5, 2024 | |
Bridging Open Educational Resources (OER) and Open Source: Advancing Computer Science Education | October 21, 2024 | |
OER in Computer Science – An Update | May 5, 2022 | |
Using Virtual Environments to Teach Computer Science | December 2, 2021 | |
OER and Computer Science | March 21, 2021 | |
OER for Computer Science | April 12, 2019 |
Introduction to Programming Concepts and Methodologies (C-ID COMP 112) and Programming Concepts and Methodology I (C-ID COMP 122)
The following resources are compatible with both C-ID COMP 112 and 122.
- A Byte of Python (CC BY-S)
A Byte of Python – LibreTexts (CC BY-SA)
This book serves as a guide or tutorial to the Python programming language. It is mainly targeted at newbies. It is useful for experienced programmers as well. The aim is that if all you know about computers is how to save text files, then you can learn Python from this book. If you have previous programming experience, then you can also learn Python from this book. - Introduction to Computer Science and Programming in Python (CC BY-NC-SA)
This is part of MIT’s OpenCourseWare website. It includes a course syllabus, reading list, lecture videos, Powerpoint slides and code, in-class questions and video questions as well as assignments – all available for download. The course is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class uses the Python 3.5 programming language.
- Introduction to Python Programming (OpenStax) (CC BY)
Updated: July 30, 2024. Introduction to Python Programming provides a comprehensive foundation in programming concepts and skills, and it is aligned to the scope of most introductory courses. A wide array of scenarios, contexts, and problems reflect programming applications in many disciplines and careers. The offering is suitable for a diverse learner audience, including those pursuing computer science, business, science, social science, statistics, data science, and related areas of study and employment.
- Python for Everybody (CC BY)
Python for Everybody – LibreTexts (CC BY)
An excellent book on introductory computer programming topics. The book’s website has a great deal of additional information and resources. The book itself has great vocabulary words, it has exercises, and includes the use of Jupyter Notebooks, where you can edit and run code right in the LMS environment. The material has been translated into several different languages, see the book’s website for a complete list. - Think Python 3e
Think Python is an introduction to Python programming for beginners. It starts with basic concepts of programming and is carefully designed to define all terms when they are first used and to develop each new concept in a logical progression. Larger pieces, like recursion and object-oriented programming, are divided into a sequence of smaller steps and introduced over the course of several chapters.
Programming Concepts and Methodology II (C-D COMP 132)
- C++ reference
(CC BY-SA and GNU Free Documentation License)
A complete online reference for the C and C++ languages and standard libraries, i.e. a more convenient version of the C and C++ standards. - CISC 187 Course Reader (Parillo) (GNU Free Documentation License)
Any user should ensure they read the GNU Free Documentation license in its entirety.
- Open Data Structures (in C++) (CC BY)
This resource is a well-written text that covers the material quite well. It is a bit older than other material, but it is still a very valid resource. The main website has some other variations of this text. It is intended to teach the design and analysis of basic data structures and their implementation in an object-oriented language. In this edition, the language happens to be C++. This book is not intended to act as an introduction to the C++ programming language. Readers of this book need only be familiar with the basic syntax of C++ and similar languages. Those wishing to work with the accompanying source code should have some experience programming in C++.
- Open DSA (Copyrighted)
OpenDSA is infrastructure and materials to support courses in a wide variety of Computer Science-related topics such as Data Structures and Algorithms (DSA), Formal Languages, Finite Automata, and Programming Languages. OpenDSA materials include many visualizations and interactive exercises. Our philosophy is that students learn best when they engage the material and then practice it until they have demonstrated their proficiency. OpenDSA provides a place for students to practice skills and develop knowledge with a variety of exercises including small code writing problems, proficiency exercises where students demonstrate knowledge of an algorithm by interacting with a data structure, and questions about knowledge.
Computer Architecture and Organization (C-ID COMP 142)
- Below C Level (CC BY-ND)
(CC BY-ND; “ND” indicates “no derivatives”, editing is not permitted)
This book is NOT about assembly language programming. There is assembly language sprinkled throughout the book, so you will in fact learn assembly language—but only as a means to a different end, the latter being understanding of computer systems. Specifically, you will learn about high-level hardware, the large differences between one machine and the next, and low-level software, meaning operating systems and to some degree compilers. - Introduction to MIPS Assembly Language Programming (Published: 2015)
Introduction to MIPS Assembly Language Programming PDF (CC BY)
This book was written to introduce students to assembly language programming in MIPS. As with all assembly language programming texts, it covers basic operators and instructions, subprogram calling, loading and storing memory, program control, and the conversion of the assembly language program into machine code. - Programmed Introduction to MIPS Assembly Language (Published: 2015) (CC BY-NC)
This is a course in assembly language programming of the MIPS processor. It emphasizes the topics needed for the study of computer architecture: bits, bit patterns, operations on bit patterns, and how bit patterns represent instructions and data. This course is equivalent to a semester-long junior college or university course (except, perhaps, for the emphasis on bit patterns). The emphasis of the course is on understanding how computers work. This will provide a basis for further study of computer architecture and computer software. The MIPS processor, the subject of this course, has a well-designed architecture and is particularly fruitful to study.
- x86-64 Assembly Language Programming with Ubuntu (Updated: 2024)
x86-64 Assembly Language Programming with Ubuntu PDF (CC BY-NC-SA)
The purpose of this text is to provide a reference for university-level assembly language and systems programming courses. Specifically, this text addresses the x86-641 instruction set for the popular x86-64 class of processors using the Ubuntu 64-bit Operating System (OS). While the provided code and various examples should work under any Linux-based 64-bit OS, they have only been tested under Ubuntu 14.04 LTS (64-bit).
Discrete Structures (C-ID COMP 152)
- A Spiral Workbook for Discrete Mathematics (Published: March 2024) (CC BY-NC-SA)
This text covers the standard topics in a sophomore-level course in discrete mathematics: logic, sets, proof techniques, basic number theory, functions, relations, and elementary combinatorics, with an emphasis on motivation. It explains and clarifies the unwritten conventions in mathematics, and guides the students through a detailed discussion on how a proof is revised from its draft to a final polished form. Hands-on exercises help students understand a concept soon after learning it. The text adopts a spiral approach: many topics are revisited multiple times, sometimes from a different perspective or at a higher level of complexity. The goal is to slowly develop students’ problem-solving and writing skills.
- Applied Discrete Structures – Website (Updated: June 2024)
Applied Discrete Structures – Textbook (CC BY-NC-SA)
This is an amazing resource…another one of those cool websites with a plethora of resources and tools. - Discrete Mathematics: An Open Introduction (Updated: 2024) (CC BY-SA)
This is a new open textbook version of the material mentioned above. Applied Discrete Structures is designed for use in a university course in discrete mathematics spanning up to two semesters. Its original design was for computer science majors to be introduced to the mathematical topics that are useful in computer science. It can also serve the same purpose for mathematics majors, providing a first exposure to many essential topics.
- Mathematics for Computer Science
Mathematics for Computer Science – LibreText PDF; Mathematics for Computer Science PDF (CC BY-SA)
This text explains how to use mathematical models and methods to analyze problems that arise in computer science. Proofs play a central role in this work because the authors share a belief with most mathematicians that proofs are essential for genuine understanding. Proofs also play a growing role in computer science; they are used to certify that software and hardware will always behave correctly, something that no amount of testing can do.
No-Cost Resources – Licensing Will Vary
The following are tools that can be used with various Computer Science courses. These are all no cost resources.
- Compiler Explorer – Compiler Explorer is an interactive online compiler which shows the assembly output of compiled C++, Rust, Go (and many more) code.
- DOAB – DOAB is a discovery service for peer reviewed open access books and book publishers that indexes and provides access to high quality, open access, peer-reviewed books.
- Exercism – An online tool for learning programming skills in a variety of languages.
- GALILEO Open Learning Materials: Computer Science and Information Technology Collections – GALILEO Open Learning Materials brings together open educational resources throughout the University System of Georgia, including open textbooks and ancillary materials.
This repository is administrated by Affordable Learning Georgia, an initiative of GALILEO and the University System of Georgia which aims to reduce the cost of textbooks to students and contribute to their retention, progression, and graduation. For more about Affordable Learning Georgia, visit Affordable Learning Georgia’s website.
Most works hosted in GALILEO Open Learning Materials have a Creative Commons license, allowing the reuse, redistribution, remix, and revision of these materials. To learn more about Creative Commons licenses, please visit the Creative Commons Licenses Page. - Git – Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is released under the GNU General Public License version 2.0.
- Green Tea Press – Green Tea Press is an independent publisher specializing in free, high-quality textbooks for computer science and related disciplines. Founded by Allen B. Downey, Green Tea Press is committed to making education accessible by providing Open Educational Resources (OER) that are freely available online under open licenses, allowing learners and educators to use, share, and adapt the materials. Their catalog includes widely acclaimed texts like Think Python, Think Stats, and Think Complexity, which emphasize hands-on learning, practical examples, and clear explanations to help readers develop computational thinking skills. By blending accessibility with academic rigor, Green Tea Press plays a significant role in democratizing education and empowering learners worldwide.
- HackerRank – HackerRank is a leading technical skills assessment platform that helps individuals and organizations evaluate and improve their coding and problem-solving abilities. Widely used by developers, students, and tech companies, HackerRank offers a variety of coding challenges, interview preparation tools, and domain-specific skill tests across multiple programming languages and technologies. Its interactive environment allows users to practice algorithms, data structures, and real-world coding scenarios, while businesses leverage the platform to streamline their hiring processes by identifying top technical talent through customized coding assessments and remote interviews. With a strong emphasis on learning and skill development, HackerRank serves as a bridge between aspiring developers and industry opportunities, fostering a global community of tech enthusiasts.
- National CyberWatch Center – Headquartered at Prince George’s Community College, the National CyberWatch Center leads collaborative efforts to advance cybersecurity education and strengthen the national workforce.
- Not Without Women – Not Without Women is an initiative dedicated to promoting gender diversity and inclusion within the web development and tech industry. The movement emphasizes the importance of creating a web and tech ecosystem that values and includes the perspectives and contributions of women. Through advocacy, resources, and community-building efforts, Not Without Women seeks to address gender imbalances, foster equitable opportunities, and inspire change within the industry. Their website, nowebwithoutwomen.com, serves as a hub for sharing stories, raising awareness, and providing actionable steps to support a more inclusive tech community.
- Online GDB – An online compiler and debugger for C/C++
- OS Boxes – OSBoxes offers you ready-to-use Linux/Unix virtual machine operating systems to run as a guest on VirtualBox.
- Packet Tracer – A powerful network simulation tool built by Cisco. You need to sign up for free. Each time Packet Tracer starts up you need Internet connectivity to allow an authorized user to sign in.
- The National Cybersecurity Training and Education Center (NCyTE) – The NCyTE Center advances cybersecurity education in the U.S. by investing in technological innovation, resources, professional development and tools to support faculty, community colleges, and the workforce pipeline of tomorrow.
This organization DOES provide content for some cybersecurity courses. They also hold monthly webinars on a variety of cybersecurity educational topics, as well as numerous educational webinars. - Visual Studio Code – An IDE for programming in all languages.
- Virtual Box – VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product for enterprise customers, it is also the only professional solution that is freely available as Open Source Software under the terms of the GNU General Public License (GPL) version 2.
- W3Schools – W3Schools is a widely recognized online platform for learning web development and programming, offering tutorials, references, and exercises for a range of technologies. Known for its beginner-friendly approach, W3Schools covers core topics like HTML, CSS, JavaScript, Python, SQL, and more, making it a valuable resource for learners at any stage. Its interactive code editor allows users to experiment with code examples in real time, promoting hands-on learning and immediate feedback. With certifications available for various technologies, W3Schools also helps users demonstrate their skills. As a free and accessible resource, it has become a go-to platform for self-taught developers and students worldwide.
Using an OER resource that is missing from the list above? If so, please let us know.
This page last updated on December 4, 2024.