Structure and Interpretation of Computer Programs
Title | Structure and Interpretation of Computer Programs PDF eBook |
Author | Harold Abelson |
Publisher | MIT Press |
Pages | 642 |
Release | 2022-05-03 |
Genre | Computers |
ISBN | 0262367629 |
A new version of the classic and widely used text adapted for the JavaScript programming language. Since the publication of its first edition in 1984 and its second edition in 1996, Structure and Interpretation of Computer Programs (SICP) has influenced computer science curricula around the world. Widely adopted as a textbook, the book has its origins in a popular entry-level computer science course taught by Harold Abelson and Gerald Jay Sussman at MIT. SICP introduces the reader to central ideas of computation by establishing a series of mental models for computation. Earlier editions used the programming language Scheme in their program examples. This new version of the second edition has been adapted for JavaScript. The first three chapters of SICP cover programming concepts that are common to all modern high-level programming languages. Chapters four and five, which used Scheme to formulate language processors for Scheme, required significant revision. Chapter four offers new material, in particular an introduction to the notion of program parsing. The evaluator and compiler in chapter five introduce a subtle stack discipline to support return statements (a prominent feature of statement-oriented languages) without sacrificing tail recursion. The JavaScript programs included in the book run in any implementation of the language that complies with the ECMAScript 2020 specification, using the JavaScript package sicp provided by the MIT Press website.
How to Design Programs, second edition
Title | How to Design Programs, second edition PDF eBook |
Author | Matthias Felleisen |
Publisher | MIT Press |
Pages | 793 |
Release | 2018-05-25 |
Genre | Computers |
ISBN | 0262344122 |
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.
The Art of Differentiating Computer Programs
Title | The Art of Differentiating Computer Programs PDF eBook |
Author | Uwe Naumann |
Publisher | SIAM |
Pages | 358 |
Release | 2012-01-01 |
Genre | Mathematics |
ISBN | 9781611972078 |
This is the first entry-level book on algorithmic (also known as automatic) differentiation (AD), providing fundamental rules for the generation of first- and higher-order tangent-linear and adjoint code. The author covers the mathematical underpinnings as well as how to apply these observations to real-world numerical simulation programs. Readers will find: examples and exercises, including hints to solutions; the prototype AD tools dco and dcc for use with the examples and exercises; first- and higher-order tangent-linear and adjoint modes for a limited subset of C/C++, provided by the derivative code compiler dcc; a supplementary website containing sources of all software discussed in the book, additional exercises and comments on their solutions (growing over the coming years), links to other sites on AD, and errata.
Computer Programs for Qualitative Data Analysis
Title | Computer Programs for Qualitative Data Analysis PDF eBook |
Author | Eben Weitzman |
Publisher | SAGE |
Pages | 383 |
Release | 1995-02-02 |
Genre | Social Science |
ISBN | 0803955375 |
Written by qualitative researchers for qualitative researchers, and not presuming extensive computer experience, this user-friendly guide takes a critical look at the wide range of software currently available. The book gives detailed reviews of 24 programs in five major categories: text retrievers, textbase managers, code-and-retrieve programs, code-based theory-builders and conceptual network-builders. In addition, the book provides ratings of over 75 features per program. The authors also offer detailed guidance on the operation of each program, helping the reader to ask key questions about the use of the computer - the nature of the project being undertaken, what time-line analyses are planned and what worksheets are re
The Preparation of Programs for an Electronic Digital Computer
Title | The Preparation of Programs for an Electronic Digital Computer PDF eBook |
Author | Maurice Vincent Wilkes |
Publisher | |
Pages | 192 |
Release | 1951 |
Genre | Calculators |
ISBN |
This is often considered the first book on computer programming. It was written for the EDSAC (Electronic Delay Storage Automatic Calculator) computer that began operation in 1949 as the world's first regularly operated stored program computer. The idea of a library of subroutines was developed for the EDSAC, and is described in this book. Maurice Wilkes lead the development of the EDSAC.
Code
Title | Code PDF eBook |
Author | Charles Petzold |
Publisher | Microsoft Press |
Pages | 563 |
Release | 2022-08-02 |
Genre | Computers |
ISBN | 0137909292 |
The classic guide to how computers work, updated with new chapters and interactive graphics "For me, Code was a revelation. It was the first book about programming that spoke to me. It started with a story, and it built up, layer by layer, analogy by analogy, until I understood not just the Code, but the System. Code is a book that is as much about Systems Thinking and abstractions as it is about code and programming. Code teaches us how many unseen layers there are between the computer systems that we as users look at every day and the magical silicon rocks that we infused with lightning and taught to think." - Scott Hanselman, Partner Program Director, Microsoft, and host of Hanselminutes Computers are everywhere, most obviously in our laptops and smartphones, but also our cars, televisions, microwave ovens, alarm clocks, robot vacuum cleaners, and other smart appliances. Have you ever wondered what goes on inside these devices to make our lives easier but occasionally more infuriating? For more than 20 years, readers have delighted in Charles Petzold's illuminating story of the secret inner life of computers, and now he has revised it for this new age of computing. Cleverly illustrated and easy to understand, this is the book that cracks the mystery. You'll discover what flashlights, black cats, seesaws, and the ride of Paul Revere can teach you about computing, and how human ingenuity and our compulsion to communicate have shaped every electronic device we use. This new expanded edition explores more deeply the bit-by-bit and gate-by-gate construction of the heart of every smart device, the central processing unit that combines the simplest of basic operations to perform the most complex of feats. Petzold's companion website, CodeHiddenLanguage.com, uses animated graphics of key circuits in the book to make computers even easier to comprehend. In addition to substantially revised and updated content, new chapters include: Chapter 18: Let's Build a Clock! Chapter 21: The Arithmetic Logic Unit Chapter 22: Registers and Busses Chapter 23: CPU Control Signals Chapter 24: Jumps, Loops, and Calls Chapter 28: The World Brain From the simple ticking of clocks to the worldwide hum of the internet, Code reveals the essence of the digital revolution.
The Secret Life of Programs
Title | The Secret Life of Programs PDF eBook |
Author | Jonathan E. Steinhart |
Publisher | No Starch Press |
Pages | 505 |
Release | 2019-08-06 |
Genre | Computers |
ISBN | 1593279701 |
A primer on the underlying technologies that allow computer programs to work. Covers topics like computer hardware, combinatorial logic, sequential logic, computer architecture, computer anatomy, and Input/Output. Many coders are unfamiliar with the underlying technologies that make their programs run. But why should you care when your code appears to work? Because you want it to run well and not be riddled with hard-to-find bugs. You don't want to be in the news because your code had a security problem. Lots of technical detail is available online but it's not organized or collected into a convenient place. In The Secret Life of Programs, veteran engineer Jonathan E. Steinhart explores--in depth--the foundational concepts that underlie the machine. Subjects like computer hardware, how software behaves on hardware, as well as how people have solved problems using technology over time. You'll learn: How the real world is converted into a form that computers understand, like bits, logic, numbers, text, and colors The fundamental building blocks that make up a computer including logic gates, adders, decoders, registers, and memory Why designing programs to match computer hardware, especially memory, improves performance How programs are converted into machine language that computers understand How software building blocks are combined to create programs like web browsers Clever tricks for making programs more efficient, like loop invariance, strength reduction, and recursive subdivision The fundamentals of computer security and machine intelligence Project design, documentation, scheduling, portability, maintenance, and other practical programming realities. Learn what really happens when your code runs on the machine and you'll learn to craft better, more efficient code.