Private: Gina Cody School of Engineering and Computer Science
Computing Science and Software Engineering
Open Textbooks and Concordia Courses
| Open Textbook Title | Potentially Relevant Courses |
| Discrete Mathematics: An Open Introduction | COEN 231 |
| Book of Proof | COMP 232 |
| Mathematical Reasoning: Writing and Proof | COMP 232 |
| Introduction to Probability | COMP 233 |
| Introduction to Probability, Statistics and Random Processes | COMP 233 |
| Delftse Foundations of Computation | COMP 335 |
| Foundations of Computation | COMP 335 |
| Programming Fundamentals – A Modular Structured Approach using C++ | COMP 345 |
| Programming Fundamentals – A Modular Structured Approach, 2nd Edition | COMP 348 |
| Programming Languages: Application and Interpretation | COMP 348 |
| Database Design | COMP 353 |
| Eloquent JavaScript: A Modern Introduction to Programming | SOEN 287 |
| The Missing Link: An Introduction to Web Development and Programming | SOEN 287 |
| A Brief Introduction to Engineering Computation with MATLAB | |
| Computer Science 20 – Saskatoon | |
| Java, Java, Java: Object-Oriented Problem Solving | |
| Think Stats: Probability and Statistics for Programmers |
Description and Access
Discrete Mathematics: An Open Introduction
Approved by the American Institute of Mathematics, this textbook grew out of a discrete mathematics course at the University of Northern Colorado.
Includes: questions, answers, instructor resources upon request
May suit: COEN 231 Introduction to Discrete Mathematics
Book of Proof
Approved by the American Institute of Mathematics and adopted widely by other universities, this textbook is an introduction to the standard methods of proving mathematical theorems.
Includes: instructor resources, workbook
May suit: COMP 232 Mathematics for Computer Science
Mathematical Reasoning: Writing and Proof
This textbook is designed for the ﬁrst course in a mathematics curriculum that introduces students to the processes of constructing and writing proofs. It focuses on the formal development of mathematics.
Includes: questions, answers, instructor resources upon request
May suit: COMP 232 Mathematics for Computer Science
Introduction to Probability
The textbook is intended for use in a standard one-term course, in which both discrete and continuous probability is covered.
Includes: exercises and solutions
May suit: COMP 233 Probability and Statistics for Computer Science
Introduction to Probability, Statistics and Random Processes
This textbook is intended for undergraduate and first-year graduate-level courses in probability, statistics, and random processes.
Includes: exercises, solutions, code
May suit: COMP 233 Probability and Statistics for 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.
May suit: COMP 335 Introduction to Theoretical Computer Science
Foundations of Computation
The textbook is designed for a one-semester course in theoretical computer science.
May suit: COMP 335 Introduction to Theoretical Computer Science
Programming Fundamentals – A Modular Structured Approach using C++
This reviewed open textbook covers content normally found in an introductory C++ programming course, including decisions, loops, functions, arrays and file I/O.
Includes: instructor and student resources
May suit: COMP 345 Advanced Program Design with C++
Programming Fundamentals – A Modular Structured Approach, 2nd Edition
This is the second edition to Programming Fundamentals – A Modular Structured Approach using C++. The goal 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.
Includes: pseudocode, flowcharts, and example code in C++, C#, Java, JavaScript, Python, and Swift
May suit: COMP 348 Principles of Programming Languages
Programming Languages: Application and Interpretation
Written by a computer science professor at Brown University, this textbook takes a non-linear approach to the subject matter.
Includes: exercises and activities
May suit: COMP 348 Principles of Programming Languages
Database Design
An introductory textbook that covers database systems and database design concepts.
Includes: end-of-chapter exercises, sample ERD exercises, SQL lab with solution
May suit: COMP 353 Databases
Eloquent JavaScript: A Modern Introduction to Programming
This book covers the principles of programming and introduces JavaScript. It is written by a programming language enthusiast.
Includes: exercises and solutions
May suit: SOEN 287 Web Programming
The Missing Link: An Introduction to Web Development and Programming
This textbook provides the developer with an understanding of the various elements of web development by focusing on the concepts and fundamentals through the examples within, providing a foundation that allows easier transition to other languages and a better understanding of how to approach their work.
Includes: questions, discussions, solutions
May suit: SOEN 287 Web Programming
A Brief Introduction to Engineering Computation with MATLAB
Specifically designed for students with no programming experience, the strategic goal of the course and book is to provide learners with an appreciation for the role computation plays in solving engineering problems.
Includes: study guide, problem sets
Computer Science 20 – Saskatoon
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
Java, Java, Java: Object-Oriented Problem Solving
Suitable for a typical Introduction to Computer Science course or for a slightly more advanced Java as a Second Language course. This textbook takes the “objects first” approach to programming and problem solving. It provides careful coverage of Java language features, introductory programming concepts, and object-oriented design principles.
Includes: self-study exercises with answers, end-of-chapter exercises, and a companion website with instructor resources upon request
Think Stats: Probability and Statistics for Programmers
The book is an introduction to the practical tools of exploratory data analysis, especially for Python programmers.
Includes: exercises, experiments, code
Support for Open Textbooks at Concordia
- There are grants available to adopt an open textbook for your course.
- Open Textbooks for Engineering offers a range of open textbooks that may be of use for Concordia courses.
- Make suggestions for this page by emailing oer@concordia.ca.
- Learn more about OER