Instructor's Manual t/a Structure and Interpretation of Computer Programs, second edition


Book Description

This instructor's manual and reader's guide accompanies the secondedition of Structure and Interpretation of Computer Programs,by Harold Abelson and Gerald Jay Sussman with Julie Sussman. This instructor's manual and reader's guide accompanies the second edition of Structure and Interpretation of Computer Programs, by Harold Abelson and Gerald Jay Sussman with Julie Sussman. It contains discussions of exercises and other material in the text as well as supplementary material, additional examples and exercises, and teaching suggestions. An appendix summarizes the Scheme programming language as used in the text, showing at what point in the text each element of Scheme is introduced.




Structure and Interpretation of Computer Programs


Book Description

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.




Guide to Teaching Computer Science


Book Description

This textbook presents both a conceptual framework and detailed implementation guidelines for computer science (CS) teaching. Updated with the latest teaching approaches and trends, and expanded with new learning activities, the content of this new edition is clearly written and structured to be applicable to all levels of CS education and for any teaching organization. Features: provides 110 detailed learning activities; reviews curriculum and cross-curriculum topics in CS; explores the benefits of CS education research; describes strategies for cultivating problem-solving skills, for assessing learning processes, and for dealing with pupils’ misunderstandings; proposes active-learning-based classroom teaching methods, including lab-based teaching; discusses various types of questions that a CS instructor or trainer can use for a range of teaching situations; investigates thoroughly issues of lesson planning and course design; examines the first field teaching experiences gained by CS teachers.




Structure and Interpretation of Classical Mechanics, second edition


Book Description

The new edition of a classic text that concentrates on developing general methods for studying the behavior of classical systems, with extensive use of computation. We now know that there is much more to classical mechanics than previously suspected. Derivations of the equations of motion, the focus of traditional presentations of mechanics, are just the beginning. This innovative textbook, now in its second edition, concentrates on developing general methods for studying the behavior of classical systems, whether or not they have a symbolic solution. It focuses on the phenomenon of motion and makes extensive use of computer simulation in its explorations of the topic. It weaves recent discoveries in nonlinear dynamics throughout the text, rather than presenting them as an afterthought. Explorations of phenomena such as the transition to chaos, nonlinear resonances, and resonance overlap to help the student develop appropriate analytic tools for understanding. The book uses computation to constrain notation, to capture and formalize methods, and for simulation and symbolic analysis. The requirement that the computer be able to interpret any expression provides the student with strict and immediate feedback about whether an expression is correctly formulated. This second edition has been updated throughout, with revisions that reflect insights gained by the authors from using the text every year at MIT. In addition, because of substantial software improvements, this edition provides algebraic proofs of more generality than those in the previous edition; this improvement permeates the new edition.




Introduction to Algorithms, third edition


Book Description

The latest edition of the essential text and professional reference, with substantial new material on such topics as vEB trees, multithreaded algorithms, dynamic programming, and edge-based flow. Some books on algorithms are rigorous but incomplete; others cover masses of material but lack rigor. Introduction to Algorithms uniquely combines rigor and comprehensiveness. The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor. The first edition became a widely used text in universities worldwide as well as the standard reference for professionals. The second edition featured new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming. The third edition has been revised and updated throughout. It includes two completely new chapters, on van Emde Boas trees and multithreaded algorithms, substantial additions to the chapter on recurrence (now called “Divide-and-Conquer”), and an appendix on matrices. It features improved treatment of dynamic programming and greedy algorithms and a new notion of edge-based flow in the material on flow networks. Many exercises and problems have been added for this edition. The international paperback edition is no longer available; the hardcover is available worldwide.




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?




Computer Applications in Instruction


Book Description

Intended for upper elementary and secondary teachers in all subject areas, this guide provides practical advice on determining the appropriate application of computer technology and on the selection of specific, subject-related computer-based instruction units. Under the heading of hardware and software, topics discussed include communicating with a computer, computer size, getting and using user's programs, translators and programming languages, and the elements of a program. The computer is analyzed in terms of its uses as instructor, laboratory, calculator, object of instruction, and instructor's aide. The selection of computer-based instructional units is described from the beginning of the selection process through final decision making. Individual papers then focus on uses of the computer in the following specific areas: art education, business education, instruction for the deaf and hard of hearing, elementary school, language arts, mathematics curriculum and instruction, music education, physical education, secondary science, natural science, and the social sciences. "Keys to Recognizing General Purpose Languages," and some primary sources of computer-based instructional units, are appended. (LMM)




The Coding Manual for Qualitative Researchers


Book Description

The Coding Manual for Qualitative Researchers is unique in providing, in one volume, an in-depth guide to each of the multiple approaches available for coding qualitative data. In total, 29 different approaches to coding are covered, ranging in complexity from beginner to advanced level and covering the full range of types of qualitative data from interview transcripts to field notes. For each approach profiled, Johnny Saldaña discusses the method’s origins in the professional literature, a description of the method, recommendations for practical applications, and a clearly illustrated example.




Functional Differential Geometry


Book Description

An explanation of the mathematics needed as a foundation for a deep understanding of general relativity or quantum field theory. Physics is naturally expressed in mathematical language. Students new to the subject must simultaneously learn an idiomatic mathematical language and the content that is expressed in that language. It is as if they were asked to read Les Misérables while struggling with French grammar. This book offers an innovative way to learn the differential geometry needed as a foundation for a deep understanding of general relativity or quantum field theory as taught at the college level. The approach taken by the authors (and used in their classes at MIT for many years) differs from the conventional one in several ways, including an emphasis on the development of the covariant derivative and an avoidance of the use of traditional index notation for tensors in favor of a semantically richer language of vector fields and differential forms. But the biggest single difference is the authors' integration of computer programming into their explanations. By programming a computer to interpret a formula, the student soon learns whether or not a formula is correct. Students are led to improve their program, and as a result improve their understanding.