28 Electrical Engineering and Computer Science
See also:
Open Textbooks for Engineering, a list of open educational resources curated by the Engineering Library Division of the American Society for Engineering Education.
Computer Engineering (CEG)
Digital Circuit Projects: An Overview of Digital Circuits Through Implementing Integrated Circuits∗
Charles W. Kann, (Gettysburg College)
2014
Licence: CC BY 4.0
Digital circuits, often called Integrated Circuits or ICs, are the central building blocks of a Central Processing Unit (CPU). To understand how a computer works, it is essential to understand the digital circuits which make up the CPU. This text introduces the most important of these digital circuits; adders, decoders, multiplexers, D flip-flops, and simple state machines.
Format: PDF
Includes: Figures
Reviews: Open Textbook Library
Suggested for:
CEG 2136 Computer Architecture I
Computer Science (CSI)
Computer Science 20 – Saskatchewan∗
Dan Schellenberg (Saskatoon Public Schools)
Licence: CC BY-SA 4.0
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.
Format: Online
Includes: Curriculum outcomes, videos, quizzes, and exercises
Suggested for:
CSI 2120 Programming Paradigms
Database Design – 2nd Edition
Adrienne Watt (City University)
2014
Licence: CC BY 4.0
This second edition of Database Design book covers the concepts used in database systems and the database design process. Topics include: The history of databases; characteristics and benefits of databases; data models; data modelling; classification of database management systems; integrity rules and constraints; functional dependencies; normalization; and database development process. New to this edition are more examples, highlighted and defined key terms, both throughout and at the end of each chapter, and end-of-chapter review exercises. Two new chapters have been added on SQL, along with appendices that include a data model example, sample ERD exercises and SQL lab with solutions.
Formats: Pressbooks webbook, EPUB, and PDF
Reviews: Open Textbook Library – BCcampus – eCampusOntario Open Library
Suggested for:
CSI 2132 Databases I
Delftse Foundations of Computation∗
Stefan Hugtenburg and Neil Yorke-Smith (Delft University of Technology)
2018
Licence: CC BY-NC-SA 4.0
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.
Format: PDF
Includes: exercises
Reviews: Open Textbook Library
Suggested for:
CSI 2101 Discrete Structures
Foundations of Computation∗
Carol Critchlow and David Eck (Hobart and William Smith Colleges)
2011
Licence: CC BY-NC-SA 4.0
The textbook is designed for a one-semester course in theoretical computer science.
Format: PDF
Includes: Exercises
Reviews: Open Textbook Library
Suggested for:
CSI 2101 Discrete Structures
How to Design Programs, Second Edition
Matthias Felleisen (Northeastern University), Robert Bruce Findler (Northwestern University), Matthew Flatt (University of Utah), and Shriram Krishnamurthi (Brown University)
2014
Licence: CC BY-NC-ND 2.0 (Note: assigning sections is permitted, but adaptations are not allowed without permission)
The typical course on programming teaches a “tinker until it works” approach. When it works, students exclaim “It works!” and move on. Sadly, this phrase is also the shortest lie in computing, and it has cost many people many hours of their lives. In contrast, this book focuses on habits of good programming, addressing both professional and vocational programmers.
Format: Online
Suggested for:
CSI 2120 Programming Paradigms
An introduction to Ontology Engineering
C. Maria Keet (University of Cape Town)
2020
Licence: CC BY 4.0
This first general textbook An introduction to ontology engineering has as main aim to provide the reader with a comprehensive introductory overview of ontology engineering. A secondary aim is to provide hands-on experience in ontology development that illustrate the theory.
The book is divided into three blocks:
- Block I: logic foundations for ontologies both regarding the languages (mainly First Order predicate Logic, Description Logics, and OWL) and automated reasoning.
- Block II: developing good ontologies with methods and methodologies, the top-down approach with foundational ontologies, and the bottom-up approach to extract as much useful content as possible from legacy material.
- Block III: advanced topics with a selection of areas of specialisation, including Ontology-Based Data Access, the interaction between ontologies and natural languages (multilingual ontologies, controlled natural language) advanced modelling with additional language features (fuzzy and temporal ontologies), and ontology modularisation (new in v1.5).
The end of each chapter contains review questions and exercises. Also, descriptions of two assignments are provided.
The textbook is principally aimed at advanced undergraduate/postgradute level in computer science and could fit a semester course in ontology engineering or a 2-week (very/perhaps too) intensive crash course. Domain experts and philosophers may find a subset of the chapters of interest, or work through the chapters in a different order.
Format: PDF
Suggested for:
CSI 3140 WWW Structures, Techniques and Standards
CSI 5100 Data Integration
Java, Java, Java: Object-Oriented Problem Solving∗
Ralph Morelli and Ralph Walde (Trinity College)
2016
Licence: CC BY 4.0
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.
Formats: PDF and LaTex
Includes: Self-study exercises with answers, end-of-chapter exercises, and a companion website with instructor resources upon request
Reviews: Open Textbook Library
Suggested for:
CSI 2110 Data Structures and Algorithms
The Joy of Cryptography
Mike Rosulek (Oregon State University)
2021
Licence: CC BY-NC-SA 4.0
The Joy of Cryptography is a free undergraduate-level textbook that introduces students to the fundamentals of provable security.
Format: PDF
Suggested for:
CSI 4108 Cryptography
Learn to Program: Intro Java with interactive graphics, via Processing∗
James Young (University of Manitoba)
Last updated: September 2020
Licence: CC BY-NC-SA 4.0
This collection of free notes is aimed at helping the complete beginner learn the basics of computer programming using Processing, a free and easy to use program available for many platforms. With Processing, students start with making graphics, and skip much of the ugly, memorization-based syntax of beginner Java. Unlike other guides, this focuses on learning programming, not the features of Processing.
Format: PDF
Includes: Learning objectives, exercises, and instructor manual
Suggested for:
CSI 2110 Data Structures and Algorithms
The Primacy of the Public: Ethical Design for Technology
Marcus Schultz-Bergin (Cleveland State University)
2021
Licence: CC BY-NC 4.0
The Primacy of the Public presents a framework for engineering and technology ethics focused around three core ethical principles: the principle of welfare, the autonomy principle, and the fairness principle. To support this framework, the book begins with an examination of multiple perspectives we may take on engineering and technology, all of which support the centrality of ethical analysis and evaluation. These include the nature of engineering as a profession, the social context of engineering and technology, and the view that many technologies constitute social experiments.
Formats: Pressbooks webbook and PDF
Suggested for:
CSI 5195 Ethics for Artificial Intelligence
Problem Solving with Algorithms and Data Structures Using Python
Bradley N. Miller and David L. Ranum (Luther College)
2018
Licence: CC BY-NC-SA 4.0
This textbook is about computer science. It is also about Python. However, there is much more. The study of algorithms and data structures is central to understanding what computer science is all about. Learning computer science is not unlike learning any other type of difficult subject matter. The only way to be successful is through deliberate and incremental exposure to the fundamental ideas. A beginning computer scientist needs practice so that there is a thorough understanding before continuing on to the more complex parts of the curriculum. In addition, a beginner needs to be given the opportunity to be successful and gain confidence. This textbook is designed to serve as a text for a first course on data structures and algorithms, typically taught as the second course in the computer science curriculum. Even though the second course is considered more advanced than the first course, this book assumes you are beginners at this level. You may still be struggling with some of the basic ideas and skills from a first computer science course and yet be ready to further explore the discipline and continue to practice problem solving. We cover abstract data types and data structures, writing algorithms, and solving problems. We look at a number of data structures and solve classic problems that arise. The tools and techniques that you learn here will be applied over and over as you continue your study of computer science.
Format: Online
Suggested for:
CSI 2110 Data Structures and Algorithms
Programming Fundamentals: A Modular Structured Approach, 2nd Edition∗
Kenneth Leroy Busbee and Dave Braunschweig (Houston Community College)
Licence: CC BY-SA 4.0
The original content for this book was created by Kenneth Leroy Busbee and written specifically for his course based on C++. 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. Other languages will be considered upon request. Programming concepts are introduced generically, with logic demonstrated in pseudocode and flowchart form, followed by examples for different programming languages. Emphasis is placed on a modular, structured approach that supports reuse, maintenance, and self-documenting code.
Formats: Pressbooks webbook, EPUB, PDF, and MOBI
Includes: pseudocode, flowcharts, and example code in C++, C#, Java, JavaScript, Python, and Swift, key terms, practice exercises, review questions
Reviews: Open Textbook Library (first edition)
Suggested for:
CSI 2372 Advanced Programming Concepts With C++
Simulation Modeling and Arena
Manuel D. Rossetti (University of Arkansas, Fayetteville)
2021
Licence: CC BY-NC-ND 4.0 (Note: assigning sections is permitted, but adaptations are not allowed without permission)
Discrete-event simulation is an important tool for the modeling of complex systems. Simulation is used to represent manufacturing, transportation, and service systems in a computer program to perform experiments on a computer. Simulation modeling involves elements of system modeling, computer programming, probability and statistics, and engineering design. Simulation Modeling and Arena is an introductory textbook for a first course in discrete-event simulation modeling and analysis for upper-level undergraduate students as well as entering graduate students. The text is focused on engineering students (primarily industrial engineering); however, the text is also appropriate for advanced business majors, computer science majors, and other disciplines where simulation is practiced. Note: requires Arena 16.0
Format: Online
Suggested for:
CSI 4124 Foundation of Modelling and Simulation
IoT Use Cases and Technologies
F. John Dian and Reza Vahidnia (British Columbia Institute of Technology)
2021
Licence: CC BY-NC-SA 4.0
The phrase “Internet of Things” (IoT) alludes to the billions of physical devices connected to the Internet in order to exchange raw data and analyze the information. This book introduces the IoT use cases and technologies. It uses practical examples to demonstrate the effect of IoT and its potential to change our world, and it discusses the existing wired and wireless communication technologies that have enabled IoT. The book also includes multiple choice and review questions to support student learning and reflection.
Formats: Pressbooks webbook, EPUB, PDF, and MOBI
Reviews: BCcampus
Suggested for:
CSI 5345 Internet of Things (IoT) Security
Electrical Engineering (ELG)
Engineering Systems Dynamics Modelling, Simulation, and Design: Lagrangian and Bond Graph Methods
Mehrzad Tabatabaian (British Columbia Institute of Technology)
2021
Licence: CC BY-NC 4.0
This open education resource presents effective system modelling methods, including Lagrangian and bond graph, and the application of a relevant engineering software tool, 20-sim. The content is designed for engineering students and professionals in the field to support their understanding and application of these methods for modelling, simulation, and design of engineering systems. The text also includes videos showing selected worked-out examples.
Formats: Pressbooks webbook, EPUB, and PDF
Suggested for:
ELG 6101 Simulation and Modelling
Fundamentals of Electrical Engineering I
Don Johnson (Rice University) (OpenStax)
2014
Licence: CC BY 1.0
The textbook focuses on the creation, manipulation, transmission, and reception of information by electronic means. It covers elementary signal theory, time- and frequency-domain analysis, sampling theorem, digital information theory, digital transmission of analog signals, and error-correcting codes.
Formats: Online and PDF; online LibreTexts version
Includes: Questions and answer keys
Reviews: Open Textbook Library
Suggested for:
ELG 3125 Signal and System Analysis
Lessons in Electric Circuits∗
Tony R. Kuphaldt (All About Circuits community and editorial team)
Licence: Design Science License
This free electrical engineering textbook provides a series of volumes covering electricity and electronics. The information provided is great for students, makers, and professionals who are looking to refresh or expand their knowledge in this field.
Format: Online
Includes: review sections, worksheets
Suggested for:
ELG 2137 Circuit Theory I
ELG 2138 Circuit Theory II
ELG 2136 Electronics I [some chapters]
ELG 3136 Electronics II [some chapters]
The Primacy of the Public: Ethical Design for Technology
Marcus Schultz-Bergin (Cleveland State University)
2021
Licence: CC BY-NC 4.0
The Primacy of the Public presents a framework for engineering and technology ethics focused around three core ethical principles: the principle of welfare, the autonomy principle, and the fairness principle. To support this framework, the book begins with an examination of multiple perspectives we may take on engineering and technology, all of which support the centrality of ethical analysis and evaluation. These include the nature of engineering as a profession, the social context of engineering and technology, and the view that many technologies constitute social experiments.
Formats: Pressbooks webbook and PDF
Suggested for:
ELG 5295 Ethics for Design, AI, and Robotics
Open Signals and Systems Laboratory Exercises
Andrew K. Bolstad and Julie A. Dickerson (Iowa State University)
2021
Licence: CC BY-NC 4.0
Open Signals and Systems Laboratory Exercises is a collection of lab assignments that have been used in EE 224: Signals and Systems I in the Department of Electrical and Computer Engineering at Iowa State University. These lab exercises have been curated, edited, and presented in a consistent format to improve student learning.
Formats: PDF and TEX
Suggested for:
ELG 3125 Signal and System Analysis
ELG 3126 Random Signals and Systems
Signals and Systems, Edition 3.0∗
Michael D. Adams (University of Victoria)
2020
Licence: CC BY-NC-ND 3.0 (Note: assigning sections is permitted, but adaptations are not allowed without permission)
This textbook covers continuous-time signals and systems at an introductory level appropriate for undergraduate students. This textbook has been used by the author at the University of Victoria to teach a number of undergraduate courses on continuous-time signals and systems.
Format: Google Books
Includes: Exercises, video lectures, and lecture slides
Suggested for:
ELG 3125 Signal and System Analysis
Utility Solar Electric and Concentration
Mark Fedkin (Pennsylvania State University)
Licence: CC BY-NC-SA 4.0
EME 812 explores the main physical principles of core solar energy conversion systems, including direct power conversion photovoltaics, concentrating photovoltaics (CPV), and thermal conversion to electricity via concentrating solar power strategies (CSP). It also covers the fundamentals of enabling technologies such as light concentration, solar tracking, power conversion cycles, power conditioning and distribution. Learning in EME 812 relies on analysis of design and performance of existing solar plants that have been deployed in areas such as the southwestern USA, Spain, and North Africa.
Formats: Website and HTML files downloadable as a .zip file (after completing the “Course Download Questionnaire”)
Suggested for:
ELG 4126 Sustainable Electrical Power Systems
Information Technology (ITI)
Digital Circuit Projects: An Overview of Digital Circuits Through Implementing Integrated Circuits∗
Charles W. Kann (Gettysburg College)
2014
Licence: CC BY 4.0
Digital circuits, often called Integrated Circuits or ICs, are the central building blocks of a Central Processing Unit (CPU). To understand how a computer works, it is essential to understand the digital circuits which make up the CPU. This text introduces the most important of these digital circuits; adders, decoders, multiplexers, D flip-flops, and simple state machines.
Format: PDF
Includes: Figures
Reviews: Open Textbook Library
Suggested for:
ITI 1100 Digital Systems I
Java, Java, Java: Object-Oriented Problem Solving∗
Ralph Morelli and Ralph Walde (Trinity College)
2016
Licence: CC BY 4.0
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.
Formats: PDF and LaTex
Includes: Self-study exercises with answers, end-of-chapter exercises, and a companion website with instructor resources upon request
Reviews: Open Textbook Library
Suggested for:
ITI 1120 Introduction to Computing I
ITI 1121 Introduction to Computing II
Learn to Program: Intro Java with interactive graphics, via Processing∗
James Young (University of Manitoba)
Last updated: September 2020
Licence: CC BY-NC-SA 4.0
This collection of free notes is aimed at helping the complete beginner learn the basics of computer programming using Processing, a free and easy to use program available for many platforms. With Processing, students start with making graphics, and skip much of the ugly, memorization-based syntax of beginner Java. Unlike other guides, this focuses on learning programming, not the features of Processing.
Format: PDF
Includes: Learning objectives, exercises, and instructor manual
Suggested for:
ITI 1120 Introduction to Computing I
ITI 1121 Introduction to Computing II
Software Engineering (SEG)
No suggested OER at this time.