Building Blocks for Theoretical Computer Science

by | Nov 17, 2018 | Computers and Internet | 0 comments

This book teaches two different sorts of things, woven together. It teaches you how to read and write mathematical proofs. It provides a survey of basic mathematical objects, notation, and techniques which will be useful in later computer science courses. These include propositional and predicate logic, sets, functions, relations, modular arithmetic, counting, graphs, and trees. And, finally, it gives a brief introduction to some key topics in theoretical computer science: algorithm analysis and complexity, automata theory, and computability.

Formal mathematics is relevant to computer science in several ways. First, it is used to create theoretical designs for algorithms and prove that they work correctly. This is especially important for methods that are used frequently and/or in applications where we don’t want failures (aircraft design, Pentagon security, ecommerce). Only some people do these designs, but many people use them. The users need to be able to read and understand how the designs work.

Second, the skills you learn in doing formal mathematics correspond closely to those required to design and debug programs. Both require keeping track of what types your variables are. Both use inductive and/or recursive design. And both require careful proofreading skills. So what you learn in this class will also help you succeed in practical programming courses.

Third, when you come to design complex real software, you’ll have to document what you’ve done and how it works. This is hard for many people to do well, but it’s critical for the folks using your software. Learning how to describe mathematical objects clearly will translate into better skills describing computational objects.

Building Blocks for Theoretical Computer Science

by Margaret M. Fleck (PDF, Online reading) – 21 chapters

Building Blocks for Theoretical Computer Science by Margaret M. Fleck

Related Posts

550 Software and Programming Podcasts for Your Listening Pleasure

550 Software and Programming Podcasts for Your Listening Pleasure

If you’re looking to learn more about coding or any softwares in general, whether to pique your curiosity or prepare you for a career change, here are 550 software and programming podcasts for your listening pleasure. It covers all programming languages imaginable, including general softwares and operating systems as well as podcasts from 17 different languages. Take your pick and happy listening!

28 Free Software Development Roadmaps – Best Practices And Tips

28 Free Software Development Roadmaps – Best Practices And Tips

Use this guide to learn how product roadmap software can help you accomplish key business goals, including aligning your product strategy, syncing up your team, and driving alignment across your organization. These 28 free software development roadmaps can be used to ensure your next product roadmap is on track – learn about the best practices, pitfalls to avoid, and as a rough guide to create successful launches.

31 Free Serverless Security Ebooks, Articles and Resources

31 Free Serverless Security Ebooks, Articles and Resources

Serverless computing demands a different mindset but secure serverless apps are at least as secure as their server-based counterparts. According to new research, the top two security concerns of companies implementing or using serverless platforms include compliance and how to handle data security. Below, you’ll find a curated list of awesome serverless security resources such as ebooks, articles, whitepapers, blogs and research papers.