Skip to main content
  • Textbook
  • © 2018

Computational Thinking

First Algorithms, Then Code

  • Accessible introduction, suitable for undergraduate and high-school students, and for self-study
  • Assumes basic computing skills only as a prerequisite
  • Authors are highly experienced lecturers

Buy it now

Buying options

eBook USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book USD 54.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access

This is a preview of subscription content, log in via an institution to check for access.

Table of contents (11 chapters)

  1. Front Matter

    Pages i-viii
  2. A Brief Historical Outline

    • Paolo Ferragina, Fabrizio Luccio
    Pages 1-4
  3. A Problem with Which to Begin

    • Paolo Ferragina, Fabrizio Luccio
    Pages 5-10
  4. Algorithms and Coding

    • Paolo Ferragina, Fabrizio Luccio
    Pages 11-23
  5. The Tournament

    • Paolo Ferragina, Fabrizio Luccio
    Pages 25-33
  6. A Financial Problem

    • Paolo Ferragina, Fabrizio Luccio
    Pages 35-47
  7. Secret Messages

    • Paolo Ferragina, Fabrizio Luccio
    Pages 49-66
  8. Putting Things in Order

    • Paolo Ferragina, Fabrizio Luccio
    Pages 67-93
  9. “Easy” and “Difficult” Problems

    • Paolo Ferragina, Fabrizio Luccio
    Pages 95-110
  10. Search Engines

    • Paolo Ferragina, Fabrizio Luccio
    Pages 111-127
  11. Data Compression

    • Paolo Ferragina, Fabrizio Luccio
    Pages 129-148
  12. Recursion

    • Paolo Ferragina, Fabrizio Luccio
    Pages 149-172
  13. Back Matter

    Pages 173-174

About this book

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.

Reviews

“This small volume is a step-by-step introduction to algorithms, their implementation, efficiency and run time. Requiring only basic mathematical knowledge, it aims at teaching how to transform ideas into executable programs, giving several solutions to common tasks, taken from topics of our everyday world.” (Dieter Riebesehl, zbMATH 1402.68003, 2019)

“The book is organized by application or problem area rather than by algorithm type, and covers a good variety of topics in a small space. It leans toward areas that have caught the public imagination, such as Big Data, web search, and cryptography. In each subject area the problem is described first, followed by a text description of algorithms to solve it, and completed with one or more pseudocode listings.” (Allen Stenger, MAA Reviews, January, 26 , 2019)

Authors and Affiliations

  • Dipartimento di Informatica, University of Pisa, Pisa, Italy

    Paolo Ferragina, Fabrizio Luccio

About the authors

Paolo Ferragina is a professor of algorithmics and the director of the PhD program in Computer Science at the University of Pisa. Previous university appointments include Vice Rector of Applied Research and Innovation, President of the IT Center, and Vice Chair of the Department of Computer Science. His research is on designing algorithms and data structures for storing, compressing, mining, and retrieving information from Big Data, in collaboration with companies such as Google, Bloomberg, Yahoo!, and STMicroelectronics. He has received international awards for his research, including the “Best Land Transportation Paper Award" from the IEEE Vehicular Technology Society (1995); the EATCS Doctoral Dissertation Thesis Award (1997); the Philip Morris Award for Science and Technology (1997); the Yahoo! Faculty award (2007-2011); and the Google Faculty Research Award (in 2010, 2012 and 2016). He has held postdoctoral or visiting research positions at the Max-Planck-Institut für Informatik (Saarbrücken), the University of North Texas, the Courant Institute at New York University, AT&T, Yahoo!, Google, and IBM Research. He has been a committee member of the top international conferences in algorithmics and information retrieval, and an invited speaker at conferences such as CPM, SPIRE, ESA/ALGO, and ECIR. He has been a guest editor or area editor for journals such as Theoretical Computer Science, Information Retrieval, Theory of Computing Systems, the Journal of Graph Algorithms and Applications, and the Encyclopedia of Algorithms.

Fabrizio Luccio is an emeritus professor of computer science at the University of Pisa. He received his Dr. Ing. degree in electrical engineering from the Politecnico di Milano in 1962. After industrial experience with Olivetti, he worked at MIT, the University of Southern California, and New York University, researching theoretical and algorithmic aspects of logical network synthesis. He has been at the University of Pisa since 1971, as a lecturer, professor of informatics, department chair, and coordinator of the PhD program. He was also responsible for international relations on development, and he actively supported UNESCO projects for the dissemination of informatics at university level in developing countries. He has been a visiting professor or scientist at the IBM T.J. Watson Research Center, the NTT LSI Laboratories, UCLA, the University of Illinois, the National University of Singapore, the University of Hawaii, and Carleton University in Ottawa. His main research interests are algorithm design in sequential, parallel, and distributed environments, and the relationship between abstract computational models and realistic computers and circuits. He is a Life Fellow of the IEEE.


Bibliographic Information

Buy it now

Buying options

eBook USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book USD 54.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access