Faculty of Science
Department of Computer Science
Page Sections
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
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
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
Green Tea Press Textbooks [New]
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 Python Programming (OpenStax) [New]
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
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
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
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.
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