ebook img

Applied Computational Thinking with Python PDF

420 Pages·2020·4.671 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Applied Computational Thinking with Python

Applied Computational Thinking with Python Design algorithmic solutions for complex and challenging real-world problems Sofía De Jesús Dayrene Martinez BIRMINGHAM—MUMBAI Applied Computational Thinking with Python Copyright © 2020 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author(s), nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. Commissioning Editor: Richa Tripathi Acquisition Editor: Alok Dhuri Senior Editor: Rohit Singh Content Development Editor: Rosal Colaco Technical Editor: Pradeep Sahu Copy Editor: Safis Editing Project Coordinator: Deeksha Thakkar Proofreader: Safis Editing Indexer: Rekha Nair Production Designer: Shankar Kalbhor First published: November 2020 Production reference: 1261120 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-83921-943-6 www.packt.com To my parents, Elia and Miguel, and to my siblings, Rebeca, Graciela, and Miguelito, without whom I wouldn't be who I am or have been able to have the experiences that got me here. I love you all. And to Kristen McKeen, Will Murchison, Teresa Caro, and Joel Socarrás, friends without whom I couldn't survive this life. - Sofía De Jesús To my loving mother, Xiomara Garcia, for the everlasting support and love, and to my siblings, Karlyn and Junior Martinez, for being great role models—you guys inspire me every day. And to Samantha Tolentino Benitez, Noemi Reyes, Rosemary Vergara, Pedro Peralta, Charles Ozuna, and Gabriel Alatorre for being the best listeners when I needed it most. I am grateful for all of you. - Dayrene Martinez Packt.com Subscribe to our online digital library for full access to over 7,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website. Why subscribe? • Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionals • Improve your learning with Skill Plans built especially for you • Get a free eBook or video every month • Fully searchable for easy access to vital information • Copy and paste, print, and bookmark content Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at packt.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details. At www.packt.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks. Contributors About the authors Sofía De Jesús is a computational thinking teacher with a degree from the University of Puerto Rico with a focus on math. She has a master's degree from the University of Dayton. Her experience in education and development spans two decades. She has worked with clients to develop solutions in multiple programming languages. As a teacher, Sofía helps students incorporate the philosophy of computational thinking in courses such as game design, circuits, Python, web design, and robotics. She likes to play video games and spend time with her 11 year-old Yorkie, King Kong. Sofía also enjoys creating materials, small furniture, and jewelry using CNC machines and laser cutters. She enjoys spending as much time in Puerto Rico as work and life permits. I started this book before the world changed in 2020. If it wasn't for my family, my co-author, Dayrene, Gregg Moses, Emily Joyce, Princess Harrison, Brooke Marcy, and so many others who stepped up and held me up, this book would not have been possible. Thank you. Dayrene Martinez is a systems engineer in the defense industry where she develops neural networks embedded in real-time software to aid in decision making for aerospace vehicles. She received a B.S. in electrical engineering from the New Jersey Institute of Technology (NJIT). Dayrene is passionate about STEM education and spends her free time in a voluntary capacity inspiring the next generation of engineers. She is an active supporter and keynote speaker for the non-profit organization Latinas in STEM. She teaches circuitry, robotic design, and software engineering to middle and high school students. I would like to thank my co-author, Sofía, for helping me accomplish one of my lifetime goals—publishing a book. I would also like to thank Colin Pouchet and Scott Terhorst for your encouragement and guidance at work. I would also like to thank Greg Wagner, my boss, for stimulating my interest in machine learning by giving me challenging work, and Jaz Carvajal, without whom I would not even be an engineer. Thank you for being the best and most supportive mentor. About the reviewer Dr. Gowrishankar S. is currently working as associate professor in the department of computer science and engineering at the Dr. Ambedkar Institute of Technology, Bengaluru, Karnataka, India. His current research interests are mainly focused on data science, including its technical aspects, as well as its applications and implications. Specifically, he is interested in the applications of machine learning, data mining, and big data analytics in healthcare. Packt is searching for authors like you If you're interested in becoming an author for Packt, please visit authors. packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insight with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea. Table of Contents Preface Section 1: Introduction to Computational Thinking 1 Fundamentals of Computer Science Technical requirements 4 Computational number theory 17 Introduction to computer science 4 Learning about a system's Learning about computers and the software 18 binary system 4 Operating systems 19 Understanding theoretical Application software 19 computer science 8 Understanding computing 20 Algorithms 8 Architecture 20 Coding theory 10 Programming languages 22 Computational biology 13 Data structures 13 Learning about data types and Information theory 14 structures 24 Automata theory 16 Data types 24 Formal language theory 16 Data structures 25 Symbolic computation 16 Summary 26 Computational geometry 17 2 Elements of Computational Thinking Technical requirements 28 Problem 2 - Mathematical algorithms and generalization 34 Understanding computational thinking 28 Generalizing patterns 34 Problem 1 - Conditions 30 Designing algorithms 35 Decomposing problems 33 Additional problems 38 Recognizing patterns 33 Problem 2 - Children's soccer party 39 Problem 3 - Savings and interest 40 Summary 43 3 Understanding Algorithms and Algorithmic Thinking Technical requirements 46 Designing algorithms 50 Defining algorithms in depth 46 Problem 1 – An office lunch 51 Algorithms should be clear and Problem 2 – A catering company 54 unambiguous 47 Analyzing algorithms 56 Algorithms should have inputs and Algorithm analysis 1 – States and capitals 57 outputs that are well defined 47 Algorithm analysis 2 – Terminating or Algorithms should have finiteness 48 not terminating? 60 Algorithms have to be feasible 50 Algorithms are language-independent 50 Summary 61 4 Understanding Logical Reasoning Technical requirements 64 The and operator 78 Understanding the importance The or operator 79 of logical reasoning 64 The not operator 80 Applying inductive reasoning 65 Identifying logic errors 81 Applying deductive reasoning 69 Summary 85 Using Boolean logic and operators 76

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.