An Active Learning Approach to Teaching the Main Ideas in Computing Explorations in Computing: An Introduction to Computer Science and Python Programming teaches computer science students how to use programming skills to explore fundamental concepts and computational approaches to solving problems. Tbook gives beginning students an introduction to
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.
This book is suitable for use in a university-level first course in computing (CS1), as well as the increasingly popular course known as CS0. It is difficult for many students to master basic concepts in computer science and programming. A large portion of the confusion can be blamed on the complexity of the tools and materials that are traditionally used to teach CS1 and CS2. This textbook was written with a single overarching goal: to present the core concepts of computer science as simply as possible without being simplistic.
This book is written to introduce computer simulations to undergraduate college students, freshmen to seniors, in STEM fields. The book starts with concepts from Basic Mathematics: Geometry, Algebra and Calculus, Properties of Elementary Functions (Polynomials, Exponential, Hyperbolic and Trigonometric Functions) are studied and simple differential equations representing these functions are derived. Numerical approximations of first and second order differential equations are studied in terms of finite differences on uniform grids. Computer solutions are obtained via recursive relations or solutions of simultaneous algebraic equations. Comparisons with the exact solutions (known a priori) allow the calculations of the error due to discretization. After the students build confidence in this approach, more problems where the solutions are not known a priori are tackled with applications in many fields. Next, the book gradually addresses linear differential equations with variable coefficients and nonlinear differential equations, including problems of bifurcation and chaos.Applications in Dynamics, Solid Mechanics, Fluid Mechanics, Heat Transfer, Chemical Reactions, and Combustion are included. Biographies of 50 pioneering mathematicians and scientists who contributed to the materials of the book are briefly sketched, to shed light on the history of these STEM fields.Finally, the main concepts discussed in the book, are summarized to make sure that the students do not miss any of them. Also, references for further readings are given for interested readers.
While the development of Information Technology has been obvious to all, the underpinning computer science has been less apparent. Subrata Dasgupta provides a thought-provoking introduction to the field and its core principles, considering computer science as a science of symbol processing.
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.
Illustrates key computing concepts using examples in the most popular programming languages. This is an essential guide for the hundreds of thousands of students studying Introduction to Computer Science or Introduction to Programming, presenting the basic concepts of computerscience and illlustrating them with examples in C/C++, and Java. More than 285,000 college majors and 11,000 high school Advanced Placement candidates are enrolled in required Computing Science courses. Explains algorithm development and data abstraction. Supplements leading computer science textbooks.
The field of computer science (CS) is currently experiencing a surge in undergraduate degree production and course enrollments, which is straining program resources at many institutions and causing concern among faculty and administrators about how best to respond to the rapidly growing demand. There is also significant interest about what this growth will mean for the future of CS programs, the role of computer science in academic institutions, the field as a whole, and U.S. society more broadly. Assessing and Responding to the Growth of Computer Science Undergraduate Enrollments seeks to provide a better understanding of the current trends in computing enrollments in the context of past trends. It examines drivers of the current enrollment surge, relationships between the surge and current and potential gains in diversity in the field, and the potential impacts of responses to the increased demand for computing in higher education, and it considers the likely effects of those responses on students, faculty, and institutions. This report provides recommendations for what institutions of higher education, government agencies, and the private sector can do to respond to the surge and plan for a strong and sustainable future for the field of CS in general, the health of the institutions of higher education, and the prosperity of the nation.
A first programming course should not be directed towards learning a particular programming language, but rather at learning to program well; the programming language should get out of the way and serve this goal. The simple, powerful Racket language (related to Scheme) allows us to concentrate on the fundamental concepts and techniques of computer programming, without being distracted by complex syntax. As a result, this book can be used at the high school (and perhaps middle school) level, while providing enough advanced concepts not usually found in a first course to challenge a college student. Those who have already done some programming (e.g. in Java, Python, or C++) will enhance their understanding of the fundamentals, un-learn some bad habits, and change the way they think about programming. We take a graphics-early approach: you'll start manipulating and combining graphic images from Chapter 1 and writing event-driven GUI programs from Chapter 6, even before seeing arithmetic. We continue using graphics, GUI and game programming throughout to motivate fundamental concepts. At the same time, we emphasize data types, testing, and a concrete, step-by-step process of problem-solving. After working through this book, you'll be prepared to learn other programming languages and program well in them. Or, if this is the last programming course you ever take, you'll understand many of the issues that affect the programs you use every day. I have been using Picturing Programs with my daughter, and there's no doubt that it's gentler than Htdp. It does exactly what Stephen claims, which is to move gradually from copy-and-change exercises to think-on-your-own exercises within each section. I also think it's nice that the "worked exercises" are clearly labeled as such. There's something psychologically appealing about the fact that you first see an example in the text of the book, and then a similar example is presented as if it were an exercise but they just happen to be giving away the answer. It is practically shouting out "Here's a model of how you go about solving this class of problems, pay close attention ."" Mark Engelberg "1. Matthias & team have done exceptional, highly impressive work with HtDP. The concepts are close to genius. (perhaps yes, genius quality work) They are a MUST for any high school offering serious introductory CS curriculum. 2. Without Dr. Blochs book "Picturing Programs," I would not have successfully implemented these concepts (Dr. Scheme, Racket, Design Recipe etc) into an ordinary High School Classroom. Any high school instructor who struggles to find ways to bring these great HtDP ideas to the typical high schooler, should immediately investigate the Bloch book. Think of it as coating the castor oil with chocolate." Brett Penza