Updating search results...

Open Textbook Library

Browse OER Textbooks from the University of Minnesota's Open Textbook Library. These textbooks are authored and peer reviewed by faculty or other accredited subject matter experts. Many of these textbooks are actively used to teach OER based courses at instiutions across the United States. 

89 affiliated resources

Search Resources

View
Selected filters:
  • Computer Science
  • Community College / Lower Division
  • College / Upper Division
Introduction to Computer Graphics
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating
0.0 stars

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.

Subject:
Applied Science
Computer Science
Material Type:
Textbook
Author:
David Eck
Date Added:
11/09/2018
An Introduction to Computer Networks
Only Sharing Permitted
CC BY-NC-ND
Rating
0.0 stars

Welcome to the website for An Introduction to Computer Networks, a free and open general-purpose computer-networking textbook, complete with diagrams and exercises. It covers the LAN, internetworking and transport layers, focusing primarily on TCP/IP. Particular attention is paid to congestion; other special topics include queuing, real-time traffic, network management, security and the ns simulator.

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.

Subject:
Applied Science
Computer Science
Material Type:
Textbook
Author:
Peter L. Dordal
Date Added:
01/01/2014
Introduction to Library and Information Science
Conditional Remix & Share Permitted
CC BY-NC
Rating
0.0 stars

Short Description:
This book explores the history, present, and future of library science, both in theory and in practice. It examines the place of the librarian as arbiter of information access in a constantly-changing and modernizing global community.

Word Count: 24034

(Note: This resource's metadata has been created automatically by reformatting and/or combining the information that the author initially provided as part of a bulk import process.)

Subject:
Applied Science
Computer Science
Material Type:
Textbook
Provider:
College of Southern Idaho
Author:
David Horalek
Reed Hepler
Date Added:
02/14/2023
Introduction to MIPS Assembly Language Programming
Unrestricted Use
CC BY
Rating
0.0 stars

This book was written to introduce students to assembly language programming in MIPS. As with all assemblylanguage programming texts, it covers basic operators and instructions, subprogram calling, loading andstoring memory, program control, and the conversion of the assembly language program into machine code.

However this book was not written simply as a book on assembly language programming. The larger purposeof this text is to show how concepts in Higher Level Languages (HLL), such as Java or C/C++, arerepresented in assembly. By showing how program constructs from these HLL map into assembly, theconcepts will be easier to understand and use when the programmer implements programs in languages likeJava or C/C++. Concepts such as references and variables, registers, binary and Boolean operations, subprogram execution, memory types (heap, stack, and static), and array processing are covered to clarify thedecisions made when implementing HLL. Program control is presented using a mapping from structuredprograms in pseudo code to help students understand structured programming, and why it exists. Memoryaccess in assembly is presented to high light the difference between references (pointers) and values, and howthese impact HLL.

This book has numerous code examples, and many problems at the end of each chapter, and it is appropriate for a class in Assembly Language, or as a extra resource for a class in Computer Organization.

Subject:
Applied Science
Computer Science
Material Type:
Textbook
Provider:
Gettysburg College
Author:
Charles Kann
Date Added:
11/09/2018
Introduction to Programming Using Java, Eighth Edition
Conditional Remix & Share Permitted
CC BY-SA
Rating
0.0 stars

This book is directed mainly towards beginning programmers, although it might also be useful for experienced programmers who want to learn something about Java. It is certainly not meant to provide complete coverage of the Java language.

Subject:
Applied Science
Computer Science
Material Type:
Textbook
Provider:
Hobart and William Smith Colleges
Author:
David J. Eck
Date Added:
02/16/2011
Introduction to Programming using Fortran 95/2003/2008
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating
0.0 stars

Computers are everywhere in our daily lives. Between the desktop, laptop, phone, bank, and vehicle, it is difficult to completely get away from computers. It only makes sense to learn a little about how a computer really works.This text provides an introduction to programming and problem solving using the Fortran 95/2003/2008 programming language. This introduction is geared for non-computer science majors. The primary focus is on an introduction to problem solving and algorithm development. As such, many details of the Fortran 95/2003/2008 language are omitted.

Subject:
Applied Science
Computer Science
Material Type:
Textbook
Author:
Ed Jorgensen
Date Added:
07/16/2019
Introduction to the Modeling and Analysis of Complex Systems
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating
0.0 stars

Introduction to the Modeling and Analysis of Complex Systems introduces students to mathematical/computational modeling and analysis developed in the emerging interdisciplinary field of Complex Systems Science. Complex systems are systems made of a large number of microscopic components interacting with each other in nontrivial ways. Many real-world systems can be understood as complex systems, where critically important information resides in the relationships between the parts and not necessarily within the parts themselves. This textbook offers an accessible yet technically-oriented introduction to the modeling and analysis of complex systems. The topics covered include: fundamentals of modeling, basics of dynamical systems, discrete-time models, continuous-time models, bifurcations, chaos, cellular automata, continuous field models, static networks, dynamic networks, and agent-based models. Most of these topics are discussed in two chapters, one focusing on computational modeling and the other on mathematical analysis. This unique approach provides a comprehensive view of related concepts and techniques, and allows readers and instructors to flexibly choose relevant materials based on their objectives and needs. Python sample codes are provided for each modeling example.

Subject:
Applied Science
Computer Science
Material Type:
Activity/Lab
Textbook
Provider:
State University of New York
Provider Set:
Milne Open Textbooks
Author:
Hiroki Sayama, Binghamton University, State University of New York.
Date Added:
08/13/2015
Java, Java, Java: Object-Oriented Problem Solving
Unrestricted Use
CC BY
Rating
0.0 stars

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.

Subject:
Applied Science
Computer Science
Material Type:
Textbook
Author:
Ralph Morelli
Ralph Wade
Date Added:
11/12/2018
Java with BlueJ
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating
0.0 stars

This book is Part I of a two-part set that introduces the Java programminglanguage. The text assumes the student will be using the BlueJ developmentenvironment and provides some introductory BlueJ material. Our experiencehas been that BlueJ is easy to learn and provides a good programmingenvironment for the beginner programmer.

Subject:
Applied Science
Computer Science
Material Type:
Textbook
Author:
Ron McFayden
Date Added:
11/12/2018
Java with BlueJ Part 2
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating
0.0 stars

This book is Part II of a two-part set that introduces the Java programming language. The text assumes the student will be using the BlueJ development environment and provides some introductory BlueJ material. Our experience has been that BlueJ is easy to learn and provides a good programming environment for the beginner programmer.

Subject:
Applied Science
Computer Science
Material Type:
Textbook
Author:
Ron McFayden
Date Added:
03/27/2016
The Joy of Cryptography
Conditional Remix & Share Permitted
CC BY-NC
Rating
0.0 stars

These are lecture notes for cs427 at Oregon State University, an introductory course in cryptography at the advanced undergraduate level. By reading and studying these notes, you should expect to learn how to:

*State and interpret the standard formal definitions for the most common cryptographic security properties (privacy and authentication).
*Formally prove security properties of sound cryptographic constructions, and break the security of unsound ones.
*Choose the appropriate cryptographic primitive for a task (block ciphers, hash functions, MACs, public-key encryption, etc.) while avoiding common pitfalls.
*Along the way, you will also learn how the most common cryptographic constructions work.

Subject:
Applied Science
Computer Science
Mathematics
Material Type:
Textbook
Provider:
Oregon State University
Author:
Mike Rosulek
Date Added:
01/06/2020
The Little Book of Semaphores
Read the Fine Print
Some Rights Reserved
Rating
0.0 stars

The Little Book of Semaphores is a free (in both senses of the word) textbook that introduces the principles of synchronization for concurrent programming.In most computer science curricula, synchronization is a module in an Operating Systems class. OS textbooks present a standard set of problems with a standard set of solutions, but most students don't get a good understanding of the material or the ability to solve similar problems.The approach of this book is to identify patterns that are useful for a variety of synchronization problems and then show how they can be assembled into solutions. After each problem, the book offers a hint before showing a solution, giving students a better chance of discovering solutions on their own.The book covers the classical problems, including "Readers-writers," "Producer-consumer", and "Dining Philosophers." In addition, it collects a number of not-so-classical problems, some written by the author and some by other teachers and textbook writers. Readers are invited to create and submit new problems.

Subject:
Applied Science
Computer Science
Information Science
Material Type:
Textbook
Provider:
Green Tea Press
Author:
Allen B. Downey
Date Added:
01/01/2008
MIPS Assembly Language Programming using QtSpim
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating
0.0 stars

There are a number of excellent, comprehensive, and in-depth texts on MIPS assembly language programming. This is not one of them.The purpose of this text is to provide a simple and free reference for university level programming and architecture units that include a brief section covering MIPS assembly language programming. The text assumes usage of the QtSpim simulator. An appendix is included that covers the download, installation, and basic use of the QtSpim simulator.The scope of this text addresses basic MIPS assembly language programming including instruction set usage, stacks, procedure/function calls, QtSpim simulator system services, multiple dimension arrays, and basic recursion.

Subject:
Applied Science
Computer Science
Material Type:
Textbook
Author:
Ed Jorgensen
Date Added:
12/02/2019
Making Games with Python & Pygame
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating
0.0 stars

This book will teach you how to make graphical computer games in the Python programming language using the Pygame library.This book assumes you know a little bit about Python or programming in general. If you don’t know how to program, you can learn by downloading the free book "Invent Your Own Computer Games with Python" from http://inventwithpython.com. Or you can jump right into this book and mostly pick it up along the way. This book is for the intermediate programmer who has learned what variables and loops are, but now wants to know, "What do actual game programs look like?" There was a long gap after I first learned programming but didn’t really know how to use that skill to make something cool. It’s my hope that the games in this book will give you enough ideas about how programs work to provide a foundation to implement your own games.

Subject:
Applied Science
Computer Science
Material Type:
Textbook
Author:
Albert Sweigart
Date Added:
06/28/2019
Making Sense of Digital Humanities
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating
0.0 stars

Transformations and Interventions in Technocultures

Short Description:
Exploring the pathways offered by the intersection of the digital and the humanities, Making Sense of Digital Humanities seeks to support students and faculty engaging with the complex ways digital humanities enhances our understanding of modern society.

Long Description:
Taking up the challenge of navigating the complex world of digital humanities, Making Sense of Digital Humanities offers readers an exploration of the many ways scholars have employed the diverse toolkit of digital humanities to create a better understanding of the synergies and disruptions created by technological change. Rooted in a concern for the daunting tasks associated with teaching and learning about the digital humanities, this volume hopes to provide easy entry into a complex topic while highlighting how an understanding of digital humanities can transform our thinking about technology in the modern world.

Word Count: 67845

ISBN: 978-1-62610-121-0

(Note: This resource's metadata has been created automatically by reformatting and/or combining the information that the author initially provided as part of a bulk import process.)

Subject:
Applied Science
Business and Communication
Communication
Computer Science
Education
Educational Technology
Social Science
Sociology
Material Type:
Textbook
Provider:
Michigan State University
Author:
Ariana K
Christopher Gilliard
Dorothy Kim
Ellen Moll
Emily Mcginn
Julian Chambliss
Justin Wigard
Lauren Coats
Melih Bilgil
Ravynn K
Sharon Leon
Date Added:
12/15/2022
Microprocesadores Fundamentos y Aplicaciones
Conditional Remix & Share Permitted
CC BY-SA
Rating
0.0 stars

Este trabajo ha sido desarrollado gracias a la interacción como docente universitario en la enseñanza teórica y práctica de la materia de microprocesadores con diversos grupos de estudiantes por alrededor de 15 años. Es con sus exigencias, cuestionamientos y colaboraciones con sus proyectos prácticos implementados en los cursos dictados, que se ha podido construir una guía comprensiva, que trate de responder de una forma adecuada las múltiples dudas de los estudiantes en su proceso de aprendizaje.

Subject:
Applied Science
Computer Science
Material Type:
Textbook
Provider:
Project LATIn: The Latin American Open Textbook Initiative
Author:
Carlos Valdivieso
Ronald M. Solís
Date Added:
12/02/2019
The Missing Link
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating
0.0 stars

Short Description:
Return to milneopentextbooks.org to download PDF and other versions of this textNewParaWeb development is an evolving amalgamation of languages that work in concert to receive, modify, and deliver information between parties using the Internet as a mechanism of delivery.NewParaWhile it is easy to describe conceptually, implementation is accompanied by an overwhelming variety of languages, platforms, templates, frameworks, guidelines, and standards. Navigating a project from concept to completion often requires more than mastery of one or two complementing languages, meaning today’s developers need both breadth, and depth, of knowledge to be effective.NewParaThis 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. Each section of the text includes opportunities to practice the material and assess increased knowledge after examining the topics.

Long Description:
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. Each section of the text includes opportunities to practice the material and assess increased knowledge after examining the topics.

Word Count: 87300

ISBN: 978-0-9897226-5-0

(Note: This resource's metadata has been created automatically by reformatting and/or combining the information that the author initially provided as part of a bulk import process.)

Subject:
Applied Science
Computer Science
Information Science
Material Type:
Textbook
Provider:
State University of New York
Author:
Michael Mendez
Date Added:
10/11/2021
Object-Oriented Reengineering Patterns
Conditional Remix & Share Permitted
CC BY-SA
Rating
0.0 stars

The documentation is missing or obsolete, and the original developers have departed. Your team has limited understanding of the system, and unit tests are missing for many, if not all, of the components. When you fix a bug in one place, another bug pops up somewhere else in the system. Long rebuild times make any change difficult. All of these are signs of software that is close to the breaking point.

Many systems can be upgraded or simply thrown away if they no longer serve their purpose. Legacy software, however, is crucial for operations and needs to be continually available and upgraded. How can you reduce the complexity of a legacy system sufficiently so that it can continue to be used and adapted at acceptable cost?

Based on the authors' industrial experiences, this book is a guide on how to reverse engineer legacy systems to understand their problems, and then reengineer those systems to meet new demands. Patterns are used to clarify and explain the process of understanding large code bases, hence transforming them to meet new requirements. The key insight is that the right design and organization of your system is not something that can be evident from the initial requirements alone, but rather as a consequence of understanding how these requirements evolve.

Subject:
Applied Science
Computer Science
Material Type:
Textbook
Author:
Oscar Nierstrasz
Serge Demeyer
Stéphane Ducasse
Date Added:
07/03/2019
Open Logic Project
Unrestricted Use
CC BY
Rating
0.0 stars

The Open Logic Text is an open textbook on mathematical logic aimed at a non-mathematical audience, intended for advanced logic courses as taught in many philosophy departments. It is open-source: you can download the LaTeX code. It is open: you’re free to change it whichever way you like, and share your changes. It is collaborative: a team of people is working on it, using the GitHub platform, and we welcome contributions and feedback. And it is written with configurability in mind.

Subject:
Applied Science
Arts and Humanities
Computer Science
Mathematics
Philosophy
Material Type:
Textbook
Author:
Aldo Antonelli
Andrew Arana
Audrey Yap
Gillian Russell
Jeremy Avigad
Nicole Wyatt
Richard Zach
Walter Dean
Date Added:
05/14/2015
Open Signals and Systems Laboratory Exercises
Conditional Remix & Share Permitted
CC BY-NC
Rating
0.0 stars

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.

Subject:
Applied Science
Computer Science
Material Type:
Activity/Lab
Textbook
Provider:
Iowa State University
Author:
Andrew K. Bolstad
Julie A. Dickerson
Date Added:
10/15/2021