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.
Now updated to include the most recent developments in Web and network technology, this best-selling introduction to computer science provides a breadth-first overview of the full range of topics in this dynamic discipline: algorithms, hardware design, computer organization, system software, language models, programming, compilation, theory of computation, applications, networks, artificial intelligence, and the impact of computers on society. The authors present these topics in the context of a big picture, - six-layer hierarchy of abstractions - starting with the algorithmic foundations of computer science, and working upward from low-level hardware concepts through virtual machine environments, languages, software, and applications programs to the social issues raised by computer technology. Each layer in the hierarchy builds on ideas and concepts presented earlier. An accompanying lab manual provides exploratory lab experiences tied to the text material. The Second Edition features the use of C++ for teaching the basics of programming, with a C++ compiler provided with the accompanying lab manual. This compiler includes a graphics library that students use to create shapes and images as part of a new section in Chapter 7 on "Graphical Programming."
This book introduces the geometry of 3-D vision, that is, the reconstruction of 3-D models of objects from a collection of 2-D images. It details the classic theory of two view geometry and shows that a more proper tool for studying the geometry of multiple views is the so-called rank consideration of the multiple view matrix. It also develops practical reconstruction algorithms and discusses possible extensions of the theory.
Revised and updated with the latest information in the field, the Fifth Edition of best-selling Computer Science Illuminated continues to provide students with an engaging breadth-first overview of computer science principles and provides a solid foundation for those continuing their study in this dynamic and exciting discipline. Authored by two of today's most respected computer science educators, Nell Dale and John Lewis, the text carefully unfolds the many layers of computing from a language-neutral perspective, beginning with the information layer, progressing through the hardware, programming, operating systems, application, and communication layers, and ending with a discussion on the limitations of computing. Separate program language chapters are available as bundle items for instructors who would like to explore a particular programming language with their students. Ideal for introductory computing and computer science courses, the fifth edition's thorough presentation of computing systems provides computer science majors with a solid foundation for further study, and offers non-majors a comprehensive and complete introduction to computing. New Features of the Fifth Edition: - Includes a NEW chapter on computer security (chapter 17) to provide readers with the latest information, including discussions on preventing unauthorized access and guidelines for creating effective passwords, types of malware anti-virus software, problems created by poor programming, protecting your online information including data collection issues with Facebook, Google, etc., and security issues with mobile and portable devices. - A NEW section on cloud computing (chapter 15) offers readers an overview of the latest way in which businesses and users interact with computers and mobile devices. - The section on social networks (moved to chapter 16) has been rewritten to include up-to-date information, including new data on Google+ and Facebook. - The sections covering HTML have been updated to include HTML5. - Includes revised and updated Did You Know callouts in the chapter margins. - The updated Ethical Issues at the end of each chapter have been revised to tie the content to the recently introduced tenth strand recommended by the ACM stressing the importance of computer ethics. Instructor Resources: -Answers to the end of chapter exercises -Answers to the lab exercises -PowerPoint Lecture Outlines -PowerPoint Image Bank -Test Bank Every new copy is packaged with a free access code to the robust Student Companion Website featuring: Animated Flashcards; Relevant Web Links; Crossword Puzzles; Interactive Glossary; Step by step tutorial on web page development; Digital Lab Manual; R. Mark Meyer's labs, Explorations in Computer Science; Additional programming chapters, including Alice, C++, Java, JavaScript, Pascal, Perl, Python, Ruby, SQL, and VB.NET; C++ Language Essentials labs; Java Language Essentials labs; Link to Download Pep/8
Basic Category Theory for Computer Scientists provides a straightforward presentation of the basic constructions and terminology of category theory, including limits, functors, natural transformations, adjoints, and cartesian closed categories. Category theory is a branch of pure mathematics that is becoming an increasingly important tool in theoretical computer science, especially in programming language semantics, domain theory, and concurrency, where it is already a standard language of discourse. Assuming a minimum of mathematical preparation, Basic Category Theory for Computer Scientists provides a straightforward presentation of the basic constructions and terminology of category theory, including limits, functors, natural transformations, adjoints, and cartesian closed categories. Four case studies illustrate applications of category theory to programming language design, semantics, and the solution of recursive domain equations. A brief literature survey offers suggestions for further study in more advanced texts. Contents Tutorial • Applications • Further Reading
Are women really kicking butt in computer science? National statistics show little progress in the participation of women in computing; this in spite of numerous studies, reports and recommendations on the topic. Some might say the reasons for the situation remain a mystery. However, at Carnegie Mellon University we do not believe that the situation is either so mysterious or such an intractable problem. Indeed, women are kicking butt in computer science in some cultures and environments. This book tells the Carnegie Mellon story, a positive story of how one school developed a culture and environment in which both women and men could thrive and be successful in computer science.
Unemployed after high school in the highly robotic society of 2154, Lisse and seven friends resign themselves to a boring existence in their "Designated Area" until the government invites them to play The Game.
Category theory is unmatched in its ability to organize and layer abstractions and to find commonalities between structures of all sorts. No longer the exclusive preserve of pure mathematicians, it is now proving itself to be a powerful tool in science, informatics, and industry. By facilitating communication between communities and building rigorous bridges between disparate worlds, applied category theory has the potential to be a major organizing force. This book offers a self-contained tour of applied category theory. Each chapter follows a single thread motivated by a real-world application and discussed with category-theoretic tools. We see data migration as an adjoint functor, electrical circuits in terms of monoidal categories and operads, and collaborative design via enriched profunctors. All the relevant category theory, from simple to sophisticated, is introduced in an accessible way with many examples and exercises, making this an ideal guide even for those without experience of university-level mathematics.
Judith Gerstings Mathematical Structures for Computer Science has long been acclaimed for its clear presentation of essential concepts and its exceptional range of applications relevant to computer science majors. Now with this new edition, it is the first discrete mathematics textbook revised to meet the proposed new ACM/IEEE standards for the course.
Introduction to Computer Science introduces students to the fundamentals of computer science by connecting the dots between applications they use every day and the underlying technologies that power them. Throughout, students learn valuable technical skills including how to write simple JavaScript programs, format a webpage with HTML and CSS code, reduce the size of a file, and more. Opening chapters of the text provide students with historical background, describe the numbering systems that computers operate with, and explain how computers store and convert data such as images and music. Later chapters explore the anatomy of computer hardware such as CPUs and memory, how computers communicate over networks, and the programming languages that allow us to solve problems using computation. The book concludes with chapters dedicated to security and privacy, the structure and function of operating systems, and the world of e-commerce. Accessible in approach, Introduction to Computer Science is designed to help non-computer science majors learn how technology and computers power the world around them. The text is well suited for introductory courses in computer science.