Exploring Computer Science with Scheme


Book Description

A presentation of the central and basic concepts, techniques, and tools of computer science, with the emphasis on presenting a problem-solving approach and on providing a survey of all of the most important topics covered in degree programmes. Scheme is used throughout as the programming language and the author stresses a functional programming approach to create simple functions so as to obtain the desired programming goal. Such simple functions are easily tested individually, which greatly helps in producing programs that work correctly first time. Throughout, the author aids to writing programs, and makes liberal use of boxes with "Mistakes to Avoid." Programming examples include: * abstracting a problem; * creating pseudo code as an intermediate solution; * top-down and bottom-up design; * building procedural and data abstractions; * writing progams in modules which are easily testable. Numerous exercises help readers test their understanding of the material and develop ideas in greater depth, making this an ideal first course for all students coming to computer science for the first time.




Exploring Computer Systems


Book Description

Bits, bytes, logic, RAM, CPUs, hard drives and SSD drives. Master the geeky acronyms and simplify computer hardware & terminology with ease. Computer hardware with all its technical jargon can be baffling, even for the moderately experienced user. This book is ideal for a computing course, whether in high school, college or first degree. Step-by-step, visual approach to help you quickly decode the jargon Plenty of full color, illustrated screenshots and photographs to help you Presented in an easy and simple to read format. This book looks at Computer fundamentals: logic gates, binary arithmetic, hexadecimal, and number base conversions Data compression and encryption Hardware components: CPUs, RAM, Hard Drives, Portable Drives, video cards memory cards, motherboards, and the BIOS Inside the CPU, CPU architecture, instructions sets, and the fetch execute cycle Data Storage: bits, bytes, kilo bytes, megabytes, giga bytes and tera bytes Computer ports: VGA, HDMI, DVI, USB 2&3, FireWire, RJ45 ethernet, eSATA and more Different types of computer: desktops, laptops, netbooks, tablets, hybrids and supercomputers Operating systems: process management, memory management, file management Computer Software: applications, system software Computer peripherals: laser and inkjet printers Types of computer networks, Network topologies, LANs, WANs, MANs, fibre optics and ethernet WiFi and Cellular internet connections The internet: email, the cloud, the world-wide web, and packet switching IP Addressing, web servers, DNS servers and DHCP servers, TCP/IP model, OSI model and more... Techniques are illustrated step-by-step using full color photography and screen prints throughout, together with concise, easy to follow text from an established expert in the field, provide a comprehensive guide to computer systems.




Stuck in the Shallow End, updated edition


Book Description

Why so few African American and Latino/a students study computer science: updated edition of a book that reveals the dynamics of inequality in American schools. The number of African Americans and Latino/as receiving undergraduate and advanced degrees in computer science is disproportionately low. And relatively few African American and Latino/a high school students receive the kind of institutional encouragement, educational opportunities, and preparation needed for them to choose computer science as a field of study and profession. In Stuck in the Shallow End, Jane Margolis and coauthors look at the daily experiences of students and teachers in three Los Angeles public high schools: an overcrowded urban high school, a math and science magnet school, and a well-funded school in an affluent neighborhood. They find an insidious “virtual segregation” that maintains inequality. The race gap in computer science, Margolis discovers, is one example of the way students of color are denied a wide range of occupational and educational futures. Stuck in the Shallow End is a story of how inequality is reproduced in America—and how students and teachers, given the necessary tools, can change the system. Since the 2008 publication of Stuck in the Shallow End, the book has found an eager audience among teachers, school administrators, and academics. This updated edition offers a new preface detailing the progress in making computer science accessible to all, a new postscript, and discussion questions (coauthored by Jane Margolis and Joanna Goode).




Computer Systems


Book Description

Computer Architecture/Software Engineering




Exploring Computer System Edition 2023


Book Description

Computers are the most complex machines that have ever been created. Very few people really know how they work. This book tells you how they work; no technical knowledge is required. It explains the operation of a simple, focusing on computer hardware and software related. This book shows that computer hardware isn’t so complicated and can be easily understood by anyone. This is a short book, but it must be studied carefully. This means that you will have to read some parts more than once to understand them. Get as far as you can. You will be much more knowledgeable about how computers work when you are done than when you started, even if you are not able to get through the whole text. This is a technical book though it is aimed at a non-technical audience. Though this book takes considerable effort to understand, it is very easy for what it explains. After you have studied this book, it will seem simple if you go back and read it.




The Elements of Computing Systems


Book Description

This title gives students an integrated and rigorous picture of applied computer science, as it comes to play in the construction of a simple yet powerful computer system.




Trust in Computer Systems and the Cloud


Book Description

Learn to analyze and measure risk by exploring the nature of trust and its application to cybersecurity Trust in Computer Systems and the Cloud delivers an insightful and practical new take on what it means to trust in the context of computer and network security and the impact on the emerging field of Confidential Computing. Author Mike Bursell’s experience, ranging from Chief Security Architect at Red Hat to CEO at a Confidential Computing start-up grounds the reader in fundamental concepts of trust and related ideas before discussing the more sophisticated applications of these concepts to various areas in computing. The book demonstrates in the importance of understanding and quantifying risk and draws on the social and computer sciences to explain hardware and software security, complex systems, and open source communities. It takes a detailed look at the impact of Confidential Computing on security, trust and risk and also describes the emerging concept of trust domains, which provide an alternative to standard layered security. Foundational definitions of trust from sociology and other social sciences, how they evolved, and what modern concepts of trust mean to computer professionals A comprehensive examination of the importance of systems, from open-source communities to HSMs, TPMs, and Confidential Computing with TEEs. A thorough exploration of trust domains, including explorations of communities of practice, the centralization of control and policies, and monitoring Perfect for security architects at the CISSP level or higher, Trust in Computer Systems and the Cloud is also an indispensable addition to the libraries of system architects, security system engineers, and master’s students in software architecture and security.




Computer Systems Architecture


Book Description

Computer Systems Architecture provides IT professionals and students with the necessary understanding of computer hardware. It addresses the ongoing issues related to computer hardware and discusses the solutions supplied by the industry. The book describes trends in computing solutions that led to the current available infrastructures, tracing the initial need for computers to recent concepts such as the Internet of Things. It covers computers’ data representation, explains how computer architecture and its underlying meaning changed over the years, and examines the implementations and performance enhancements of the central processing unit (CPU). It then discusses the organization, hierarchy, and performance considerations of computer memory as applied by the operating system and illustrates how cache memory significantly improves performance. The author proceeds to explore the bus system, algorithms for ensuring data integrity, input and output (I/O) components, methods for performing I/O, various aspects relevant to software engineering, and nonvolatile storage devices, such as hard drives and technologies for enhancing performance and reliability. He also describes virtualization and cloud computing and the emergence of software-based systems’ architectures. Accessible to software engineers and developers as well as students in IT disciplines, this book enhances readers’ understanding of the hardware infrastructure used in software engineering projects. It enables readers to better optimize system usage by focusing on the principles used in hardware systems design and the methods for enhancing performance.




Principles of Computer System Design


Book Description

Principles of Computer System Design is the first textbook to take a principles-based approach to the computer system design. It identifies, examines, and illustrates fundamental concepts in computer system design that are common across operating systems, networks, database systems, distributed systems, programming languages, software engineering, security, fault tolerance, and architecture.Through carefully analyzed case studies from each of these disciplines, it demonstrates how to apply these concepts to tackle practical system design problems. To support the focus on design, the text identifies and explains abstractions that have proven successful in practice such as remote procedure call, client/service organization, file systems, data integrity, consistency, and authenticated messages. Most computer systems are built using a handful of such abstractions. The text describes how these abstractions are implemented, demonstrates how they are used in different systems, and prepares the reader to apply them in future designs.The book is recommended for junior and senior undergraduate students in Operating Systems, Distributed Systems, Distributed Operating Systems and/or Computer Systems Design courses; and professional computer systems designers. - Concepts of computer system design guided by fundamental principles - Cross-cutting approach that identifies abstractions common to networking, operating systems, transaction systems, distributed systems, architecture, and software engineering - Case studies that make the abstractions real: naming (DNS and the URL); file systems (the UNIX file system); clients and services (NFS); virtualization (virtual machines); scheduling (disk arms); security (TLS) - Numerous pseudocode fragments that provide concrete examples of abstract concepts - Extensive support. The authors and MIT OpenCourseWare provide on-line, free of charge, open educational resources, including additional chapters, course syllabi, board layouts and slides, lecture videos, and an archive of lecture schedules, class assignments, and design projects




Safety-critical Computer Systems


Book Description

Increasingly microcomputers are being used in applications where their correct operation is vital to ensure the safety of the public and the environment: from anti-lock braking systems in automobiles, to fly-by-wire aircraft, to shut-down systems at nuclear power plants. It is, therefore, vital that engineers be aware of the safety implications of the systems they develop. This book is an introduction to the field of safety-critical computer systems written for any engineer who uses microcomputers within real-time embedded systems. It assumes no prior knowledge of safety, or of any specific computer hardware or programming language. This text is intended for both engineering and computer science students, and for practising engineers within computer related industries. The approach taken is equally suited to engineers who consider computers from a hardware, software or systems viewpoint.