Faculty of Science

Department of Computer Science

Computer Science (General)

Algorithms and Data Structures With Applications to Graphics and Geometry

An introductory coverage of algorithms and data structures with application to graphics and geometry.

Includes: Exercises

Licence: CC BY

Reviews: Available through the Open Textbook Library

Applied Bioinformatics of Nucleic Acid Sequences

This book is designed to introduce students of the life sciences with little to no programming experience to the concepts and methodologies of bioinformatics, and contemporary software applications.

Includes: Exercises

Licence: CC BY

Blueprints: Creating/ Describing/ and Implementing Designs for Larger-Scale Software Projects

Blueprints is a concise yet comprehensive coverage of Object-Oriented Analysis and Design concepts, suitable for a second programming course in Computer Science. It introduces and teaches application development in a command-line environment, and assumes basic expertise with the Java programming language.

Licence: CC BY-SA

Computer Science 20 – Saskatchewan

Through its text and videos, this resource provides an interactive experience on learning to write and execute Python code. In addition to simply executing code, there is a unique feature called codelens that allows control of the flow of execution in order to gain a better understanding of how the program works.

Includes: videos, quizzes, exercises.

Licence: CC BY-SA 4.0

Delftse Foundations of Computation

The textbook is designed for an introductory course in theoretical computer science. It includes topics from propositional and predicate logic, proof techniques, set theory and the theory of computation, along with practical applications to computer science.

Includes: Exercises

Licence: CC BY-NC-SA

Reviews: Available through the Open Textbook Library

Dot Net Perls

Dot Net Perls is an open resource with many example pages for many languages, including C#, F#, GoJava, JS, Python, Ruby, Scala, Swift, VB.Net, Windows and WPF with explanations and code side by side (for easy understanding).

Licence: Copyright holder has made the content on the website available to view online, however it is not openly licence.

Eloquent JavaScript: A Modern Introduction to Programming, 3rd Edition

This book dives deep into the JavaScript language to show you how to write beautiful, effective code.

Includes: Exercises, code sandbox

Licence: CC BY-NC

Reviews: Available through the Open Textbook Library

Foundations of Computation

The textbook is designed for a one-semester course in theoretical computer science.

Includes: Exercises

Licence: CC BY-NC-SA

Reviews: Available through the Open Textbook Library

Foundations of Information Systems (OpenStax)

Contributors: Dr. Mahesh S. Raisinghani, Amal Alhosban, Dax Bradley, Wade Chumney, Nicole Dhanraj, Sherita Freeman, James Gibbs, Sean Petty, Ayushi Tandon, Karen Srba, Michael MacLeod

Foundations of Information Systems aligns to the topics and objectives of most introductory information systems courses in computer science and information technology, as well as in other subject areas such as health and business information systems. The offering helps students understand foundational concepts including hardware, software, database management systems, and data networks. The instruction is based on the ACM/IEEE/AIS curriculum standards for information systems (IS2020) that allow institutions to use the content for the purposes of accreditation for ABET, AACSB, and ACBSP. The material focuses on developing and applying knowledge regarding the collection, processing, storage, distribution, and value of information. Students will also learn about the various interactions between information systems professionals and others in organizations, so that they understand how to collaborate with management, colleagues, customers, and suppliers. Foundations of Information Systems is designed to engage students through a combination of practical, real-world applications and thought-provoking scenarios that promote critical thinking and a deeper understanding of core concepts. The pedagogical approach is centered on making information systems relevant to students from an array of backgrounds and career interests. By connecting theory to practice and encouraging students to explore real-world issues, Foundations of Information Systems equips students with the knowledge and skills necessary for success in their academic and professional journeys [Description from resource].

Includes: key terms, summaries, review questions, check your understanding questions, application questions, answer key, test banks, lecture slides

License: CC BY-NC-SA 4.0

Published: 2025

Host: OpenStax

Green Tea Press Textbooks

A collection of free and open books by Allen Downey focusing on computer science.

Licence: Please refer to each resource for their license information

Introduction to Computer Science (OpenStax)

Contributors: Dr. Jean-Claude Franchitti, Amal Alhosban, Mark Buckler, Joanna Gilberti, Scott Gray, Matthew Hertz, Andrew Hurd, Kevin Lin, Sai Mukkavilli, Phuc (Brian) Nguyen, Shahab Tayeb, Zdeněk Troníček, Kevin Wortman, Mohamed Zahran

Introduction to Computer Science provides a comprehensive foundation in core computer science concepts and principles, aligning with the scope and sequence of most introductory computer science courses. The offering serves as an engaging entry point for students pursuing diverse fields of study and employment, including computer science, business, engineering, data science, social sciences, and related disciplines. By addressing a broad learner audience—ranging from computer science majors to non-majors—the book offers a thorough introduction to computational thinking and its applications across multiple domains. Introduction to Computer Science is designed to be both interactive and practical, focusing on real-world applications that showcase how core computer science concepts can be used to solve complex problems. Students will explore foundational concepts, such as algorithms, data structures, computer systems organization, and software development, using an array of engaging, hands-on activities. Introduction to Computer Science also includes advanced topics such as machine learning, cybersecurity, and cloud computing, ensuring students have a solid foundation for continued study and future professional success. The offering integrates meaningful learning experiences through chapter-based scenarios, problem-solving exercises, embedded coding activities, and project-based assessments that encourage students to apply what they learn in authentic contexts. The material also includes an array of industry insights and explorations of emerging technology trends in order to provide a holistic approach to learning that extends beyond theory.

Includes: key terms summaries, review and conceptural questions, extercises, labs, answer guide, test bank, lecture slides

License: CC BY 4.0

Published: 2024 (Updated 2026)

Host: OpenStax

Introduction to Python Programming (OpenStax)

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. Introduction to Python Programming is an interactive offering that teaches basic programming concepts, problem-solving skills, and the Python language using hands-on activities. The resource includes a unique, integrated code runner through which students can immediately apply what they learn to check their understanding. Embedded videos, critical thinking exercises, and explorations of external programming tools and activities all contribute to a meaningful and supportive learning experience [Description from resource].

Includes: check for understanding activities, instructor solutions manual, lecture slides

License: CC BY 4.0

Java, Java, Java: Object-Oriented Problem Solving

We have designed this third edition of Java, Java, Java to be suitable for a typical Introduction to Computer Science (CS1) course or for a slightly more advanced Java as a Second Language course. This edition retains the “objects first” approach to programming and problem solving that was characteristic of the first two editions. Throughout the text we emphasize careful coverage of Java language features, introductory programming concepts, and object-oriented design principles.

Includes: Case studies

Licence: CC BY 4.0

Reviews: Available through the Open Textbook Library

The Missing Link: An Introduction to Web Development and Programming

This text provides the developer with an understanding of the various elements of web development.

Includes: Assessments

Licence: CC BY 4.0

Reviews: Available through the Open Textbook Library

Modeling and Simulation in Python

Modeling and Simulation in Python is an introduction to physical modeling using a computational approach in a Jupyter notebook.

Includes: Exercises

Licence: CC BY-NC-SA 4.0

The Nature of Code

This book focuses on the programming strategies and techniques behind computer simulations of natural systems.

Includes: Source files, exercises

Licence: CC BY-NC 3.0

Open Data Structures: An Introduction

Offered as an introduction to the field of data structures and algorithms, Open Data Structures covers the implementation and analysis of data structures for sequences (lists), queues, priority queues, unordered dictionaries, ordered dictionaries, and graphs.

Includes: Discussion, exercises

Licence: CC BY-NC-ND 2.5 CA (Note: This is an open access text which restricts remixing and adapting).

Reviews: Available through the Open Textbook Library

Principles of Data Science (OpenStax)

Contributors: Dr. Shaun V. Ault, Dr. Soohyun Nam Liao, Larry Musolino, Wisam Bukaita, Aeron Zentner

Principles of Data Science is intended to support one- or two-semester courses in data science. It is appropriate for data science majors and minors as well as students concentrating in business, finance, health care, engineering, the sciences, and a number of other fields where data science has become critically important. The authors have included a diverse mix of scenarios, examples, and data types for analysis and discussion purposes. These include both fictional contexts and real-world sources, such as the Federal Reserve Economic Database and Nasdaq. Data sets focus on a range of topics: business, science, social sciences. Applications include healthcare, physical sciences, demographics, policy, and finance. Data ethics and the emergence of artificial intelligence are covered deeply – both in their own chapters and as consistent threads throughout the course material. The authors and contributors have developed rich in-chapter example problems and extensive practice exercises that encourage students to apply concepts in a variety of situations. Technical illustrations and Python code support and supplement the principles and theory. The text also includes direct links to downloadable data sets and Python code, as well as guidance on how to use them [Description from resource].

Includes: key terms, group projects, chapter reviews, problems, answer key, lecture slides

License: CC BY-NC-SA 4.0

Published: 2025

Host: OpenStax

Programming Fundamentals: A Modular Structured Approach, 2nd Edition

The goal for this second edition is to make it programming-language neutral, so that it may serve as an introductory programming textbook for students using any of a variety of programming languages, including C++, C#, Java, JavaScript, Python, and Swift.

Licence: CC BY-SA

Reviews: Available for the previous edition through the Open Textbook Library

Programming Languages: Application and Interpretation

This text presents exercises and activities using Racket.

Includes: Exercises

Licence: CC BY-NC-SA

Reviews: Available through the Open Textbook Library

A Primer for Computational Biology

This book covers topics such as the usage of the command-line interface, installing and running bioinformatics software (without access to administrator privileges on the machine), basic analysis of data using built-in system tools, visualization of results, and introductory programming techniques in 3 languages commonly used for bioinformatics: Unix/Linux, Python, and R.

Includes: Exercises

Licence: CC BY-NC-SA

Reviews: Available through the Open Textbook Library

Think C++: How To Think Like a Computer Scientist

Think C++ is an introduction to programming using the C++ programming language.

Includes: Glossary

Licence: CC BY-NC-SA 4.0

Think Data Structures: Algorithms and Information Retrieval in Java

This text organizes topics around an application—web search—that uses data structures extensively.

Includes: Exercises

Licence: CC BY-NC-SA 3.0

Reviews: Available through the Open Textbook Library

Think Java 2e: How To Think Like a Computer Scientist

Think Java is a hands-on introduction to computer science and programming Its conciseness, emphasis on vocabulary, and informal tone make it particularly appealing for readers with little or no experience. The book starts with basic programming concepts and gradually works its way to advanced object-oriented techniques.

Includes: Vocabulary, exercises

Licence: CC BY-NC-SA 4.0

Reviews: Available through the Open Textbook Library

Think OS: A Brief Introduction to Operating Systems

Think OS is an introduction to Operating Systems for programmers.

Licence: CC BY-NC 3.0

Think Python 2e: How To Think Like a Computer Scientist

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.

Includes: Glossary, exercises

Licence: CC BY-NC 3.0

Reviews: Available through the Open Textbook Library

Think Stats: Probability and Statistics for Programmers

Think Stats is an introduction to Probability and Statistics for Python programmers.

Includes: Exercises, glossary

Licence: CC BY-NC-SA 4.0

Reviews: Available through the Open Textbook Library

Workplace Software and Skills (OpenStax)

Contributors: Tammie Bolling, Angela Mitchell, Tanya Scott, Nyrobi Wheeler, Bridget Lepore, Janine Walton, Timothy Burgoyne, Rick Arguello, Valeree Falduto

Workplace Software and Skills is designed to flexibly support a range of courses covering computer literacy, Microsoft Office, and Google Suite applications. The textbook covers both hard and soft skills that are applicable to a broad range of academic majors and careers. Chapters combine studio learning and guided practice with scaffolded activities designed to reinforce a student’s ability to perform higher-order tasks independently. Workplace Software and Skills leverages complementary product features in spreadsheet, word processing, presentation, and similar applications. Modules are designed for maximum flexibility by including both Microsoft Office Suite and Google Suite applications, in order to best reflect the skills needed for today’s workforce. Authentic activities and real-world contexts develop a cumulative and thorough understanding, which reinforces the importance of cross-platform proficiency. Highly visible features also note Apple/Mac functions as needed [Description from resource].

Includes: key terms, summaries, review questions, practice exercises, written questions, case exercises, test bank, lecture slides, instructor answer guide

License: CC BY 4.0

Published: 2023

Host: OpenStax

Computer Graphics

Algorithms and Data Structures With Applications to Graphics and Geometry

An introductory coverage of algorithms and data structures with application to graphics and geometry.

Includes: Exercises

Licence: CC BY

Reviews: Available through the Open Textbook Library

Scientific Computation

Delftse Foundations of Computation

The textbook is designed for an introductory course in theoretical computer science. It includes topics from propositional and predicate logic, proof techniques, set theory and the theory of computation, along with practical applications to computer science.

Includes: Exercises

Licence: CC BY-NC-SA

Reviews: Available through the Open Textbook Library

Foundations of Computation

The textbook is designed for a one-semester course in theoretical computer science.

Includes: Exercises

Licence: CC BY-NC-SA

Reviews: Available through the Open Textbook Library

Modeling and Simulation in Python

Modeling and Simulation in Python is an introduction to physical modeling using a computational approach in a Jupyter notebook.

Includes: Exercises

Licence: CC BY-NC-SA 4.0

A Primer for Computational Biology

This book covers topics such as the usage of the command-line interface, installing and running bioinformatics software (without access to administrator privileges on the machine), basic analysis of data using built-in system tools, visualization of results, and introductory programming techniques in 3 languages commonly used for bioinformatics: Unix/Linux, Python, and R.

Includes: Exercises

Licence: CC BY-NC-SA

Reviews: Available through the Open Textbook Library

Theoretical Computer Science

Delftse Foundations of Computation

The textbook is designed for an introductory course in theoretical computer science. It includes topics from propositional and predicate logic, proof techniques, set theory and the theory of computation, along with practical applications to computer science.

Includes: Exercises

Licence: CC BY-NC-SA

Reviews: Available through the Open Textbook Library

Foundations of Computation

The textbook is designed for a one-semester course in theoretical computer science.

Includes: Exercises

Licence: CC BY-NC-SA

Reviews: Available through the Open Textbook Library

Visualization and Analytics

Blueprints: Creating/ Describing/ and Implementing Designs for Larger-Scale Software Projects

Blueprints is a concise yet comprehensive coverage of Object-Oriented Analysis and Design concepts, suitable for a second programming course in Computer Science. It introduces and teaches application development in a command-line environment, and assumes basic expertise with the Java programming language.

Licence: CC BY-SA

Open Data Structures: An Introduction

Offered as an introduction to the field of data structures and algorithms, Open Data Structures covers the implementation and analysis of data structures for sequences (lists), queues, priority queues, unordered dictionaries, ordered dictionaries, and graphs.

Includes: Discussion, exercises

Licence: CC BY-NC-ND 2.5 CA (Note: This is an open access text which restricts remixing and adapting).

Reviews: Available through the Open Textbook Library

A Primer for Computational Biology

This book covers topics such as the usage of the command-line interface, installing and running bioinformatics software (without access to administrator privileges on the machine), basic analysis of data using built-in system tools, visualization of results, and introductory programming techniques in 3 languages commonly used for bioinformatics: Unix/Linux, Python, and R.

Includes: Exercises

Licence: CC BY-NC-SA

Reviews: Available through the Open Textbook Library


No suggested OER currently available for the following subjects:

  • Computer Game Development
  • Human Computer Interactions
  • Information Security
  • Networks and Distributed Computing
  • Software Engineering

Please refer to the Libraries and Cultural Resources (LCR) Staff Directory to connect with a librarian supporting this subject area.


Know of an open educational resource (OER) not listed?

Contact us at oer@ucalgary.ca.

Already using an OER? Have you adapted or created an OER?

Let us know by completing the OER Adoption and Creation Sharing Form

License

Icon for the Creative Commons Attribution 4.0 International License

OER by Discipline Guide: University of Calgary Copyright © 2022 by Sarah Adams with Libraries and Cultural Resources OER Support Team is licensed under a Creative Commons Attribution 4.0 International License, except where otherwise noted.