Phu Xuan University Library

Digital library

Textbooks, references and open learning resources.

A Tale of Two Systems

External

A Tale of Two Systems

René Reitsma; Kevin Krueger · Oregon State University · 2017

This is the story of a web-based information system rebuild. The system in question is www.teachengineering.org, a digital library of K-12 engineering curriculum that was built from the ground up with established technology and which for 13 years enjoyed lasting support from its growing user community and its sponsors. These 13 years, however, cover the period during which smart phones and tablets became commonplace, during which the Internet of Things started replacing the Semantic Web, during which NoSQL databases made their way out of the research labs and into everyday development shops, during which we collectively started moving IT functions and services into ‘the cloud,’ and during which computing performance doubled a few times, yet again. During this same period, TeachEngineering’s user base grew from a few hundred to more than 3 million users annually, its collection size quadrupled, it went through several user interface renewals, and significant functionality was added while having an exemplary service record, and it enjoyed continued financial support from its sponsors. In this monograph we provide a side-by-side of this rebuild. We lay out the choices made in the old architecture —we refer to it as TE 1.0— and compare and contrast them with the choices made for TE 2.0. We explain why both the 1.0 and 2.0 choices were made and discuss the advantages and disadvantages associated with them.

CC BY-NC-SAInformation Systems 0 views
Practical Game Programming

External

Practical Game Programming

Harris Wang; Walter Ridgewell · Athabasca University Press · 2026

Practical Game Programming provides a structured, accessible introduction to game development using C++ and the Allegro 5 library. Designed for upper-level undergraduate learners, it guides students through the complete development pipeline—from programming fundamentals and user input to graphics, audio, file management, and game timing. Advanced topics such as collision detection, multithreading, optimization, custom shaders, and networking are covered in depth. This OER emphasizes both technical skills and design principles, including game conception, prototyping, UI/UX, testing, and quality assurance. Each chapter includes exercises and projects, culminating in genre-based development challenges across action, platformer, adventure, arcade, puzzle, role-playing, strategy, and more. With a focus on applied learning and creative exploration, this text equips students to build professional-quality games and prepares them for real-world development environments.

CC BY-NC-SAComputer Science 0 views
Discrete Mathematics for Information Technology

External

Discrete Mathematics for Information Technology

Simon Crothers · Kwantlen Polytechnic University · 2026

Discrete Mathematics for Information Technology is an applied, student-focused introduction to the mathematical foundations that underpin modern computing. Designed for learners in information technology and business contexts, this textbook bridges theory and practice by connecting core concepts, such as number systems, data representation, logic, proofs, relations, algorithms, Boolean algebra, and graph theory, to real-world applications in programming, networking, databases, and systems design. Each chapter is structured with clear explanations, worked examples, case studies, and programming-oriented exercises that reinforce both conceptual understanding and practical skills. Emphasis is placed on developing analytical thinking, problem-solving, and the ability to model and reason about digital systems with precision and confidence. As an open educational resource, the text is adaptable and accessible, supporting a wide range of teaching and learning environments. By integrating mathematical rigor with authentic IT scenarios, this book equips students with the essential tools needed to succeed in modern, data-driven and technology-focused careers.

CC BY-NC-SAComputer ScienceMathematics 0 views
The Future is Now: Empowering Society Through AI Literacy

External

The Future is Now: Empowering Society Through AI Literacy

Jason Wrench; Sanae Elmoudden · Milne Open Textbooks · 2025

"The Future is Now: Empowering Society Through AI Literacy" aims to educate and empower a broad audience on the nuances of artificial intelligence, ensuring that readers are not only informed about what AI is and can do but are also prepared to engage with the technology ethically and responsibly. The book adopts a multidisciplinary approach, weaving together technical explanations, ethical considerations, and socio-economic insights to provide a comprehensive overview of AI's role in society today and its potential for the future.

CC BY-NC-SAComputer ScienceSociology 0 views
Programming Differential Privacy

External

Programming Differential Privacy

Joseph Near; Chiké Abuah · Joseph P. Near and Chiké Abuah · 2025

This book offers a hands-on introduction to differential privacy, combining formal foundations with executable code and practical design patterns. The material has evolved through lecture notes, workshops, and collaborations with academics and practitioners, gradually expanding to cover both classical and modern topics.

CC BY-NC-SAComputer Science 0 views
Beyond Coding

External

Beyond Coding

David Tuffley · Griffith University · 2025

In today’s competitive IT industry, technical skills alone are no longer enough to succeed. This book teaches essential soft skills that transform technical professionals into complete IT leaders. You will master clear communication for diverse audiences, build strong teams through collaboration and conflict resolution, and solve complex problems with structured thinking. The guide covers time management techniques, project management fundamentals, and stakeholder delivery methods. Additional modules address professional ethics, customer relations, cultural awareness, leadership influence, and personal growth. These practical skills complement your technical knowledge, creating competitive advantages in today’s IT industry. The book provides frameworks, tools, and strategies that help you advance your career, lead projects successfully, and adapt to changing workplace demands.

CC BY-NCComputer ScienceInformation Systems 0 views
Scientific Computing for Chemists with Python

External

Scientific Computing for Chemists with Python

Charles Weiss · Charles J. Weiss · 2025

This book serves as an introduction to coding for chemists. The tools employed in this book are the powerful and popular combination of Jupyter notebooks and the Python programming language. No background beyond first-year college chemistry and occasionally some very basic spectroscopy (for advanced chapters) is assumed for most of this book. This book starts with a brief primer on Jupyter notebooks in chapter 0 and computer programming with Python in chapters 1 and 2. If you already have a background in these tools, feel free to skip ahead. The rest of the book dives into applications of Python to solving chemical problems. Python and Jupyter were chosen for a variety of reasons, including that they are: Relatively easy to use and learn Powerful and well-suited for solving chemical problems Free, open-source software Cross-platform (e.g., runs on Windows, macOS, and Linux) Supplemented with numerous, specialized libraries for handling specific types of data or problems (e.g., machine learning) Supported by a helpful and welcoming community Learning to use a number of popular Python scientific libraries to solve chemical problems is one of the themes of this book. A Python library can be thought of as a tool pack with premade functions for performing common tasks in scientific data processing, analysis, and visualization. For example, the matplotlib library provides a variety of functions for creating a wide range of plots, while the scikit-learn library contains functions and resources for machine learning.

CC BY-NC-SAChemistryComputer Science 0 views
Introduction to Computer Programming with Python

External

Introduction to Computer Programming with Python

Harris Wang · Athabasca University Press · 2023

This introduction to computer programming with Python begins with some of the basics of computing and programming before diving into the fundamental elements and building blocks of computer programs in Python language. From the installation of Python, Python interactive programming, and integrated development environments to raising and handling exceptions, using compound data types to solve problems, and implement divide-and-conquer processes using functions, classes and modules, this textbook will set students up for success in programming and computing study and practice. The included exercises and projects are designed to hone students’ skills.

CC BY-NC-SAComputer ScienceProgramming Languages 0 views
InfoTech Governance, Policy, Ethics & Law

External

InfoTech Governance, Policy, Ethics & Law

David Tuffley · Council of Australian University Librarians · 2025

A comprehensive guide to IT governance, policy, ethics and law for students, practitioners and researchers. Covers the latest developments and best practices in the field, with a focus on the ethical, legal and social implications of IT. The textbook is divided into nine chapters, each covering a key topic in IT governance, policy, ethics and law.

CC BY-NCComputer ScienceLaw 0 views
Operating Systems and Infrastructure in Data Science

External

Operating Systems and Infrastructure in Data Science

Josef Spillner · vdf Hochschulverlag · 2023

Modern data scientists work with a number of tools and operating system facilities in addition to online platforms. Mastering these in combination to manage their data and to deploy software, models and data as ready-to-use online services as well as to perform data science and analysis tasks is in the focus of Operating Systems and Infrastructure in Data Science. Readers will come to understand the fundamental concepts of operating systems and to explore plenty of tools in hands-on tasks and thus gradually develop the skills necessary to compose them for programming in the large, an essential capability in their later career. The book guides students through semester studies, acts as reference knowledge base and aids in acquiring the necessary knowledge, skills and competences especially in self-study settings. A unique feature of the book is the associated access to Edushell, a live environment to practice operating systems and infrastructure tasks.

CC BY-NC-SAComputer ScienceDatabases 0 views
Semantic Web Development

External

Semantic Web Development

Sean Burns · Sean Burns · 2025

This book serves as an introduction to semantic web development. A more advanced semantic web development course would introduce students to RDFS, SKOS, OWL, SPARQL or more. But this book expects undergraduate students who are new to web development. Therefore this work focuses on entry level topics: HTML5 and its semantic elements, CSS3, and JSON-LD with schema.org.

CC BY-NC-SAComputer ScienceLibrary Science and Museum Studies 0 views
Programming with Java

External

Programming with Java

Ashik Bhuiyan; Md Amiruzzaman · The Pennsylvania Alliance for Design of Open Textbooks (PA-ADOPT) · 2025

Programming with Java is a beginner-friendly eTextbook that introduces readers to the fundamentals of Java, one of the most widely used programming languages. It covers key concepts like syntax, data types, control structures, and object-oriented programming, offering clear explanations and practical examples. The chapters build progressively, making the material accessible even to those with little or no programming background. The book also explores important topics such as exception handling, file I/O, and basic data structures, providing a strong foundation for further computer science studies. With interactive exercises and end-of-chapter projects, readers can apply their knowledge through real-world applications. This eTextbook equips students with the skills they need to confidently take on advanced programming challenges and pursue successful careers in software development.

CC BY-NCComputer ScienceEngineering & Technology 0 views
Culturally Responsive Computing: An Introduction into Computer Science, Security, and Technology

External

Culturally Responsive Computing: An Introduction into Computer Science, Security, and Technology

Devan Walton · ROTEL · 2024

"Culturally Responsive Computing" is an essential textbook that explores the intricate relationship between technology and global societies. It gives students and professionals a deep understanding of how cultural contexts shape and are shaped by computing practices, from algorithm design to user interface development. This book equips readers with the knowledge and skills to create inclusive, ethical, and culturally sensitive technological solutions for our diverse world.

CC BY-NC-SAComputer Science 0 views
The Crystal Ball Instruction Manual

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.

CC BY-SAComputer ScienceMathematics 0 views
An Introduction to Python Jupyter Notebooks for College Math Teachers

External

An Introduction to Python Jupyter Notebooks for College Math Teachers

Paul Isihara; Claire Wagner; Peter Jantsch; Thomas VanDrunen · Paul Isihara, Claire Wagner, Peter Jantsch, and Thomas VanDrunen · 2024

This book is an introduction to the use of Python Jupyter Notebooks (JNBs) for college math teachers and their students. The book is an evolving work in progress, but we hope this 1st Edition may already be quite useful to a college math teacher who is interested to use Jupyter Notebooks in their courses. Each section of the book has been written in the form of a Jupyter Notebook and can be downloaded using the download button at the top menu bar. In some cases, additional data files or image files may need to be downloaded as well. All the files are available in the src folder of the github repository https://github.com/timothyprojectGiG/JB_Math_Textbook Each chapter contains a JNB lab with solutions. Experienced teachers can modify these labs and create new labs tailored to their courses. The chapters were written by different authors/authorship teams, and as such, vary in style. Each chapter essentially can be read independently of the others as long as one has the pre-requisite mathematical knowledge. Some effort has been made to standardize the chapter formats, and the index may help the reader find specific topics of interest. There is virtually no limit to what can be done with JNBs, and we hope this work serves as a useful starting point for teachers and students to enrich and enliven the study of mathematics using this tool. The JNBs used to create this book contain special markdown code which are needed to produce features such as indexing, referencing, and highlight boxes in the Jupyter Book. Some editing of a downloaded JNB may may make it more suitable for classroom use.

CC BYComputer ScienceMathematics 0 views
Mastering Enterprise Networks

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.

CC BYComputer ScienceInformation Systems 0 views
Introduction to Data Science Using Python

External

Introduction to Data Science Using Python

Afrand Agah · The Pennsylvania Alliance for Design of Open Textbooks (PA-ADOPT) · 2024

This book contains two parts, the first is designed to be used in an introductory programming course for students looking to learn Python, without having any prior experience with programming. Basic programming concepts are discussed, explained, and illustrated with a Python program. Ample programming questions are provided for practice. The second part of the book utilizes machine-learning concepts and statistics to accomplish data-driven resolutions. Python programs are provided to apply scientific computing to conclude statistically driven results.

CC BY-NCComputer Science 0 views
Building User Interfaces for Modern Web Applications: React Programming

External

Building User Interfaces for Modern Web Applications: React Programming

Cheer-Sun Yang · The Pennsylvania Alliance for Design of Open Textbooks (PA-ADOPT) · 2024

Since Facebook released React as an open-source software library for front-end programming in 2013, React has gain popularity quickly. Although there are other frameworks or libraries, React is considered a programmer-friendly JavaScript library using the functional programming approach for the front-end web application development. Teaching and learning React can provide training in Functional Programming, Software Engineering Principles, and the Event-Driven Programming Paradigm. The ultimate goal of this eTextbook is to provide a timely support for teaching the state-of-the-art technology as the React ecosystem evolves. In this eTextbook, the prerequisite concepts about HTML/CSS, JavaScript, and Bootstrap/React-Bootstrap are introduced first, followed by the main React language features. Finally, the Software Engineering Principles are introduced from the design, development, to debugging and maintenance. The main objectives are threefold: (1) provide concepts about JavaScript Programming, (2) introduce the concepts of modularity, functional programming, and (3) teach the concept of reusable User Interface (UI) as the front-end of modern model-view-controller (MVC) web applications. Although learning other technologies in the React ecosystem is imminent, it is the hope that this book paves the groundwork for the future learning and growing in the field of modern UI development.

CC BY-NCComputer ScienceEngineering & Technology 0 views
Handbook of Software Engineering Methods

External

Handbook of Software Engineering Methods

Lara Letaw · Oregon State University · 2024

Software engineering can help people create sustainable, extensible programs that solve problems people care about.I won’t tell you how to be a software engineer; you’ll learn that over time by doing it. Instead, this book is about software engineering methods: Ways people achieve specific objectives in software engineering—that can save your project. My hope is that, after reading this book (or parts of it), you’ll feel better equipped for software engineering.

CC BY-NCComputer Science 0 views
An Open Guide to Data Structures and Algorithms

External

An Open Guide to Data Structures and Algorithms

Paul Bible; Lucas Moser; Mia Scarlato · PALNI · 2023

This textbook serves as a gentle introduction for undergraduates to theoretical concepts in data structures and algorithms in computer science while providing coverage of practical implementation (coding) issues. The field of computer science (CS) supports a multitude of essential technologies in science, engineering, and communication as a social medium. The varied and interconnected nature of computer technology permeates countless career paths making CS a popular and growing major program. Mastery of the science behind computer science relies on an understanding of the theory of algorithms and data structures. These concepts underlie the fundamental tradeoffs that dictate performance in terms of speed, memory usage, and programming complexity that separate novice programmers from professional practitioners.

CC BYComputer Science 0 views