20 Electrical Engineering and Computer Science

Electrical Engineering (ELG)

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 2138 Circuit theory I
ELG 2137 Circuit theory II
ELG 2136 Electronics I [some chapters]
ELG 3136 Electronics II [some chapters]

 

Signals and Systems, Edition 3.0∗

Michael D. Adams (University of Victoria)

2020

Licence: CC BY-NC-ND 3.0

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

 

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

 


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

 


Software Engineering (SEG)

No suggested OER at this time.

 


Computer Science (CSI)

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

 

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

 

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

 

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

 

Programming Fundamentals: A Modular Structured Approach, 2nd Edition∗

Kenneth Leroy Busbee and Dave Braunschweig (Houston Community College)

2018

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++

 


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

 


Know of an OER not listed here? Submit your suggestion.

Already using an OER? Share your adoption!

License

Icon for the Creative Commons Attribution 4.0 International License

OER by Discipline Guide: University of Ottawa (Version 1.0 - June 2021) Copyright © 2021 by Mélanie Brunet is licensed under a Creative Commons Attribution 4.0 International License, except where otherwise noted.

Share This Book