Digital library
Textbooks, references and open learning resources.

External
Java, Java, Java: Object-Oriented Problem Solving
Ralph Morelli; Ralph Walde · Ralph Morelli, Ralph Walde · 2016
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. The third edition retains many of the features of the first two editions, including: Early Introduction of Objects Emphasis on Object Oriented Design (OOD) Unified Modeling Language (UML) Diagrams Self-study Exercises with Answers Programming, Debugging, and Design Tips. From the Java Library Sections Object-Oriented Design Sections End-of-Chapter Exercises Companion Web Site, with Power Points and other Resources The In the Laboratory sections from the first two editions have been moved onto the book's Companion Web Site. Table 1 shows the Table of Contents for the third edition.

External
The Missing Link: An Introduction to Web Development and Programming
Michael Mendez · Open SUNY · 2014
Web 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. While 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. 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.

External
Information Systems for Business and Beyond
David Bourgeois; James Smith; Shouhong Wang; Joseph Mortati · Saylor Foundation · 2014
This book is written as an introductory text, meant for those with little or no experience with computers or information systems. While sometimes the descriptions can get a little bit technical, every effort has been made to convey the information essential to understanding a topic while not getting bogged down in detailed terminology or esoteric discussions. Information Systems for Business and Beyond was written by Dr. David Bourgeois and originally published in 2014 as part of the Open Textbook Challenge at the Saylor Foundation. Since then, it has been accessed thousands of time and used in many courses worldwide. This 2019 update to the textbook brings it up to date and adds many new topics. True to its open textbook roots, many of the updates have come from the community of instructors and practitioners who are passionate about information systems. Please note that the XML and MS Word links go to an earlier version.

External
Open Data Structures: An Introduction
Pat Morin · Athabasca University Press · 2013
Offered as an introduction to the field of data structures and algorithms, Open Data Structures covers the implementation and analysis of data structures for sequences (lists), queues, priority queues, unordered dictionaries, ordered dictionaries, and graphs. Focusing on a mathematically rigorous approach that is fast, practical, and efficient, Morin clearly and briskly presents instruction along with source code. Analyzed and implemented in Java, the data structures presented in the book include stacks, queues, deques, and lists implemented as arrays and linked-lists; space-efficient implementations of lists; skip lists; hash tables and hash codes; binary search trees including treaps, scapegoat trees, and red-black trees; integer searching structures including binary tries, x-fast tries, and y-fast tries; heaps, including implicit binary heaps and randomized meldable heaps; graphs, including adjacency matrix and adjacency list representations; and B-trees. A modern treatment of an essential computer science topic, Open Data Structures is a measured balance between classical topics and state-of-the art structures that will serve the needs of all undergraduate students or self-directed learners.

External
Foundations of Computation
Carol Critchlow; David Eck · Carol Crichlow and David Eck · 2011
Foundations of Computation is a free textbook for a one-semester course in theoretical computer science. It has been used for several years in a course at Hobart and William Smith Colleges. The course has no prerequisites other than introductory computer programming. The first half of the course covers material on logic, sets, and functions that would often be taught in a course in discrete mathematics. The second part covers material on automata, formal languages, and grammar that would ordinarily be encountered in an upper level course in theoretical computer science.

External
Operating Systems and Middleware: Supporting Controlled Interaction
Max Hailperin · Max Hailperin · 2015
In this book, you will learn about all three kinds of interaction. In all three cases, interesting software techniques are needed in order to bring the computations into contact, yet keep them suffciently at arm's length that they don't compromise each other's reliability. The exciting challenge, then, is supporting controlled interaction. This includes support for computations that share a single computer and interact with one another, as your email and word processing programs do. It also includes support for data storage and network communication. This book describes how all these kinds of support are provided both by operating systems and by additional software layered on top of operating systems, which is known as middleware. Chapter 1 provides an overview of the text as a whole, explaining what an operating system is, what middleware is, and what sorts of support these systems provide for controlled interaction. The next nine chapters work through the varieties of controlled interac- tion that are exemplified by the scenario at the beginning of the preface: in- teraction between concurrent computations on the same system (as between your email program and your word processor), interaction across time (as between your word processor before your trip and your word processor after your trip), and interaction across space (as between your email program and your service provider's email server). The first of these three topics is controlled interaction between computa- tions operating at one time on a particular computer. Before such interaction can make sense, you need to understand how it is that a single computer can be running more than one program, such as an email program in one window and a word processing program in another. Therefore, Chapter 2 explains the fundamental mechanism for dividing a computer's attention between concurrent computations, known as threads. Chapter 3 continues with the related topic of scheduling. That is, if the computer is dividin

External
Algorithms and Data Structures With Applications to Graphics and Geometry
Jurg Nievergelt; Klaus Hinrichs · Global Text Project · 2011
An introductory coverage of algorithms and data structures with application to graphics and geometry.

External
Programming Fundamentals - A Modular Structured Approach using C++
Kenneth Busbee · OpenStax CNX · 2013
Programming Fundamentals - A Modular Structured Approach using C++ is written by Kenneth Leroy Busbee, a faculty member at Houston Community College in Houston, Texas. The materials used in this textbook/collection were developed by the author and others as independent modules for publication within the Connexions environment. Programming fundamentals are often divided into three college courses: Modular/Structured, Object Oriented and Data Structures. This textbook/collection covers the first of those three courses. The learning modules of this textbook/collection were written as standalone modules. Students using a collection of modules as a textbook will usually view it contents by reading the modules sequentially as presented by the author of the collection. The learning modules of this textbook/collection were, for the most part, written without consideration of a speci??c programming language. In many cases the C++ language is discussed as part of the explanation of the concept. Often the examples used for C++ are exactly the same for the Java programming language. However, some modules were written speci??cally for the C++ programming language. This could not beavoided as the C++ language is used in conjunction with this textbook/collection by the author in teaching college courses.

External
The Little Book of Semaphores
Allen Downey · Green Tea Press · 2016
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.

External
Physical Modeling in MATLAB
Allen Downey · Green Tea Press · 2021
Modeling and simulation are powerful tools for explaining the world, making predictions, designing things that work, and making them work better. Learning to use these tools can be difficult; this book is my attempt to make the experience as enjoyable and productive as possible. By reading this book — and working on the exercises — you will learn some programming, some modeling, and some simulation: With basic programming skills, you can create models for a wide range of physical systems. My goal is to help you develop these skills in a way you can apply immediately to real-world problems. This book presents the entire modeling process, including model selection, analysis, simulation, and validation. I explain this process in Chapter 1, and there are examples throughout the book. Simulation is an approach to modeling that uses computer programs to implement models and generate predictions. This book shows how simulations are used to run experiments, answer questions, and guide decision-making.

External
How to Think Like a Computer Scientist: Learning with Python
Allen Downey; Jeff Elkner; Chris Meyers · Green Tea Press · 2008
How to Think Like a Computer Scientist: Learning with Python is an introduction to programming using Python.

External
Essentials of Geographic Information Systems
Jonathan Campbell; MIchael Shin · Saylor Foundation · 2011
Essentials of Geographic Information Systems integrates key concepts behind the technology with practical concerns and real-world applications. Recognizing that many potential GIS users are nonspecialists or may only need a few maps, this book is designed to be accessible, pragmatic, and concise. Essentials of Geographic Information Systems also illustrates how GIS is used to ask questions, inform choices, and guide policy. From the melting of the polar ice caps to privacy issues associated with mapping, this book provides a gentle, yet substantive, introduction to the use and application of digital maps, mapping, and GIS. In today's world, learning involves knowing how and where to search for information. In some respects, knowing where to look for answers and information is arguably just as important as the knowledge itself. Because Essentials of Geographic Information Systems is concise, focused, and directed, readers are encouraged to search for supplementary information and to follow up on specific topics of interest on their own when necessary. Essentials of Geographic Information Systems provides the foundations for learning GIS, but readers are encouraged to construct their own individual frameworks of GIS knowledge. The benefits of this approach are two-fold. First, it promotes active learning through research. Second, it facilitates flexible and selective learning—that is, what is learned is a function of individual needs and interest. Since GIS and related geospatial and navigation technology change so rapidly, a flexible and dynamic text is necessary in order to stay current and relevant. Though essential concepts in GIS tend to remain constant, the situations, applications, and examples of GIS are fluid and dynamic. Though this book is intended for use in introductory GIS courses, Essentials of Geographic Information Systems will also appeal to the large number of certificate, professional, extension, and online programs in GIS that are available today.

External
Business Information Systems: Design an App for That
Raymond Frost; Jacqueline Pike; Lauren Kenyo; Sarah Pels · Saylor Foundation · 2011
We set out to design an introductory course governed by four themes: Give students a good idea of what a career in MIS looks like by doing MIS. Enhance the professionalism of deliverables by teaching design and usability concepts. Promote creativity by assigning projects that demand it. Teach students about cloud computing by having them do cloud computing. Students in an introductory Management Information Systems (MIS) course often ask what a career in MIS looks like. Lacking a clear vision, they make their own assumptions. Often they assume the career involves programming with little human interaction. That MIS is a technical field could not be further from the truth. MIS job descriptions typically require candidates to be able to collaborate, communicate, analyze needs and gather requirements. They also list the need for excellent written and communication skills. In other words, MIS workers are constantly interacting with other people both inside and outside the organization. They are coming up with creative solutions to business problems. This course is designed to help students get a feel for what a career in MIS would be like. Our students report that they learn more about information systems from their internships than from their IS courses. Consequently, we designed a course that looks very much like an internship—an introduction to the field followed by a substantial project. Chapter 1 begins by introducing the information systems landscape. Here we discuss all the usual suspects: the information systems triangle, the systems development life cycle, transaction systems (ERP, SCM, CRM), collaboration systems, and business intelligence systems. Other aspects of the landscape such as usability, outsourcing, database concepts and so forth are introduced throughout chapter in Chapter 2 where they fit in naturally with the flow of the project. Chapter 2 is the substantial project which runs over a number of chapters. Over the course of the semester, students pl

External
Think Python: How to Think Like a Computer Scientist
Allen Downey · Green Tea Press · 2012
Think Python is a concise introduction to software design using the Python programming language. Intended for people with no programming experience, this book starts with the most basic concepts and gradually adds new material. Some of the ideas students find most challenging, like recursion and object-oriented programming, are divided into a sequence of smaller steps and introduced over the course of several chapters. This textbook has been used in classes at Bard College, Olin College of Engineering, University of California, Santa Barbara, University of Maine, University of Northern Colorado.

External
Programming Languages: Application and Interpretation
Shriram Krishnamurthi · Brown University · 2007
Unlike some other textbooks, this one does not follow a top-down narrative. Rather it has the flow of a conversation, with backtracking. We will often build up programs incrementally, just as a pair of programmers would. We will include mistakes, not because I don't know the answer, but because this is the best way for you to learn. Including mistakes makes it impossible for you to read passively: you must instead engage with the material, because you can never be sure of the veracity of what you're reading. At the end, you'll always get to the right answer. However, this non-linear path is more frustrating in the short term (you will often be tempted to say, “Just tell me the answer, already!”), and it makes the book a poor reference guide (you can't open up to a random page and be sure what it says is correct). However, that feeling of frustration is the sensation of learning. I don't know of a way around it. At various points you will encounter this: ExerciseThis is an exercise. Do try it. This is a traditional textbook exercise. It's something you need to do on your own. If you're using this book as part of a course, this may very well have been assigned as homework. In contrast, you will also find exercise-like questions that look like this: Do Now!There's an activity here! Do you see it? When you get to one of these, stop. Read, think, and formulate an answer before you proceed. You must do this because this is actually an exercise, but the answer is already in the book—most often in the text immediately following (i.e., in the part you're reading right now)—or is something you can determine for yourself by running a program. If you just read on, you'll see the answer without having thought about it (or not see it at all, if the instructions are to run a program), so you will get to neither (a) test your knowledge, nor (b) improve your intuitions. In other words, these are additional, explicit attempts to encourage active learning. Ultimately, however, I can o

External
Information Systems - A Manager's Guide to Harnessing Technology
University of Minnesota Libraries Publishing · 2015
Information Systems: A Manager's Guide to Harnessing Technology is intended for use in undergraduate and/or graduate courses in Management Information Systems and Information Technology. The teaching approach in Information Systems: A Manager's Guide to Harnessing Technology can change this. The text offers a proven approach that has garnered student praise, increased IS enrollment, and engaged students to think deeper and more practically about the space where business and technology meet. Every topic is related to specific business examples, so students gain an immediate appreciation of its importance. Rather than lead with technical topics, the book starts with strategic thinking, focusing on big-picture issues that have confounded experts but will engage students. And while chapters introduce concepts, cases on approachable, exciting firms across industries further challenge students to apply what they've learned, asking questions like: Why was Netflix able to repel Blockbuster and WalMart? How did Harrah's Casino's become twice as profitable as comparably-sized Caesar's, enabling the former to acquire the latter? How does Spain's fashion giant Zara, a firm that shuns the sort of offshore manufacturing used by every other popular clothing chain, offer cheap fashions that fly off the shelves, all while achieving growth rates and profit margins that put Gap to shame? Why do technology markets often evolve into winner-take-all or winner take-most scenarios? And how can managers compete when these dynamics are present? Why is Google more profitable than Disney? How much is Facebook really worth? The teaching approach in this text encourages students to think deeper and more practically about the space where business and technology meet. Every topic is related to specific business examples, so students gain an immediate appreciation of its importance. Rather than starting with technical topics, the book starts with strategic thinking, focusing on big-picture issues t

External
Learning How to Use Microsoft Excel 365
Kaaren McGlynn · Open Oregon Educational Resources · 2025
This core Microsoft® Excel® text provides students with the skills needed to execute many personal and professional activities. It also prepares them to go on to more advanced skills using the Excel software. The text takes the approach of creating Excel worksheets that are accurate, tell a story, and can be helpful in making decisions. Personal decisions introduced include important purchases, such as homes and automobiles, savings for retirement, and personal budgets. Professional decisions include budgets for managing expenses, merchandise items to mark down or discontinue, and inventory management. Students are given clear, easy-to-follow instructions for each skill presented and are also provided with opportunities to learn additional skills related to the personal or professional objectives presented. For example, students learn the key terms with respect to home mortgages and understand the impact interest rates have on monthly mortgage payments. This text also places an emphasis on “what-if” scenarios, so students gain an appreciation for the computational power of the Excel application. In addition, students learn how Excel is used with Microsoft® Word® and Microsoft® PowerPoint® to accomplish a variety of personal and professional objectives.

External
Gateway to Business Analytics with Microsoft Excel®
Humberto Barreto · PALNI · 2025
Business analytics is a new, expanding subfield with fuzzy edges that overlap into a variety of other established disciplines, including economics, econometrics, computer science, data science, finance, statistics, mathematics, and even psychology. Business analytics includes such traditional techniques as regression and data visualization, but also newer methods such as web scraping, big data, machine learning, and artificial intelligence. Its key distinguishing feature is using data to make and communicate business decisions. This textbook utilizes Microsoft Excel to present a mix of topics appropriate to an undergraduate level introduction to business analytics course with an engaging delivery style.

External
Del ágora a la nube: El destino de las humanidades en la era de la IA
Karles Hoffmann-Jaramillo; Carlos Flores-Murillo; Eduardo Baidal-Bustamante · Editorial Grupo AEA · 2025
Explora la evolución del pensamiento crítico desde la Antigua Grecia hasta la era digital, analizando el impacto de la inteligencia artificial (IA) en la educación y la sociedad. Se inicia con una comparación entre el Ágora ateniense, donde se gestó el debate filosófico y la democracia, y los entornos digitales actuales, donde el acceso a la información ha cambiado la forma en que aprendemos. Se resalta cómo la enseñanza de Sócrates, Platón y Aristóteles, basada en el diálogo y la argumentación, sigue siendo relevante para desarrollar el pensamiento crítico en un mundo saturado de datos. En la era digital, la IA ha transformado la educación mediante herramientas que personalizan el aprendizaje y facilitan el acceso a información. Sin embargo, también plantea riesgos como la dependencia tecnológica, los sesgos algorítmicos y la pérdida de autonomía intelectual. El libro enfatiza la necesidad de equilibrar el uso de la tecnología con metodologías pedagógicas que fomenten la reflexión y el análisis crítico. Otro desafío clave es la desinformación, impulsada por la sobreabundancia de datos y la rapidez con la que circula la información en redes sociales. Ante esto, se propone fortalecer la capacidad de los estudiantes para evaluar fuentes, cuestionar datos y construir conocimientos con base en el análisis riguroso. Finalmente, la obra concluye que el futuro de la educación no debe estar centrado solo en la tecnología, sino en la formación de ciudadanos críticos y reflexivos. La IA puede ser una aliada en este proceso, pero es fundamental preservar la esencia humanista del aprendizaje, asegurando que la educación siga siendo un espacio de cuestionamiento, creatividad y pensamiento autónomo.

External
Gestión Inteligente Sinergias en las Tecnologías de la Información y Comunicación
Miguel Fabricio Boné-Andrade; Luis Alfonso Núñez-Freire; Ramiro Enrique Guamán-Chávez · Editorial Grupo AEA · 2024
El libro aborda los desafíos y oportunidades de la inclusión digital, especialmente en el contexto rural de América Latina. Los capítulos iniciales analizan la transformación digital y sus efectos en áreas rurales, destacando la importancia de las TIC para mejorar la calidad de vida y reducir la brecha digital. Posteriormente, se examina el analfabetismo digital como barrera para la inclusión social, con propuestas para políticas de alfabetización que respondan a las necesidades de comunidades vulnerables. Los capítulos centrales exploran la alfabetización digital en Ecuador, enfatizando la infraestructura y las competencias digitales como ejes esenciales. La obra también cubre el rol de la educación superior en la inclusión digital, mostrando ejemplos de vinculación comunitaria por parte de universidades. Los capítulos finales presentan casos de uso de tecnologías en pequeñas empresas para optimizar procesos y mejorar la competitividad, y se discute la relevancia de la ciberseguridad en la era digital. En conjunto, el libro ofrece una perspectiva práctica y teórica, orientada a fomentar la participación equitativa en el ámbito digital, proponiendo soluciones adaptadas a contextos locales.