Computational Thinking for the Modern Problem Solver


Book Description

Through examples and analogies, Computational Thinking for the Modern Problem Solver introduces computational thinking as part of an introductory computing course and shows how computer science concepts are applicable to other fields. It keeps the material accessible and relevant to noncomputer science majors. With numerous color figures, this classroom-tested book focuses on both foundational computer science concepts and engineering topics. It covers abstraction, algorithms, logic, graph theory, social issues of software, and numeric modeling as well as execution control, problem-solving strategies, testing, and data encoding and organizing. The text also discusses fundamental concepts of programming, including variables and assignment, sequential execution, selection, repetition, control abstraction, data organization, and concurrency. The authors present the algorithms using language-independent notation.




From Computing to Computational Thinking


Book Description

Computational Thinking (CT) involves fundamental concepts and reasoning, distilled from computer science and other computational sciences, which become powerful general mental tools for solving problems, increasing efficiency, reducing complexity, designing procedures, or interacting with humans and machines. An easy-to-understand guidebook, From Computing to Computational Thinking gives you the tools for understanding and using CT. It does not assume experience or knowledge of programming or of a programming language, but explains concepts and methods for CT with clarity and depth. Successful applications in diverse disciplines have shown the power of CT in problem solving. The book uses puzzles, games, and everyday examples as starting points for discussion and for connecting abstract thinking patterns to real-life situations. It provides an interesting and thought-provoking way to gain general knowledge about modern computing and the concepts and thinking processes underlying modern digital technologies.




Report of a Workshop on the Scope and Nature of Computational Thinking


Book Description

Report of a Workshop on the Scope and Nature of Computational Thinking presents a number of perspectives on the definition and applicability of computational thinking. For example, one idea expressed during the workshop is that computational thinking is a fundamental analytical skill that everyone can use to help solve problems, design systems, and understand human behavior, making it useful in a number of fields. Supporters of this viewpoint believe that computational thinking is comparable to the linguistic, mathematical and logical reasoning taught to all children. Various efforts have been made to introduce K-12 students to the most basic and essential computational concepts and college curricula have tried to provide a basis for life-long learning of increasingly new and advanced computational concepts and technologies. At both ends of this spectrum, however, most efforts have not focused on fundamental concepts. The book discusses what some of those fundamental concepts might be. Report of a Workshop on the Scope and Nature of Computational Thinking explores the idea that as the use of computational devices is becoming increasingly widespread, computational thinking skills should be promulgated more broadly. The book is an excellent resource for professionals in a wide range of fields including educators and scientists.




Computational Thinking


Book Description

This book offers a gentle motivation and introduction to computational thinking, in particular to algorithms and how they can be coded to solve significant, topical problems from domains such as finance, cryptography, Web search, and data compression. The book is suitable for undergraduate students in computer science, engineering, and applied mathematics, university students in other fields, high-school students with an interest in STEM subjects, and professionals who want an insight into algorithmic solutions and the related mindset. While the authors assume only basic mathematical knowledge, they uphold the scientific rigor that is indispensable for transforming general ideas into executable algorithms. A supporting website contains examples and Python code for implementing the algorithms in the book.




Teaching Computing


Book Description

Teaching can be intimidating for beginning faculty. Some graduate schools and some computing faculty provide guidance and mentoring, but many do not. Often, a new faculty member is assigned to teach a course, with little guidance, input, or feedback. Teaching Computing: A Practitioner’s Perspective addresses such challenges by providing a solid resource for both new and experienced computing faculty. The book serves as a practical, easy-to-use resource, covering a wide range of topics in a collection of focused down-to-earth chapters. Based on the authors’ extensive teaching experience and his teaching-oriented columns that span 20 years, and informed by computing-education research, the book provides numerous elements that are designed to connect with teaching practitioners, including: A wide range of teaching topics and basic elements of teaching, including tips and techniques Practical tone; the book serves as a down-to-earth practitioners’ guide Short, focused chapters Coherent and convenient organization Mix of general educational perspectives and computing-specific elements Connections between teaching in general and teaching computing Both historical and contemporary perspectives This book presents practical approaches, tips, and techniques that provide a strong starting place for new computing faculty and perspectives for reflection by seasoned faculty wishing to freshen their own teaching.




Computational Thinking Education


Book Description

This This book is open access under a CC BY 4.0 license.This book offers a comprehensive guide, covering every important aspect of computational thinking education. It provides an in-depth discussion of computational thinking, including the notion of perceiving computational thinking practices as ways of mapping models from the abstraction of data and process structures to natural phenomena. Further, it explores how computational thinking education is implemented in different regions, and how computational thinking is being integrated into subject learning in K-12 education. In closing, it discusses computational thinking from the perspective of STEM education, the use of video games to teach computational thinking, and how computational thinking is helping to transform the quality of the workforce in the textile and apparel industry.




Computational Thinking


Book Description

Computational thinking (CT) is a timeless, transferable skill that enables you to think more clearly and logically, as well as a way to solve specific problems. With this book you'll learn to apply computational thinking in the context of software development to give you a head start on the road to becoming an experienced and effective programmer.




Computational Thinking


Book Description

This pocket-sized introduction to computational thinking and problem-solving traces its genealogy centuries before the digital computer. A few decades into the digital era, scientists discovered that thinking in terms of computation made possible an entirely new way of organizing scientific investigation. Eventually, every field had a computational branch: computational physics, computational biology, computational sociology. More recently, “computational thinking” has become part of the K–12 curriculum. But what is computational thinking? This volume in the MIT Press Essential Knowledge series offers an accessible overview—tracing a genealogy that begins centuries before digital computers and portraying computational thinking as the pioneers of computing have described it. The authors explain that computational thinking (CT) is not a set of concepts for programming; it is a way of thinking that is honed through practice: the mental skills for designing computations to do jobs for us, and for explaining and interpreting the world as a complex of information processes. Mathematically trained experts (known as “computers”) who performed complex calculations as teams engaged in CT long before electronic computers. In each chapter, the author identify different dimensions of today's highly developed CT: • Computational Methods • Computing Machines • Computing Education • Software Engineering • Computational Science • Design Along the way, they debunk inflated claims for CT and computation while making clear the power of CT in all its complexity and multiplicity.




Introduction to Programming and Problem-Solving Using Scala


Book Description

Praise for the first edition: "The well-written, comprehensive book...[is] aiming to become a de facto reference for the language and its features and capabilities. The pace is appropriate for beginners; programming concepts are introduced progressively through a range of examples and then used as tools for building applications in various domains, including sophisticated data structures and algorithms...Highly recommended. Students of all levels, faculty, and professionals/practitioners.—D. Papamichail, University of Miami in CHOICE Magazine Mark Lewis’ Introduction to the Art of Programming Using Scala was the first textbook to use Scala for introductory CS courses. Fully revised and expanded, the new edition of this popular text has been divided into two books. Introduction to Programming and Problem-Solving Using Scala is designed to be used in first semester college classrooms to teach students beginning programming with Scala. The book focuses on the key topics students need to know in an introductory course, while also highlighting the features that make Scala a great programming language to learn. The book is filled with end-of-chapter projects and exercises, and the authors have also posted a number of different supplements on the book website. Video lectures for each chapter in the book are also available on YouTube. The videos show construction of code from the ground up and this type of "live coding" is invaluable for learning to program, as it allows students into the mind of a more experienced programmer, where they can see the thought processes associated with the development of the code. About the Authors Mark Lewis is a Professor at Trinity University. He teaches a number of different courses, spanning from first semester introductory courses to advanced seminars. His research interests included simulations and modeling, programming languages, and numerical modeling of rings around planets with nearby moons. Lisa Lacher is an Assistant Professor at the University of Houston, Clear Lake with over 25 years of professional software development experience. She teaches a number of different courses spanning from first semester introductory courses to graduate level courses. Her research interests include Computer Science Education, Agile Software Development, Human Computer Interaction and Usability Engineering, as well as Measurement and Empirical Software Engineering.




Street-Fighting Mathematics


Book Description

An antidote to mathematical rigor mortis, teaching how to guess answers without needing a proof or an exact calculation. In problem solving, as in street fighting, rules are for fools: do whatever works—don't just stand there! Yet we often fear an unjustified leap even though it may land us on a correct result. Traditional mathematics teaching is largely about solving exactly stated problems exactly, yet life often hands us partly defined problems needing only moderately accurate solutions. This engaging book is an antidote to the rigor mortis brought on by too much mathematical rigor, teaching us how to guess answers without needing a proof or an exact calculation. In Street-Fighting Mathematics, Sanjoy Mahajan builds, sharpens, and demonstrates tools for educated guessing and down-and-dirty, opportunistic problem solving across diverse fields of knowledge—from mathematics to management. Mahajan describes six tools: dimensional analysis, easy cases, lumping, picture proofs, successive approximation, and reasoning by analogy. Illustrating each tool with numerous examples, he carefully separates the tool—the general principle—from the particular application so that the reader can most easily grasp the tool itself to use on problems of particular interest. Street-Fighting Mathematics grew out of a short course taught by the author at MIT for students ranging from first-year undergraduates to graduate students ready for careers in physics, mathematics, management, electrical engineering, computer science, and biology. They benefited from an approach that avoided rigor and taught them how to use mathematics to solve real problems. Street-Fighting Mathematics will appear in print and online under a Creative Commons Noncommercial Share Alike license.