Great Ideas in Computer Science, second edition


Book Description

In Great Ideas in Computer Science: A Gentle Introduction, Alan Biermann presents the "great ideas" of computer science that together comprise the heart of the field. He condenses a great deal of complex material into a manageable, accessible form. His treatment of programming, for example, presents only a few features of Pascal and restricts all programs to those constructions. Yet most of the important lessons in programming can be taught within these limitations. The student's knowledge of programming then provides the basis for understanding ideas in compilation, operating systems, complexity theory, noncomputability, and other topics. Whenever possible, the author uses common words instead of the specialized vocabulary that might confuse readers. Readers of the book will learn to write a variety of programs in Pascal, design switching circuits, study a variety of Von Neumann and parallel architectures, hand simulate a computer, examine the mechanisms of an operating system, classify various computations as tractable or intractable, learn about noncomputability, and explore many of the important issues in artificial intelligence. This second edition has new chapters on simulation, operating systems, and networks. In addition, the author has upgraded many of the original chapters based on student and instructor comments, with a view toward greater simplicity and readability.




Invitation to Computer Science


Book Description

This new edition of Invitation to Computer Science follows the breadth-first guidelines recommended by CC2001 to teach computer science topics from the ground up. The authors begin by showing that computer science is the study of algorithms, the central theme of the book, then move up the next five levels of the hierarchy: hardware, virtual machine, software, applications, and ethics. Utilizing rich pedagogy and a consistently engaging writing style, Schneider and Gersting provide students with a solid grounding in theoretical concepts, as well as important applications of computing and information technology. A laboratory manual and accompanying software is available as an optional bundle with this text.




Principles of Data Mining


Book Description

This book explains the principal techniques of data mining: for classification, generation of association rules and clustering. It is written for readers without a strong background in mathematics or statistics and focuses on detailed examples and explanations of the algorithms given. This will benefit readers of all levels, from those who use data mining via commercial packages, right through to academic researchers. The book aims to help the general reader develop the necessary understanding to use commercial data mining packages, and to enable advanced readers to understand or contribute to future technical advances. Includes exercises and glossary.




Encyclopedia of Computer Science and Technology


Book Description

With breadth and depth of coverage, the Encyclopedia of Computer Science and Technology, Second Edition has a multi-disciplinary scope, drawing together comprehensive coverage of the inter-related aspects of computer science and technology. The topics covered in this encyclopedia include: General and reference Hardware Computer systems organization Networks Software and its engineering Theory of computation Mathematics of computing Information systems Security and privacy Human-centered computing Computing methodologies Applied computing Professional issues Leading figures in the history of computer science The encyclopedia is structured according to the ACM Computing Classification System (CCS), first published in 1988 but subsequently revised in 2012. This classification system is the most comprehensive and is considered the de facto ontological framework for the computing field. The encyclopedia brings together the information and historical context that students, practicing professionals, researchers, and academicians need to have a strong and solid foundation in all aspects of computer science and technology.




Concrete Mathematics


Book Description

This book introduces the mathematics that supports advanced computer programming and the analysis of algorithms. The primary aim of its well-known authors is to provide a solid and relevant base of mathematical skills - the skills needed to solve complex problems, to evaluate horrendous sums, and to discover subtle patterns in data. It is an indispensable text and reference not only for computer scientists - the authors themselves rely heavily on it! - but for serious users of mathematics in virtually every discipline. Concrete Mathematics is a blending of CONtinuous and disCRETE mathematics. "More concretely," the authors explain, "it is the controlled manipulation of mathematical formulas, using a collection of techniques for solving problems." The subject matter is primarily an expansion of the Mathematical Preliminaries section in Knuth's classic Art of Computer Programming, but the style of presentation is more leisurely, and individual topics are covered more deeply. Several new topics have been added, and the most significant ideas have been traced to their historical roots. The book includes more than 500 exercises, divided into six categories. Complete answers are provided for all exercises, except research problems, making the book particularly valuable for self-study. Major topics include: Sums Recurrences Integer functions Elementary number theory Binomial coefficients Generating functions Discrete probability Asymptotic methods This second edition includes important new material about mechanical summation. In response to the widespread use of the first edition as a reference book, the bibliography and index have also been expanded, and additional nontrivial improvements can be found on almost every page. Readers will appreciate the informal style of Concrete Mathematics. Particularly enjoyable are the marginal graffiti contributed by students who have taken courses based on this material. The authors want to convey not only the importance of the techniques presented, but some of the fun in learning and using them.




Computer Organization and Design RISC-V Edition


Book Description

The new RISC-V Edition of Computer Organization and Design features the RISC-V open source instruction set architecture, the first open source architecture designed to be used in modern computing environments such as cloud computing, mobile devices, and other embedded systems. With the post-PC era now upon us, Computer Organization and Design moves forward to explore this generational change with examples, exercises, and material highlighting the emergence of mobile computing and the Cloud. Updated content featuring tablet computers, Cloud infrastructure, and the x86 (cloud computing) and ARM (mobile computing devices) architectures is included. An online companion Web site provides advanced content for further study, appendices, glossary, references, and recommended reading. - Features RISC-V, the first such architecture designed to be used in modern computing environments, such as cloud computing, mobile devices, and other embedded systems - Includes relevant examples, exercises, and material highlighting the emergence of mobile computing and the cloud




Great Ideas in Computer Science with Java


Book Description

A broad yet deep presentation of the most important concepts in computer science, using the Java programming language for exercises.




Simply Scheme


Book Description

Showing off scheme - Functions - Expressions - Defining your own procedures - Words and sentences - True and false - Variables - Higher-order functions - Lambda - Introduction to recursion - The leap of faith - How recursion works - Common patterns in recursive procedures - Advanced recursion - Example : the functions program - Files - Vectors - Example : a spreadsheet program - Implementing the spreadsheet program - What's next?




Ideas That Created the Future


Book Description

Classic papers by thinkers ranging from from Aristotle and Leibniz to Norbert Wiener and Gordon Moore that chart the evolution of computer science. Ideas That Created the Future collects forty-six classic papers in computer science that map the evolution of the field. It covers all aspects of computer science: theory and practice, architectures and algorithms, and logic and software systems, with an emphasis on the period of 1936-1980 but also including important early work. Offering papers by thinkers ranging from Aristotle and Leibniz to Alan Turing and Nobert Wiener, the book documents the discoveries and inventions that created today's digital world. Each paper is accompanied by a brief essay by Harry Lewis, the volume's editor, offering historical and intellectual context.




How to Design Programs, second edition


Book Description

A completely revised edition, offering new design recipes for interactive programs and support for images as plain values, testing, event-driven programming, and even distributed programming. This introduction to programming places computer science at the core of a liberal arts education. Unlike other introductory books, it focuses on the program design process, presenting program design guidelines that show the reader how to analyze a problem statement, how to formulate concise goals, how to make up examples, how to develop an outline of the solution, how to finish the program, and how to test it. Because learning to design programs is about the study of principles and the acquisition of transferable skills, the text does not use an off-the-shelf industrial language but presents a tailor-made teaching language. For the same reason, it offers DrRacket, a programming environment for novices that supports playful, feedback-oriented learning. The environment grows with readers as they master the material in the book until it supports a full-fledged language for the whole spectrum of programming tasks. This second edition has been completely revised. While the book continues to teach a systematic approach to program design, the second edition introduces different design recipes for interactive programs with graphical interfaces and batch programs. It also enriches its design recipes for functions with numerous new hints. Finally, the teaching languages and their IDE now come with support for images as plain values, testing, event-driven programming, and even distributed programming.