9 Computing & Software

Programming Fundamentals

With resources and examples for Java basics such as variables, loops, and object oriented programming, this text provides a foundation in Java programming for introductory-level programming courses.

Includes: Key terms, Java tutor visualizations, video tutorials, summaries and exercises.


Programming Fundamentals: A Modular Structured Approach, 2nd Edition

Programming Fundamentals – A Modular Structured Approach, 2nd Edition is an adaptation of Programming Fundamentals – A Modular Structured Approach using C++, written by Kenneth Leroy Busbee, a faculty member at Houston Community College in Houston, Texas. This second edition, adapted by Dave Braunschweig, expands on the original vision by supporting multiple programming languages with pseudocode and flowcharts.

Includes: Key terms, examples (in C++, C#, Java, JavaScript, Python and Swift), review questions (with answers to MC) and activities.


Computer Organization

Computer Organization is published by the University System of Georgia to introduce students to computing hardware.

Includes: Exercises (with answers).

May suit: COMPSCI 2AG3, COMPENG 3DR4/4DM4 and SFWRENG 2GA3/3GA3.

IoT Use Cases and Technologies

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.

Includes: Exercises (with answers) and review questions (with answers).

May suit: COMPENG 4DK4 and COMPSCI 4C03.

Agent-Based Evolutionary Game Dynamics

This book is a guide to implement simple agent-based evolutionary models using NetLogo.

Includes: Videos, further resources and exercises.

May suit: SFWRENG 3GB3.

Computer Networks: A Systems Approach

Computer Networks: A Systems Approach explores the field of design and implementation of computer systems. The systems approach looks at how the components of a system interact with each other to achieve an overall result, rather than simply optimizing each component. In the networking context, that often means going beyond the traditional layered view to see how an issue is best tackled in a way that might touch several layers. The Systems Approach has a strong focus on real-world implementation, with the Internet being the obvious example of a widely-deployed, complex networking system.

Includes: Key takeaways and examples.

May suit: COMPSCI 3N03 and COMPENG 4DK4.

Introduction to Programming using Java 

Introduction to Programming Using Java is a free introductory computer programming textbook that uses Java as the language of instruction. This version of the book covers Java 17. It is suitable for use in an introductory programming course and for people who are trying to learn programming on their own. There are no prerequisites beyond a general familiarity with the ideas of computers and programs. There is more than enough material for a full year of college-level programming.

Includes: End-of-chapter programming exercises (with solutions) and quizzes (with sample answers).


Foundations of Computation

Foundations of Computation is a textbook for a one semester introductory course in theoretical computer science. It includes topics from discrete mathematics, automata theory, formal language theory, and the theory of computation, along with practical applications to computer science.

Includes: Examples and exercises.

May suit: COMPSCI 1JC3/2LC3.

Introduction to Computer Graphics 

Introduction to Computer Graphics is a free, on-line textbook covering the fundamentals of computer graphics and computer graphics programming. This book is meant for use as a textbook in a one-semester course that would typically be taken by undergraduate computer science majors in their third or fourth year of college.

Includes: Examples and interactive activities.


An Introduction to Computer Networks

An Introduction to Computer Networks, a free and open general-purpose computer-networking textbook. The book is suitable as the primary text for an undergraduate or introductory graduate course in computer networking, as a supplemental text for a wide variety of network-related courses, and as a reference work.

Includes: Examples, exercises (with solutions/hints to select exercises) and instructor resources (PowerPoint slides).


Think Data Structures 

Data structures and algorithms are among the most important inventions of the last 50 years, and they are fundamental tools software engineers need to know. This book is intended for college students in computer science and related fields with experience using Java.

Includes: Examples and exercises.

May suit: COMPSCI 2C03, SFWRENG 2C03 and COMPENG 3SM4.

Database Design – 2nd Edition

This second edition of Database Design book covers the concepts used in database systems and the database design process.

Includes: Examples, key terms, exercises and SQL lab (with solutions).

May suit: COMPSCI 2DB3 and SFWRENG 3DB3.

Python for Everbody 

Python for Everybody is designed to introduce students to programming and software development through the lens of exploring data. This book uses the Python 3 language and its goal is to provide an Informatics-oriented introduction to programming. The primary difference between a computer science approach and the Informatics approach taken in this book is a greater focus on using Python to solve data analysis problems common in the world of Informatics.

Includes: Examples and exercises.

May suit: COMPSCI 1MD3, ENGTECH 1PP3 and PNB 2A03.

The Missing Link

This text 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. The reader will be introduced to topics in a manner that follows most project development methods, from initial conceptualization and design through front end development, back end development, and introducing additional concepts like accessibility and security, while focusing on responsive design techniques.

Includes: Additional notes, examples, assessments, discussion/written response questions and interactive questions (with answer key).

May suit: COMPSCI 2ME3, SFWRENG 2AA4/3K04 and MECHTRON 3K04.

Mathematical Reasoning: Writing and Proof, Version 3

Mathematical Reasoning: Writing and Proof is a text for the first college mathematics course that introduces students to the processes of constructing and writing proofs and focuses on the formal development of mathematics.

Includes: Beginning activities, progress checks, examples, exercises (with answers/hints to select exercises) , summaries, videos and instructor resources (email mathreasoning@gmail.com for access). 

May suit: COMPSCI 2LC3 and SFWRENG 2DM3.

Defend Dissent

Defend Dissent is an introduction to cryptography paired with the social impacts of surveillance and the protective potential of encryption, with a focus on US social movements. Each chapter ends with a story that brings social context to the material—from surveillance used against contemporary US protests to the African National Congress’s use of partially manual encryption in fighting apartheid in South Africa in the 80s.

May suit: SFWRTECH 3CS3.

Think Python 2e

Think Python is an introduction to Python programming for beginners. It starts with basic concepts of programming; it is carefully designed to define all terms when they are first used and to develop each new concept in a logical progression. Larger pieces, like recursion and object-oriented programming, are divided into a sequence of smaller steps and introduced over the course of several chapters.

Includes: Exercises (with solutions) and case studies.

May suit: COMPSCI 1MD3, ENGTECH 1PP3 and PNB 2A03.

Discrete Mathematics – An Open Introduction (3rd Edition)

Discrete Mathematics: An Open Introduction is a free, open source textbook appropriate for a first or second year undergraduate course for math majors. The text began as a set of lecture notes for the discrete mathematics course at the University of Northern Colorado, and now contains a number of features that should support its use as a primary textbook. Four main topics are covered: counting, sequences, logic, and graph theory. Along the way, proofs are introduced, including proofs by contradiction, proofs by induction, and combinatorial proofs.

Includes: Investigate activities, examples (with solutions), exercises (with solutions), summaries and instructor resources upon request (email oscar.levin@unco.edu).

May suit: MATH 1B03/1ZC3/1LS3, COMPSCI 1DM3, SFWRENG 2DM3/2FA3, and ENGTECH 3DM3.

Think Stats 2e

Think Stats is an introduction to Probability and Statistics for Python programmers. If you have basic skills in Python, you can use them to learn concepts in probability and statistics and practical skills for working with data.

Includes: Examples and exercises (with solutions)

May suit: SFWRTECH 3ST3 and ENGTECH 3ST3.

Blueprints: Creating, Describing, and Implementing Designs for Larger-scale Software Projects – Version 2.4

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.

Includes: Examples.

May suit: SFWRENG 3A04.

Tale of Two Systems 2E

This text is meant as a case study and companion text to many Systems Analysis & Design textbooks used in undergraduate Management Information Systems (MIS), Business Information Systems (BIS) and Computer Information Systems (CIS) programs. These texts typically contain short descriptions of technologies which give students some sense of what these technologies are used for, but do not provide much context or reflection on why these technologies might or might not be applied and what such applications actually amount to in real life. As a consequence, students, having worked their way through these textbooks and associated courses will have had little exposure to the reasoning which must take place when making choices between these technologies and to what goes into combining them into working and successful system architectures. Tale of Two Systems hopes to help mitigate this problem a little.

Includes: Exercises.

Java, Java, Java: Object-Oriented Problem Solving 

Java, Java, Java is suitable for a typical Introduction to Computer Science 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. There is careful coverage of Java language features, introductory programming concepts, and object-oriented design principles.

Includes: Self-study exercises, chapter summaries, chapter exercises and instructor resources (solution manual, PowerPoint slides and solutions laboratory assignments) available upon request (email ralph.morelli@trincoll.edu or ralph.walde@gmail.com).


Introduction to Probability, Statistics and Random Processes 

Introduction to Probability, Statistics, and Random Processes is an open access peer-reviewed textbook intended for undergraduate as well as first-year graduate level courses on the subject. This probability textbook can be used by both students and practitioners in engineering, mathematics, finance, and other related fields.

Includes: Examples (with solutions), end-of-chapter problems (with solutions), short video lectures, instructor resources (solution manual and lecture slides).

May suit: SFWRTECH 3ST3 and ENGTECH 3ST3.


Icon for the Creative Commons Attribution 4.0 International License

OER By Discipline Guide Version 2 Copyright © 2018 by Lauri M. Aesoph is licensed under a Creative Commons Attribution 4.0 International License, except where otherwise noted.

Share This Book