Digital library
Textbooks, references and open learning resources.

External
Don’t Cheat Yourself: Scenarios to clarify collusion confusion
Katherine Seaton · La Trobe University · 2023
Ensuring academic integrity in mathematical tasks presents a unique challenge, for university students and for their assessors, and one that hitherto has been under-examined. Drawing on her twenty years of experience in mathematics education, the recent academic integrity research literature, and on what students say about why misconduct occurs, the author examines this issue head-on. Don’t Cheat Yourself: Scenarios to clarify collusion confusion facilitates intentional consideration of the nature and purpose of assessment in mathematics, and of how some types of interactions between students undermine that purpose. Pertinent and realistic scenarios are provided as prompts for discussion, through which students in mathematical disciplines can come to a better understanding of what constitutes copying and collusion, identify strategies for finding support, be warned of the short- and long-term consequences of misconduct, and be set up to learn collaboratively and work legitimately.

External
Teaching Early and Elementary STEM
Alissa Lange; Laura Robertson; Jamie Price; Amie Craven · East Tennessee State University · 2021
This Open Access Educational textbook, "Teaching Early and Elementary STEM", was written to support pre-service early childhood and elementary teachers in their journey to become facilitators of science, technology, engineering, and math, or “STEM,” and "integrated STEM" in their future classrooms. Students who read and use this text will deepen their understanding of “STEM” and “integrated STEM,” learn what early childhood and elementary students need to know and be able to do in relation to STEM, and understand ways to create activity plans and implement current research-based approaches to teaching and pedagogy. This text arose out of our Early/Elementary STEM Collaboration project, which started in 2017 with the intention of increasing the quality of teacher preparation in STEM across early childhood and elementary education. The team is composed of math and science education professors, classroom in-service teachers, and pre-service teachers in pre-school through fifth grade. We are driven by the values of collaboration, strengths-based approaches to teaching and learning, constructivist philosophy of teaching and learning, and applied STEM experiences to increase access and equity. Our model of preparing pre-service teachers has been published elsewhere in more detail (Robertson, Nivens, & Lange, 2019). We built this open access product to include the following: 1) completely new content that includes input from our team as well as examples of integrated STEM learning experiences; 2) adaptations of existing resources, and; 3) compilations of existing free resources (e.g., Next Generation Science Standards).

External
Introduction to Curriculum for Early Childhood Education
Jennifer Paris; Kristin Beeve; Clint Springer · College of the Canyons · 2018
Welcome to learning about how to effectively plan curriculum for young children. This textbook will address: Developing curriculum through the planning cycle Theories that inform what we know about how children learn and the best ways for teachers to support learning The three components of developmentally appropriate practice Importance and value of play and intentional teaching Different models of curriculum Process of lesson planning (documenting planned experiences for children) Physical, temporal, and social environments that set the stage for children’s learning Appropriate guidance techniques to support children’s behaviors as the self-regulation abilities mature. Planning for preschool-aged children in specific domains including Physical development Language and literacy Math Science Creative (the visual and performing arts) Diversity (social science and history) Health and safety How curriculum planning for infants and toddlers is different from planning for older children Supporting school-aged children’s learning and development in out-of-school time through curriculum planning Making children’s learning visible through documentation and assessment

External
Yet Another Introductory Number Theory Textbook (Cryptology Emphasis Version)
Jonathan Poritz · Jonathan Poritz · 2014
This version of YAINTT has a particular emphasis on connections to cryptology. The cryptologic material appears in Chapter 4 and §§5.5 and 5.6, arising naturally (I hope) out of the ambient number theory. The main cryptologic applications – being the RSA cryptosystem, Diffie-Hellman key exchange, and the ElGamal cryptosystem – come out so naturally from considerations of Euler’s Theorem, primitive roots, and indices that it renders quite ironic G.H. Hardy’s assertion [Har05] of the purity and eternal inapplicability of number theory. Note, however, that once we broach the subject of these cryptologic algorithms, we take the time to make careful definitions for many cryptological concepts and to develop some related ideas of cryptology which have much more tenuous connections to the topic of number theory. This material therefore has something of a different flavor from the rest of the text – as is true of all scholarly work in cryptology (indeed, perhaps in all of computer science), which is clearly a discipline with a different culture from that of “pure”mathematics. Obviously, these sections could be skipped by an uninterested reader, or remixed away by an instructor for her own particular class approach.

External
The Crystal Ball Instruction Manual
Stephen Davies · University of Mary Washington · 2020
Welcome to Volume Two of the Crystal Ball series: Foundations for Data Science! I titled the first volume “Introduction to Data Science” because it led you through a dip-your-toes-in-the-water experience. You took a brief tour through the various elements in this diverse field and got a feel for what it was all about. Since you’re still reading, this means you’re still interested, and ready to explore the next level. In Foundations, we’ll solidify your growing knowledge so that you have a firm base on which to build everything else. Future volumes in this series will cover applications, advanced techniques, and some special data types that require special treatment. But it all ultimately rests on the skill set you’ll have built in Volumes One and Two of this series.

External
Mastering Enterprise Networks
Mathew Heath Van Horn · Embry-Riddle Aeronautical University · 2024
Mastering Enterprise Networks, is a comprehensive guide to building, defending, and attacking enterprise networks. It covers a wide range of topics, from network fundamentals to advanced security concepts. The book is well-organized and easy to follow, making it a valuable resource for both beginners and experienced network professionals. One of the strengths of this book is its focus on hands-on learning. The book includes 50 chapters of labs that allow readers to practice the concepts they have learned. These labs are a great way to reinforce your understanding of enterprise networks while developing practical skills.

External
Prealgebra via Python Programming: First Steps to Perform Large Scale Computational Tasks in the Sciences and Engineerings
Sergio Rojas · Sergio Rojas · 2018
This book was written for students and instructors who want to learn how to use a computer for other than the most common uses, such as web browsing, document creation, or paying bills online. This book is for anyone who wants to perform computational tasks that they design. In other words, if you wish to learn how to program a computer, this book is for you. Because prealgebra is a subject that practically everyone is supposed to learn in grade school, it provides a platform to introduce basic computer programming concepts. Consequently, this book should also be of interest to students in middle or high school who want to learn how to program, and who are willing to invest the time and effort in learning a programming language that they could continue using throughout their schooling and in their professional life. Similarly, this book could also be of interest to pre-service and in-service mathematics teachers wishing to have at their disposal a complementary tool to assist in fostering understanding, competency, and interest in mathematics among their students. This book can be integrated with the teachers’ curriculum as way to tackle non-traditional math problems using an inexpensive modern computer language. By the end of the book, a reader will have learned enough to be able to write a preliminary, step-by-step one variable equation solver that can be expanded in the future to use with more complex equations. In other words, by the end of the book, you will be able to write code that programs their machines to solve equations. This code is foundational and readers are ecouraged to learn on their own how to build on it to suit their mathematics learning needs.

External
Evidence-based Software Engineering
Derek Jones · Knowledge Software · 2020
This book discusses what is currently known about software engineering, based on an analysis of all the publicly available data. This aim is not as ambitious as it sounds, because there is not a great deal of data publicly available. The intent is to provide material that is useful to professional developers working in industry; until recently researchers in software engineering have been more interested in vanity work, promoted by ego and bluster. The material is organized in two parts, the first covering software engineering and the second the statistics likely to be needed for the analysis of software engineering data.

External
Introduction to Statistical Thinking
Benjamin Yakir · Benjamin Yakir · 2010
The target audience for this book is college students who are required to learn statistics, students with little background in mathematics and often no motivation to learn more. It is assumed that the students do have basic skills in using computers and have access to one. Moreover, it is assumed that the students are willing to actively follow the discussion in the text, to practice, and more importantly, to think. Teaching statistics is a challenge. Teaching it to students who are required to learn the subject as part of their curriculum, is an art mastered by few. In the past I have tried to master this art and failed. In desperation, I wrote this book. This book uses the basic structure of generic introduction to statistics course. However, in some ways I have chosen to diverge from the traditional approach. One divergence is the introduction of R as part of the learning process. Many have used statistical packages or spreadsheets as tools for teaching statistics. Others have used R in advanced courses. I am not aware of attempts to use R in introductory level courses. Indeed, mastering R requires much investment of time and energy that may be distracting and counterproductive for learning more fundamental issues. Yet, I believe that if one restricts the application of R to a limited number of commands, the benefits that R provides outweigh the difficulties that R engenders. Another departure from the standard approach is the treatment of probability as part of the course. In this book I do not attempt to teach probability as a subject matter, but only specific elements of it which I feel are essential for understanding statistics. Hence, Kolmogorov’s Axioms are out as well as attempts to prove basic theorems and a Balls and Urns type of discussion. On the other hand, emphasis is given to the notion of a random variable and, in that context, the sample space.

External
First Semester in Numerical Analysis with Python
Yaning Liu · Auraria Institutional Repository
The book is based on “First semester in Numerical Analysis with Julia”, written by Giray Ökten. The contents of the original book are retained, while all the algorithms are implemented in Python (Version 3.8.0). Python is an open source (under OSI), interpreted, general-purpose programming language that has a large number of users around the world. Python is ranked the third in August 2020 by the TIOBE programming community index, a measure of popularity of programming languages, and is the top-ranked interpreted language. We hope this book will better serve readers who are interested in a first course in Numerical Analysis, but are more familiar with Python for the implementation of the algorithms. The first chapter of the book has a self-contained tutorial for Python, including how to set up the computer environment. Anaconda, the open-source individual edition, is recommended for an easy installation of Python and effortless management of Python packages, and the Jupyter environment, a web-based interactive development environment for Python as well as many other programming languages, was used throughout the book and is recommended to the readers for easy code development, graph visualization and reproducibility.

External
Think Data Structures: Algorithms and Information Retrieval in Java
Allen Downey · Green Tea Press · 2016
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. But in my opinion, most of the books on these topics are too theoretical, too big, and too bottom-up: Too theoretical: Mathematical analysis of algorithms is based on simplifying assumptions that limit its usefulness in practice. Many presentations of this topic gloss over the simplifications and focus on the math. In this book I present the most practical subset of this material and eliminate the rest. Too big: Most books on these topics are at least 500 pages, and some are more than 1000. By focusing on the topics I think are most useful for software engineers, I kept this book under 250 pages. Too bottom-up: Many data structures books focus on how data structures work (the implementations), with less about how to use them (the interfaces). In this book, I go “top down”, starting with the interfaces. Readers learn to use the structures in the Java Collections Framework before getting into the details of how they work. Finally, many present this material out of context and without motivation: it’s just one damn data structure after another! I try to alleviate the boredom by organizing the topics around an application—web search—that uses data structures extensively, and is an interesting and important topic in its own right. This application also motivates some topics that are not usually covered in an introductory data structures class, including persistent data structures, with Redis, and streaming algorithms. This book also presents basic aspects of software engineering practice, including version control and unit testing. Each chapter ends with an exercise that allows readers to apply what they have learned. Each exercise includes automated tests that check the solution. And for most exercises, I present my solution at the beginning of the next chapter. This book is intended for college students in computer

External
How to Think Like a Computer Scientist: C Version
Allen Downey; Thomas Scheffler · Green Tea Press · 1999
The goal of this book is to teach you to think like a computer scientist. I like the way computer scientists think because they combine some of the best features of Mathematics, Engineering, and Natural Science. Like mathematicians, computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating trade offs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions.The single most important skill for a computer scientist is problem-solving. By that I mean the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills. That’s why this chapter is called “The way of the program.”

External
How to Think Like a Computer Scientist: C++ Version
Allen Downey · Green Tea Press · 2012
The goal of this book is to teach you to think like a computer scientist. I like the way computer scientists think because they combine some of the best features of Mathematics, Engineering, and Natural Science. Like mathematicians,computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating trade offs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions.The single most important skill for a computer scientist is problem-solving. By that I mean the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills. That’s why this chapter is called “The way of the program.”

External
Think DSP: Digital Signal Processing in Python
Allen Downey · Green Tea Press · 2012
Think DSP is an introduction to Digital Signal Processing in Python. The premise of this book (and the other books in the Think X series) is that if you know how to program, you can use that skill to learn other things. The author is writing this book because he thinks the conventional approach to digital signal processing is backward: most books (and the classes that use them) present the material bottom-up, starting with mathematical abstractions like phasors.

External
Think Bayes: Bayesian Statistics Made Simple
Allen Downey · Green Tea Press · 2012
Think Bayes is an introduction to Bayesian statistics using computational methods. The premise of this book, and the other books in the Think X series, is that if you know how to program, you can use that skill to learn other topics. Most books on Bayesian statistics use mathematical notation and present ideas in terms of mathematical concepts like calculus. This book uses Python code instead of math, and discrete approximations instead of continuous mathematics. As a result, what would be an integral in a math book becomes a summation, and most operations on probability distributions are simple loops. I think this presentation is easier to understand, at least for people with programming skills. It is also more general, because when we make modeling decisions, we can choose the most appropriate model without worrying too much about whether the model lends itself to conventional analysis. Also, it provides a smooth development path from simple examples to real-world problems.

External
Introduction to the Modeling and Analysis of Complex Systems
Hiroki Sayama · Open SUNY · 2015
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.

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
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
Data Analytics with Applications in Business
Elbert Hearon · Aurora University · 2026
In today’s data-driven world, businesses constantly ask: How can we make optimal decisions? How can we predict what will happen next? Data analytics answers these questions and many other by transforming raw data into meaningful insights.