Phu Xuan University Library

Digital library

Textbooks, references and open learning resources.

Introduction to Autonomous Robots

External

Introduction to Autonomous Robots

Nikolaus Correll · Nikolaus Correll · 2016

This book introduces concepts in mobile, autonomous robotics to 3rd-4th year students in Computer Science or a related discipline. The book covers principles of robot motion, forward and inverse kinematics of robotic arms and simple wheeled platforms, perception, error propagation, localization and simultaneous localization and mapping. The cover picture shows a wind-up toy that is smart enough to not fall off a table just using intelligent mechanism design and illustrate the importance of the mechanism in designing intelligent, autonomous systems. This book is open source, open to contributions, and released under a creative common license.

CC BY-NCComputer Science 0 views
Deep into Pharo

External

Deep into Pharo

Alexandre Bergel; Damien Cassou; Stéphane Ducasse; Jannik Laval · Square Bracket Associates · 2013

Pharo is a clean, innovative, open-source, live-programming environment. Deep into Pharois the second volume of a series of books covering Pharo. Whereas the first volume is intended for newcomers, this second volume covers deeper topics.You will learn about Pharo frameworks and libraries such as Glamour, PetitParser, Roassal, FileSystem, Regex, and Socket. You will explore the language with chapters on exceptions, blocks, small integers, and floats. You will discover tools such as profilers, Metacello and Gofer.

CC BY-SAComputer Science 0 views
Pharo by Example 5.0

External

Pharo by Example 5.0

Stéphane Ducasse; Dmitri Zagidulin; Nicolai Hess; Dimitris Chloupis · Stéphane Ducasse · 2016

Pharo is an open-source, elegant and pure object-oriented language that supports truly immersive and life programming experience. Pharo offers excellent tools such as hot-debuggers and on the fly code update that change the programming experience. More at http://www.pharo.org.Pharo is a powerful language and IDE that companies use to deliver complex business-effective applications. More at: http://www.pharo.org/success In Pharo everything is an object, and anything can change at run-time under your fingers. Pharo is written in itself you can explore a complete world. You can feel and talk to objects. But Pharo does not stop there, with Pharo you can improve your object-oriented skills by rediscovering the essence of object-oriented programming. Pharo by Example 50, intended for both students and developers, will guide you gently through the Pharo language and environment by means of a series of examples and exercises. This book is available under the Creative Commons Attribution-ShareAlike 3.0 license.

CC BY-SAComputer Science 0 views
Squeak by Example

External

Squeak by Example

Andrew Black; Stéphane Ducasse; Oscar Nierstrasz; Damien Pollet · University of Bern · 2009

Squeak is a modern open-source development environment for the classic Smalltalk-80 programming language. Despite being the first purely object-oriented language and environment, Smalltalk is in many ways still far ahead of its successors in promoting a vision of an environment where everything is an object, and anything can change at run-time. Squeak by Example, intended for both students and developers, will guide you gently through the Squeak language and environment by means of a series of examples and exercises. The book helps you get started with A Quick Tour of Squeak and guides you through A First Application. The Smalltalk language is introduced in three chapters on Syntax in a Nutshell, Understanding Message Syntax and The Smalltalk Object Model. Development with Squeak is covered in The Squeak Programming Environment and SUnit. Several of the key classes are presented in chapters on Basic Classes, Collections, Streams and Morphic. The first edition of the book concludes with chapters on Classes and Metaclasses and Frequently Asked Questions.

CC BY-SAComputer Science 0 views
Think DSP: Digital Signal Processing in Python

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.

CC BY-NCComputer Science 0 views
Think Complexity: Exploring Complexity Science with Python

External

Think Complexity: Exploring Complexity Science with Python

Allen Downey · Green Tea Press · 2018

Complexity science uses computation to explore the physical and social sciences. In Think Complexity, you'll use graphs, cellular automata, and agent-based models to study topics in physics, biology, and economics. Whether you're an intermediate-level Python programmer or a student of computational modeling, you'll delve into examples of complex systems through a series of worked examples, exercises, case studies, and easy-to-understand explanations. In this updated second edition, you will: Work with NumPy arrays and SciPy methods, including basic signal processing and Fast Fourier Transform Study abstract models of complex physical systems, including power laws, fractals and pink noise, and Turing machines Get Jupyter notebooks filled with starter code and solutions to help you re-implement and extend original experiments in complexity; and models of computation like Turmites, Turing machines, and cellular automata Explore the philosophy of science, including the nature of scientific laws, theory choice, and realism and instrumentalism Ideal as a text for a course on computational modeling in Python, Think Complexity also helps self-learners gain valuable experience with topics and ideas they might not encounter otherwise.

CC BY-NC-SAComputer Science 0 views
Think Bayes: Bayesian Statistics Made Simple

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.

CC BY-NCComputer Science 0 views
Think Stats: Probability and Statistics for Programmers

External

Think Stats: Probability and Statistics for Programmers

Allen Downey · Green Tea Press · 2014

Think Stats is an introduction to Probability and Statistics for Python programmers. Think Stats emphasizes simple techniques you can use to explore real data sets and answer interesting questions. The book presents a case study using data from the National Institutes of Health. Readers are encouraged to work on a project with real datasets. If you have basic skills in Python, you can use them to learn concepts in probability and statistics. Think Stats is based on a Python library for probability distributions (PMFs and CDFs). Many of the exercises use short programs to run experiments and help readers develop understanding.

CC BY-NCComputer Science 0 views
Think Java: How To Think Like a Computer Scientist

External

Think Java: How To Think Like a Computer Scientist

Chris Mayfield; Allen Downey · Green Tea Press · 2020

Think Java is a hands-on introduction to computer science and programming used by many universities and high schools around the world. Its conciseness, emphasis on vocabulary, and informal tone make it particularly appealing for readers with little or no experience. The book starts with the most basic programming concepts and gradually works its way to advanced object-oriented techniques. In this fully updated and expanded edition, authors Allen Downey and Chris Mayfield introduce programming as a means for solving interesting problems. Each chapter presents material for one week of a college course and includes exercises to help you practice what you’ve learned. Along the way, you’ll see nearly every topic required for the AP Computer Science A exam and Java SE Programmer I certification.

CC BY-NC-SAComputer ScienceProgramming Languages 0 views
Fast Fourier Transforms

External

Fast Fourier Transforms

C. Sidney Burrus · OpenStax CNX · 2012

This book focuses on the discrete Fourier transform (DFT), discrete convolution, and, particularly, the fast algorithms to calculate them. These topics have been at the center of digital signal processing since its beginning, and new results in hardware, theory and applications continue to keep them important and exciting. This book uses an index map, a polynomial decomposition, an operator factorization, and a conversion to a filter to develop a very general and efficient description of fast algorithms to calculate the discrete Fourier transform (DFT). The work of Winograd is outlined, chapters by Selesnick, Pueschel, and Johnson are included, and computer programs are provided.

CC BYComputer Science 0 views
Spatial Thinking in Planning Practice: An Introduction to GIS

External

Spatial Thinking in Planning Practice: An Introduction to GIS

Yiping Fang; Vivek Shandas; Eugenio Cordero · Portland State University Library · 2014

The goals of this textbook are to help students acquire the technical skills of using software and managing a database, and develop research skills of collecting data, analyzing information and presenting results. We emphasize that the need to investigate the potential and practicality of GIS technologies in a typical planning setting and evaluate its possible applications. GIS may not be necessary (or useful) for every planning application, and we anticipate these readings to provide the necessary foundation for discerning its appropriate use. Therefore, this textbook attempts to facilitate spatial thinking focusing more on open-ended planning questions, which require judgment and exploration, while developing the analytical capacity for understanding a variety of local and regional planning challenges. While this textbook provides the background for understanding the concepts in GIS as applicable to urban and regional planning, it is best when accompanied by a hands-on tutorial, which will enable readers to develop an in-depth understanding of the specific planning applications of GIS. In the end of each chapter, we also provided several discussion questions, together with contextual applications through some web links.

CC BY-NCComputer Science 0 views
Introduction to the Modeling and Analysis of Complex Systems

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.

CC BY-NC-SAComputer Science 0 views
Digital Circuit Projects: An Overview of Digital Circuits Through Implementing Integrated Circuits

External

Digital Circuit Projects: An Overview of Digital Circuits Through Implementing Integrated Circuits

Charles Kann · Gettysburg College · 2014

Digital circuits, often called Integrated Circuits or ICs, are the central building blocks of a Central Processing Unit (CPU). To understand how a computer works, it is essential to understand the digital circuits which make up the CPU. This text introduces the most important of these digital circuits; adders, decoders, multiplexers, D flip-flops, and simple state machines. What makes this textbook unique is that it puts the ability to understand these circuits into the hands of anyone, from hobbyists to students studying Computer Science. This text is designed to teach digital circuits using simple projects the reader can implement. But unlike most lab manuals used in classes in Digital Circuits or Computer Organization classes, this textbook is designed to remove the barrier of a laboratory infrastructure needed in a face-to-face environment at a college or university. This textbook is designed to be used by the reader to create the circuits in their own homes. The textbook is free. The cost of the kits needed to do the labs is reasonable. And the projects are well documented and can be implemented by even novices to electronic projects. This text allows professors to add laboratory projects in digital circuits to students in online classes in Computer Organization. This enhances these classes with interesting and fun exercises that reinforce the classroom topics. This text can also be used by a hobbyist who wants to learn more about digital circuits and how computers work. The material is presented at a level that someone with no experience in digital circuits and electronics can successfully complete the projects, and gain an understanding of the circuits which go into making up a computer.

CC BYComputer Science 0 views
Java, Java, Java: Object-Oriented Problem Solving

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.

CC BYComputer ScienceProgramming Languages 0 views
The Missing Link: An Introduction to Web Development and Programming

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.

CC BY-NC-SAComputer Science 0 views
Information Systems for Business and Beyond

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.

CC BY-NCComputer ScienceInformation Systems 0 views
Open Data Structures: An Introduction

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.

CC BY-NC-NDComputer Science 0 views
Foundations of Computation

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.

CC BY-NC-SAComputer Science 0 views
Operating Systems and Middleware: Supporting Controlled Interaction

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

CC BY-SAComputer Science 0 views
Algorithms and Data Structures With Applications to Graphics and Geometry

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.

CC BYComputer SciencePure 0 views