Search Constraints
Number of results to display per page
Results for:
Keywords
Textbooks
Remove constraint Keywords: Textbooks
« Previous |
1 - 50 of 78
|
Next »
Search Results
-
e-book
Web Accessibility for Developers is a technical book aimed primarily at programmers. Learn how to develop accessible interactivity on the Web and gain expertise using WAI-ARIA, a W3C specification that enables optimal use of assistive technologies, like screen readers, when navigating the Web.
- Subjects:
- Computing
- Keywords:
- Web sites -- Design Computers people with disabilities Textbooks Accessible Web sites for people with disabilities
- Resource Type:
- e-book
-
e-book
Unmanned Aircraft Systems are an integral part of the US national critical infrastructure. The authors have endeavored to bring a breadth and quality of information to the reader that is unparalleled in the unclassified sphere. This textbook will fully immerse and engage the reader / student in the cyber-security considerations of this rapidly emerging technology that we know as unmanned aircraft systems (UAS). The first edition topics covered National Airspace (NAS) policy issues, information security (INFOSEC), UAS vulnerabilities in key systems (Sense and Avoid / SCADA), navigation and collision avoidance systems, stealth design, intelligence, surveillance and reconnaissance (ISR) platforms; weapons systems security; electronic warfare considerations; data-links, jamming, operational vulnerabilities and still-emerging political scenarios that affect US military / commercial decisions.
- Subjects:
- Computing
- Keywords:
- Drone aircraft Computer security Textbooks United States
- Resource Type:
- e-book
-
e-book
With much of the world gone digital, learning to create documents that are accessible to everyone is becoming a necessary skill. Intended for a general audience, this free resource reviews a wide range of document authoring applications, including the tools they contain for creating accessible documents, and tests them to ensure they do not contain potential barriers. Learn how to create accessible word processed documents, spreadsheets, presentation slides, and PDF documents, among others, so they are accessible to everyone.
- Subjects:
- Computing
- Keywords:
- Textbooks Accessible Web sites for people with disabilities
- Resource Type:
- e-book
-
e-book
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.
- Subjects:
- Computing and Mathematics and Statistics
- Keywords:
- Textbooks Statistics -- Computer programs
- Resource Type:
- e-book
-
e-book
Think Raku is an introduction to computer science and programming intended for people with little or no experience. This aim of this book is not primarily to teach Raku, but instead to teach the art of programming, using the Raku language. After having completed this book, you should hopefully be able to write programs to solve relatively difficult problems in Raku, but my main aim is to teach computer science, software programming, and problem solving rather than solely to teach the Raku language itself. Think Raku is a free book available under a Creative Commons license. Readers are free to copy and distribute the text; they are also free to modify it, which allows them to adapt the book to different needs, and to help develop new material.
- Subjects:
- Computing
- Keywords:
- Computer programming Programming languages (Electronic computers) Textbooks
- Resource Type:
- e-book
-
e-book
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 atBard College,Olin College of Engineering, University of California, Santa Barbara, University of Maine, University of Northern Colorado.
- Subjects:
- Computing
- Keywords:
- Computer programming Python (Computer program language) Textbooks Programming languages (Electronic computers)
- Resource Type:
- e-book
-
e-book
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.
- Subjects:
- Computing
- Keywords:
- Java (Computer program language) Computer programming Programming languages (Electronic computers) Textbooks
- Resource Type:
- e-book
-
e-book
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 science and related fields, as well as professional software engineers, people training in software engineering, and people preparing for technical interviews. I assume that the reader knows Java at an intermediate level, but I explain some Java features along the way, and provide pointers to supplementary material. People who have read Think Java or Head First Java are prepared for this book.
- Subjects:
- Computing
- Keywords:
- Java (Computer program language) Data structures (Computer science) Textbooks
- Resource Type:
- e-book
-
e-book
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.
- Subjects:
- Electrical Engineering and Computing
- Keywords:
- Signal processing -- Digital techniques -- Data processing Python (Computer program language) Textbooks
- Resource Type:
- e-book
-
e-book
This book is about complexity science, data structures and algorithms, intermediate programming in Python, and the philosophy of science: Data structures and algorithms: A data structure is a collection that contains data elements organized in a way that supports particular operations. For example, a dictionary organizes key-value pairs in a way that provides fast mapping from keys to values, but mapping from values to keys is generally slower. An algorithm is a mechanical process for performing a computation. Designing efficient programs often involves the co-evolution of data structures and the algorithms that use them. For example, the first few chapters are about graphs, a data structure that is a good implementation of a graph---nested dictionaries---and several graph algorithms that use this data structure. Python programming: This book picks up where Think Python leaves off. I assume that you have read that book or have equivalent knowledge of Python. As always, I will try to emphasize fundmental ideas that apply to programming in many languages, but along the way you will learn some useful features that are specific to Python. Computational modeling: A model is a simplified description of a system that is useful for simulation or analysis. Computational models are designed to take advantage of cheap, fast computation. Philosophy of science: The models and results in this book raise a number of questions relevant to the philosophy of science, including the nature of scientific laws, theory choice, realism and instrumentalism, holism and reductionism, and Bayesian epistemology. This book focuses on discrete models, which include graphs, cellular automata, and agent-based models. They are often characterized by structure, rules and transitions rather than by equations. They tend to be more abstract than continuous models; in some cases there is no direct correspondence between the model and a physical system. Complexity science is an interdisciplinary field---at the intersection of mathematics, computer science and physics---that focuses on these kinds of models. That's what this book is about.
- Subjects:
- Computing
- Keywords:
- Computational complexity Python (Computer program language) Textbooks
- Resource Type:
- e-book
-
e-book
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.
- Subjects:
- Computing and Mathematics and Statistics
- Keywords:
- Bayesian statistical decision theory Python (Computer program language) Textbooks
- Resource Type:
- e-book
-
e-book
This text is a practical guide for linguists, and programmers, who work with data in multilingual computational environments. We introduce the basic concepts needed to understand how writing systems and character encodings function, and how they work together at the intersection between the Unicode Standard and the International Phonetic Alphabet. Although these standards are often met with frustration by users, they nevertheless provide language researchers and programmers with a consistent computational architecture needed to process, publish and analyze lexical data from the world's languages. Thus we bring to light common, but not always transparent, pitfalls which researchers face when working with Unicode and IPA. Having identified and overcome these pitfalls involved in making writing systems and character encodings syntactically and semantically interoperable (to the extent that they can be), we created a suite of open-source Python and R tools to work with languages using orthography profiles that describe author- or document-specific orthographic conventions. In this cookbook we describe a formal specification of orthography profiles and provide recipes using open source tools to show how users can segment text, analyze it, identify errors, and to transform it into different written forms for comparative linguistics research.
- Subjects:
- Language and Languages and Computing
- Keywords:
- Language languages -- Orthography spelling Unicode (Computer character set) Textbooks
- Resource Type:
- e-book
-
e-book
Spec is the default UI framework for Pharo. To build UI's in Spec existing widgets or even complete UI's are reused and configured to form a new UI. This book first shows the basics of Spec and how it enables reuse of UIs. It then treats UI layout in detail before moving on to explaining the management of windows. Some of the more advanced widgets are also discussed as well as the dynamic features of Spec. Lastly, the book also contains a chapter with tips and tricks.
- Subjects:
- Computing
- Keywords:
- Textbooks Smalltalk-80 (Computer program language)
- Resource Type:
- e-book
-
e-book
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.
- Subjects:
- Computing
- Keywords:
- Computer programming Operating systems (Computers) Textbooks
- Resource Type:
- e-book
-
e-book
A perfect introduction to the exploding field of Data Science for the curious, first-time student. The author brings his trademark conversational tone to the important pillars of the discipline: exploratory data analysis, choices for structuring data, causality, machine learning principles, and introductory Python programming using open-source Jupyter Notebooks. This engaging read will allow any dedicated learner to build the skills necessary to contribute to the Data Science revolution, regardless of background.
- Subjects:
- Computing
- Keywords:
- Data mining Computer science Artificial intelligence Textbooks
- Resource Type:
- e-book
-
e-book
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.
- Subjects:
- Computing
- Keywords:
- Multimedia systems Squeak Textbooks Smalltalk-80 (Computer program language)
- Resource Type:
- e-book
-
e-book
In this book, you will learn how digital signals are captured, represented, processed, communicated, and stored in computers. The specific topics we will cover include: physical properties of the source information (such as sound or images), devices for information cap- ture (microphones, cameras), digitization, compression, digital signal representation (JPEG, MPEG), digital signal processing (DSP), and network communication. By the end of this book, you should understand the problems and solutions facing signal computing systems development in the areas of user interfaces, information retrieval, data structures and algo- rithms, and communications.
- Subjects:
- Computing
- Keywords:
- Signal processing -- Digital techniques Textbooks
- Resource Type:
- e-book
-
e-book
This text is a free introductory text that introduces MS Access and relational database design. The motivation is to support a second-year course on database systems which, to the student, is either a service course providing an introduction to database concepts, or, as a prerequisite for more advanced study in the field.
- Subjects:
- Computing
- Keywords:
- Microsoft Access Relational databases Textbooks
- Resource Type:
- e-book
-
e-book
I never seemed to find the perfect data-oriented Python book for my course, so I set out to write just such a book. Luckily at a faculty meeting three weeks before I was about to start my new book from scratch over the holiday break, Dr. Atul Prakash showed me the Think Python book which he had used to teach his Python course that semester. It is a well-written Computer Science text with a focus on short, direct explanations and ease of learning.The overall book structure has been changed to get to doing data analysis problems as quickly as possible and have a series of running examples and exercises about data analysis from the very beginning. Chapters 2–10 are similar to the Think Python book, but there have been major changes. Number-oriented examples and exercises have been replaced with data- oriented exercises. Topics are presented in the order needed to build increasingly sophisticated data analysis solutions. Some topics like try and except are pulled forward and presented as part of the chapter on conditionals. Functions are given very light treatment until they are needed to handle program complexity rather than introduced as an early lesson in abstraction. Nearly all user-defined functions have been removed from the example code and exercises outside of Chapter 4. The word “recursion”1 does not appear in the book at all. In chapters 1 and 11–16, all of the material is brand new, focusing on real-world uses and simple examples of Python for data analysis including regular expressions for searching and parsing, automating tasks on your computer, retrieving data across the network, scraping web pages for data, object-oriented programming, using web services, parsing XML and JSON data, creating and using databases using Structured Query Language, and visualizing data. The ultimate goal of all of these changes is a shift from a Computer Science to an Informatics focus is to only include topics into a first technology class that can be useful even if one chooses not to become a professional programmer.
- Subjects:
- Computing
- Keywords:
- Computer programming Programming languages (Electronic computers) Textbooks Python (Computer program language)
- Resource Type:
- e-book
-
e-book
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 only encourage it; it's up to you to practice it. The main programming language used in this book is Racket. Like with all operating systems, however, Racket actually supports a host of programming languages, so you must tell Racket which language you're programming in. This textbook has been used in classes at: Brown University, Cal Poly, Columbus State University, Northeastern University, NYU, Reed College, UC-San Diego, UC-Santa Cruz, University of Rhode Island, University of Utah, Westmont College, Williams College, Worcester Polytechnic Institute.
- Subjects:
- Computing
- Keywords:
- Programming languages (Electronic computers) Textbooks
- Resource Type:
- e-book
-
e-book
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.
- Subjects:
- Computing
- Keywords:
- Computer programming C++ (Computer program language) Programming languages (Electronic computers) Textbooks
- Resource Type:
- e-book
-
e-book
Digital accessibility skills are in high demand, as the world becomes more aware of barriers in digital content that prevent some people from participating in a digital society. These are essential skills for web developers, and essential knowledge for organizations that want to ensure their web content is reaching the broadest audience possible.
- Subjects:
- Computing
- Keywords:
- Web sites -- Design Computers people with disabilities Textbooks Accessible Web sites for people with disabilities
- Resource Type:
- e-book
-
e-book
Most books that use MATLAB are aimed at readers who know how to program. This book is for people who have never programmed before. As a result, the order of presentation is unusual. The book starts with scalar values and works up to vectors and matrices very gradually. This approach is good for beginning programmers, because it is hard to understand composite objects until you understand basic programming semantics. But there are problems: The MATLAB documentation is written in terms of matrices, and so are the error messages. To mitigate this problem, the book explains the necessary vocabulary early and deciphers some of the messages that beginners find confusing. Many of the examples in the first half of the book are non-standard MATLAB. I address this problem in the second half by translating the examples into a more idiomatic style. The book puts a lot of emphasis on functions, in part because they are an important tool for controlling program complexity, and also because they are useful for working with MATLAB tools like fzero and ode45. I assume that readers know calculus, differential equations, and physics, but not linear algebra. I explain the math as I go along, but the descriptions might not be enough for someone who hasn't seen the material before. There are small exercises within each chapter, and a few larger exercises at the end of some chapters.
-
e-book
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.
- Subjects:
- Computing
- Keywords:
- Textbooks Smalltalk-80 (Computer program language)
- Resource Type:
- e-book
-
e-book
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 dividing its time between computations, it needs to decide which ones to work on at any moment. With concurrent computations explained, Chapter 4 introduces con- trolled interactions between them by explaining synchronization, which is control over the threads' relative timing. For example, this chapter explains how, when your email program sends a document to your word processor, the word processor can be constrained to read the document only after the email program writes it. One particularly important form of synchroniza- tion, atomic transactions, is the topic of Chapter 5. Atomic transactions are groups of operations that take place as an indivisible unit; they are most commonly supported by middleware, though they are also playing an increasing role in operating systems. Other than synchronization, the main way that operating systems con- trol the interaction between computations is by controlling their access to memory. Chapter 6 explains how this is achieved using the technique known as virtual memory. That chapter also explains the many other objectives this same technique can serve. Virtual memory serves as the foundation for Chapter 7's topic, which is processes. A process is the fundamental unit of computation for protected access, just as a thread is the fundamental unit of computation for concurrency. A process is a group of threads that share a protection environment; in particular, they share the same access to virtual memory. The next three chapters move outside the limitations of a single com- puter operating in a single session. First, consider the document stored before a trip and available again after it. Chapter 8 explains persistent storage mechanisms, focusing particularly on the file storage that operat- ing systems provide. Second, consider the interaction between your email program and your service provider's email server. Chapter 9 provides an overview of networking, including the services that operating systems make available to programs such as the email client and server. Chapter 10 ex- tends this discussion into the more sophisticated forms of support provided by communication middleware, such as messaging systems, RMI, and web services. Finally, Chapter 11 focuses on security. Because security is a pervasive issue, the preceding ten chapters all provide some information on it as well. Specifically, the final section of each chapter points out ways in which se- curity relates to that chapter's particular topic. However, even with that coverage distributed throughout the book, a chapter specifically on security is needed, primarily to elevate it out of technical particulars and talk about general principles and the human and organizational context surrounding the computer technology. The best way to use these chapters is in consecutive order. However, Chapter 5 can be omitted with only minor harm to Chapters 8 and 10, and Chapter 9 can be omitted if students are already suffciently familiar with networking.
- Subjects:
- Computing
- Keywords:
- Operating systems (Computers) Computer software -- Development Textbooks Middleware
- Resource Type:
- e-book
-
e-book
This textbook teaches introductory data structures.
- Subjects:
- Computing
- Keywords:
- Textbooks Data structures (Computer science) Java (Computer program language)
- Resource Type:
- e-book
-
e-book
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.
- Subjects:
- Computing
- Keywords:
- Data structures (Computer science) Computer algorithms Textbooks
- Resource Type:
- e-book
-
e-book
The documentation is missing or obsolete, and the original developers have departed. Your team has limited understanding of the system, and unit tests are missing for many, if not all, of the components. When you fix a bug in one place, another bug pops up somewhere else in the system. Long rebuild times make any change difficult. All of these are signs of software that is close to the breaking point. Many systems can be upgraded or simply thrown away if they no longer serve their purpose. Legacy software, however, is crucial for operations and needs to be continually available and upgraded. How can you reduce the complexity of a legacy system sufficiently so that it can continue to be used and adapted at acceptable cost? Based on the authors' industrial experiences, this book is a guide on how to reverse engineer legacy systems to understand their problems, and then reengineer those systems to meet new demands. Patterns are used to clarify and explain the process of understanding large code bases, hence transforming them to meet new requirements. The key insight is that the right design and organization of your system is not something that can be evident from the initial requirements alone, but rather as a consequence of understanding how these requirements evolve.
- Subjects:
- Computing
- Keywords:
- Software reengineering Object-oriented programming (Computer science) Software patterns Textbooks
- Resource Type:
- e-book
-
e-book
Este trabajo ha sido desarrollado gracias a la interacción como docente universitario en la enseñanza teórica y práctica de la materia de microprocesadores con diversos grupos de estudiantes por alrededor de 15 años. Es con sus exigencias, cuestionamientos y colaboraciones con sus proyectos prácticos implementados en los cursos dictados, que se ha podido construir una guía comprensiva, que trate de responder de una forma adecuada las múltiples dudas de los estudiantes en su proceso de aprendizaje. La disponibilidad de tiempo en el aula de clase muchas veces no es suficiente para responder las inquietudes de los estudiantes; así que, se espera que con este trabajo se contribuya a proporcionar al lector un cúmulo de información que le ayuden de una manera práctica y escalonada a comprender la base teórica de los microprocesadores de Intel y sus derivados (capítulos 1 al 15), con implementaciones prácticas básicas (capítulo 16). Al final se citan libros de referencia que pueden consultarse para profundizar los temas tratados.
- Subjects:
- Computing
- Keywords:
- United States Microprocessors Textbooks
- Resource Type:
- e-book
-
e-book
This book will teach you how to make graphical computer games in the Python programming language using the Pygame library.This book assumes you know a little bit about Python or programming in general. If you don’t know how to program, you can learn by downloading the free book "Invent Your Own Computer Games with Python" from http://inventwithpython.com. Or you can jump right into this book and mostly pick it up along the way. This book is for the intermediate programmer who has learned what variables and loops are, but now wants to know, "What do actual game programs look like?" There was a long gap after I first learned programming but didn’t really know how to use that skill to make something cool. It’s my hope that the games in this book will give you enough ideas about how programs work to provide a foundation to implement your own games.
- Subjects:
- Computing
- Keywords:
- Computer programming Computer games Python (Computer program language) Textbooks Programming languages (Electronic computers)
- Resource Type:
- e-book
-
e-book
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.
- Subjects:
- Computing
- Keywords:
- Java (Computer program language) Computer programming Programming languages (Electronic computers) Textbooks
- Resource Type:
- e-book
-
e-book
This book is Part II of a two-part set that introduces the Java programming language. The text assumes the student will be using the BlueJ development environment and provides some introductory BlueJ material. Our experience has been that BlueJ is easy to learn and provides a good programming environment for the beginner programmer.
- Subjects:
- Computing
- Keywords:
- Java (Computer program language) Computer programming Programming languages (Electronic computers) Textbooks
- Resource Type:
- e-book
-
e-book
This book is Part I of a two-part set that introduces the Java programming language. The text assumes the student will be using the BlueJ development environment and provides some introductory BlueJ material. Our experience has been that BlueJ is easy to learn and provides a good programming environment for the beginner programmer.
- Subjects:
- Computing
- Keywords:
- Java (Computer program language) Computer programming Programming languages (Electronic computers) Textbooks
- Resource Type:
- e-book
-
e-book
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.
- Subjects:
- Computing
- Keywords:
- System analysis -- Mathematical models Computational complexity Textbooks System theory -- Mathematical models
- Resource Type:
- e-book
-
e-book
Computers are everywhere in our daily lives. Between the desktop, laptop, phone, bank, and vehicle, it is difficult to completely get away from computers. It only makes sense to learn a little about how a computer really works.This text provides an introduction to programming and problem solving using the Fortran 95/2003/2008 programming language. This introduction is geared for non-computer science majors. The primary focus is on an introduction to problem solving and algorithm development. As such, many details of the Fortran 95/2003/2008 language are omitted.
- Subjects:
- Computing
- Keywords:
- Computer programming FORTRAN (Computer program language) Textbooks
- Resource Type:
- e-book
-
e-book
Welcome to the Eighth Edition of Introduction to Programming Using Java, a free, on-line textbook on introductory programming, which uses Java as the language of instruction. This book is directed mainly towards beginning programmers, although it might also be useful for experienced programmers who want to learn something about Java. It is not meant to provide complete coverage of the Java language. The eighth edition requires Java 8 or later, and it uses JavaFX for GUI programming. Version 8.1 is a small update of Version 8.0. This version briefly covers some of the new features in Java 11 and makes it clearer how to use this book with Java 11 and later.
- Subjects:
- Computing
- Keywords:
- Java (Computer program language) Computer programming Programming languages (Electronic computers) Textbooks
- Resource Type:
- e-book
-
e-book
This book was written to introduce students to assembly language programming in MIPS. As with all assemblylanguage programming texts, it covers basic operators and instructions, subprogram calling, loading andstoring memory, program control, and the conversion of the assembly language program into machine code. However this book was not written simply as a book on assembly language programming. The larger purposeof this text is to show how concepts in Higher Level Languages (HLL), such as Java or C/C++, arerepresented in assembly. By showing how program constructs from these HLL map into assembly, theconcepts will be easier to understand and use when the programmer implements programs in languages likeJava or C/C++. Concepts such as references and variables, registers, binary and Boolean operations, subprogram execution, memory types (heap, stack, and static), and array processing are covered to clarify thedecisions made when implementing HLL. Program control is presented using a mapping from structuredprograms in pseudo code to help students understand structured programming, and why it exists. Memoryaccess in assembly is presented to high light the difference between references (pointers) and values, and howthese impact HLL. This book has numerous code examples, and many problems at the end of each chapter, and it is appropriate for a class in Assembly Language, or as a extra resource for a class in Computer Organization.
- Subjects:
- Computing
- Keywords:
- Assembly languages (Electronic computers) Computer programming MIPS (Computer architecture) Textbooks
- Resource Type:
- e-book
-
e-book
Introduction to Computer Graphics is a free, on-line textbook covering the fundamentals of computer graphics and computer graphics programming. This book is meant for use as a textbook in a one-semester course that would typically be taken by undergraduate computer science majors in their third or fourth year of college.
- Subjects:
- Computing
- Keywords:
- Computer graphics Textbooks
- Resource Type:
- e-book
-
e-book
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.
- Subjects:
- Computing
- Keywords:
- Autonomous robots Robots -- Programming Textbooks
- Resource Type:
- e-book
-
e-book
Este libro es una introducción al area de la Inteligencia Artificial y presenta algunas de las aplicaciones que puede tener en la vida real en diversos campos de aplicación, El libro esta compuesto de ocho capítulos los cuales abarcan los antededentes, algunos conceptos importantes para la resolución de problemas como es la representación de conocimiento, el planteamiento de los problemas. Asimismo se menciona la teoría de agentes por un lado y por otro lo que es el aprendizaje computacional. Otra area que se aborta es la computación evolutivo y los algoritmos bioinspirados para la resolución de problemas, dandole enfasis a los problemas de optimizacion. Por ultimo se menciona una nueva tendencia en el area de las ciencias computacionales como es el uso de las GPUs para trabajar de una manera mas rapida al realizar el procesamiento en paralelo.
- Subjects:
- Computing
- Keywords:
- Artificial intelligence Textbooks
- Resource Type:
- e-book
-
e-book
"Information Systems for Business and Beyond introduces the concept of information systems, their use in business, and the larger impact they are having on our world."--BCcampus website.
- Subjects:
- Computing
- Keywords:
- Information resources management Textbooks
- Resource Type:
- e-book
-
e-book
"Students need to understand systems and the systems concept, and they need to understand the role of ICT in enabling systems. Students will learn the characteristics of good systems (e.g., intuitive, likable, error-resistant, fast, flexible, and the like). Knowing the characteristics of good systems will permit students to demand well designed systems and to suggest how existing systems should be changed. Students need to understand the affordances, directions, and limits of hardware, software, and networks in both personal and organizational dimensions. They also need to appreciate that, as technical capabilities change and new ones arise, more opportunities to apply ICT for efficiency, effectiveness, and innovation are afforded. They need to understand the process for developing and implementing new or improved systems and the activities of IS professionals in this process."--BCcampus website.
- Subjects:
- Computing
- Keywords:
- Information technology Textbooks
- Resource Type:
- e-book
-
e-book
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 that interest students.
- Subjects:
- Computing
- Keywords:
- Information resources management Management information systems Information technology Textbooks
- Resource Type:
- e-book
-
e-book
Welcome to Information Systems for Business and Beyond. In this book, you will be introduced to the concept of information systems, their use in business, and the larger impact they are having on our world. 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. Learning objectives can be found at the beginning of each chapter. Of course, all chapters are recommended for use in an introductory information systems course. However, for courses on a shorter calendar or courses using additional textbooks, a review of the learning objectives will help determine which chapters can be omitted. At the end of each chapter, there is a set of study questions and exercises (except for chapter 1, which only offers study questions). The study questions can be assigned to help focus students' reading on the learning objectives. The exercises are meant to be a more in-depth, experiential way for students to learn chapter topics. It is recommended that you review any exercise before assigning it, adding any detail needed (such as length, due date) to complete the assignment.
- Subjects:
- Industrial and Systems Engineering and Computing
- Keywords:
- Business information services Management information systems Textbooks
- Resource Type:
- e-book
-
e-book
Most computer users have an incorrect, but useful, cognitive metaphor for computers in which the user says (or types or clicks) something and a mystical, almost intelligent or magical, behavior happens. It is not a stretch to describe computer users as believing computers follow the laws of magic, where some magic incantation is entered, and the computer responds with an expected, but magical, behavior. This magic computer does not actually exist. In reality computer are machines, and every action a computer performs reduces to a set of mechanical operations. In fact the first complete definition of a working computer was a mechanical machine designed by Charles Babbage in 1834, and would have run on steam power. Probably the biggest success of Computer Science (CS) in the 20th century was the development of abstractions that hide the mechanical nature of computers. The fact that average people use computers without ever considering that they are mechanistic is a triumph of CS designers. This purpose of this monograph is to break the abstract understanding of a computer, and to explain a computer's behavior in completely in mechanistic terms. It will deal specifically with the Central Processing Unit (CPU) of the computer, as this is where the magic happens. All other parts of a computer can be seen as just providing information for the CPU to operate on. This monograph will deal with a specific type of CPU, a one-address CPU, and will explain this CPU using only standard gates, specifically AND, OR, NOT, NAND and XOR gates, and 4 basic Integrated Circuits (ICs), the Decoder, Multiplexer, Adder, and Flip Flop. All of these gates and components can be described as mechanical transformations of input data to output data, and the overall CPU can then be seen as a mechanical device.
- Subjects:
- Computing
- Keywords:
- Computer science Textbooks
- Resource Type:
- e-book
-
e-book
How to Think Like a Computer Scientist: Learning with Pythonis an introduction to programming using Python.
- Subjects:
- Computing
- Keywords:
- Computer programming Programming languages (Electronic computers) Textbooks Python (Computer program language)
- Resource Type:
- e-book
-
e-book
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.”
- Subjects:
- Computing
- Keywords:
- Computer programming C++ (Computer program language) Programming languages (Electronic computers) Textbooks
- Resource Type:
- e-book
-
e-book
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.”
- Subjects:
- Computing
- Keywords:
- Computer programming Programming languages (Electronic computers) C (Computer program language) Textbooks
- Resource Type:
- e-book
-
e-book
The purpose of this book is to teach new programmers and scientists about the basics of High Performance Computing. Too many parallel and high performance computing books focus on the architecture, theory and computer science surrounding HPC. This book speaks to the practicing chemistry student, physicist, or biologist who need to write and run their programs as part of their research.
- Subjects:
- Computing
- Keywords:
- High performance computing Textbooks
- Resource Type:
- e-book
-
e-book
This textbook -- written by a group of select experts with a focus on different aspects of the design process, from creation to production -- addresses the many steps of creating and then producing physical, printed, or other imaged products that people interact with on a daily basis. It covers the concept that, while most modern graphic design is created on computers using design software, the ideas and concepts don't stay on the computer. The ideas need to be completed in the computer software, then progress to an imaging (traditionally referred to as printing) process. Keywords are highlighted throughout and summarized in a Glossary at the end of the book, and each chapter includes exercises and suggested readings.
- Subjects:
- Interactive and Digital Media and Computing
- Keywords:
- Graphic arts Textbooks
- Resource Type:
- e-book