# Algorithms Unplugged

We've compiled a list of all of our unplugged lessons for you to use in your classroom. Now you can teach the fundamentals of computer science, whether you have computers in your classroom or not!

## Algorithms unplugged

In my last post, I said my next post will be about one of my papers on directed minors. But that paper is taking more time to write than I expected. Meanwhile, here is my review of two algorithms textbooks: Algorithms Unplugged and The Power of Algorithms, to appear in the SIGACT book review column soon.

Algorithms play an integral part in our daily lives. They are everywhere. They help us travel efficiently, retrieve relevant information from huge data sets, secure money transactions, recommend movies, books, videos, predict stock market etc. Algorithms are essentially simple extensions of our daily rational thinking process. It is very tough to think about a daily task that does not benefit from efficient algorithms. Often the algorithms to solve our daily tasks are very simple, yet their impact is tremendous.

Most of the common books on algorithms start with sorting, searching, graph algorithms and conclude with NP-completeness and perhaps some approximation and online algorithms. The breadth of algorithms cannot be covered by a single book. Algorithms Unplugged and The Power of Algorithms take different approach compared to standard Algorithms textbooks. They are aimed at explaining several basics algorithms (written by multiple authors) in an intuitive manner with real-life examples, without compromising the details. This is how algorithms should be taught.

Part III: The third part deals with strategic thinking and planning. Chapter 22 discusses broadcasting algorithms to disseminate information quickly. Chapter 23 presents algorithms to convert numbers into english words. Chapter 24 explains majority algorithms with applications and extensions. Chapter 25 explains how to generate random numbers. Chapter 26 discusses winning strategies for a matchstick game. Chapter 27 discusses algorithms to schedule sports leagues. Chapter 28 characterizes eulerian circuits and presents algorithms to find them. Chapter 29 details how to approximately draw circles on a pixelated screen. Chapter 30 explains Gauss-Seidel iterative method. Chapter 31 presents a dynamic programming algorithm to compute distance between two DNA sequences.

Part IV: The final part is about optimization problems. Chapter 32, 33 and 34 describes shortest path, minimum spanning tree and maximum-flow algorithms, three basic optimization problems. Chapter 35 discusses stable marriage problem and presents an algorithm to find a stable matching in a bipartite graph. Chapter 36 explains an algorithm to find the smallest enclosing cycle of a given set of points. Chapter 37 presents online algorithms for the Ski-Rental and Paging problems. Chapter 38 and 39 discusses the Bin-Packing and the Knapsack problems. Chapter 40 discusses the Traveling Salesman Problem, one of the most important optimization problems that challenged mathematicians and computer scientists for decades. Chapter 41 introduces Simulated Annealing method to solve a basic tiling problem and the Traveling Salesman Problem.

Part I: The first part is divided into three chapters. Chapter 1 gives a historical perspective of algorithms, origin of the word \em algorithm, recreational algorithms and reasoning with computers. Chapter 2 aims at explaining how to design algorithms by introducing the basics of graph theory and two algorithms techniques: the backtracking technique and the greedy technique. Chapter 3 quickly introduces the complexity classes P and NP and the million dollar P vs NP problem.

Overall I found these two books very interesting and well-written. There is a nice balance between informal introductions and formal algorithms. It was a joy for me to read these books and I recommend them to anyone (including beginners) who is curios to learn some of the basic algorithms that we use in our daily lives in a rigorous way. I strongly encourage you to read these two books even if you have already read a bunch of algorithms books.

There is no prerequisite to follow these books, except for a reasonable mathematical maturity and perhaps some familiarity with basic constructs of at least one programming language. They can be used as a self-study text by undergraduate and advanced high-school students. In terms of being used in a course, some of the topics in these books can be used in an undergraduate algorithms course. I would definitely suggest that you get them for yourself or your university/department library.

This lesson calls out ways we use algorithms in our daily lives, specifically making paper airplanes. This lesson also focuses on the bigger picture of computer science and how algorithms play an essential part.

Offline activities, also known as unplugged activities, are tasks that take place away from a computer and model key concepts (e.g. selection, variables, algorithms) in different ways. These activities are great for getting everybody in the mood for some fun digital making.

Tip: Make a link between the unplugged activity and the coding concept or terminology being highlighted. Refer back to the unplugged activity. This will help Ninjas make the connection with what they learnt previously and apply it in the new context.

This resource is apart of an unplugged coding series. In each, a different main concept is focused on. To use this resource, just print the PDF and have your students coding, unplugged today.The main focus of this resource is Algorithms. The purpose is to demonstrate that computer code follows a set of rules. This resource includes the following type of activities and worksheets:

An online resource for teaching Computer Science to students, this chapter focusses on Algorithms. This chapter covers what an algorithm is, and why they are such a fundamental idea in computer science. Find out more about the two most common and important types of algorithms - Searching and Sorting.

Children in Key Stage One can create their first algorithm using this Barefoot Computing unplugged computing activity. The activity encourages computational thinking including: decomposition, logical reasoning and simple debugging. Further challenge is introduced by the need for increasing levels of detail and accuracy, which can lead to the idea of abstraction within programs.

A simple and easily adaptable idea to introduce how algorithms work by allowing pupils to work out algorithms by a guessing game without the use of a computer. The activity is based on function machines that are used in mathematics at primary school but the level of difficulty can be amplified depending on what algorithm is used. It can be adapted to help introduce both simple and complex algorithms (written either in pseudo code or specific programming code) for different abilities.

Nearly all workbooks and mission sheets on the website have been largely rewritten and re-ordered. The additional 5 workbooks, including 6-8 are currently in preparation, but the structure and continuity of the course is finalised and nearing completion and we think is stable and useable. The unplugged programming is now complete and available in Repository 1. Thank you to all of you who have participated in the courses and used the downloads and fed back to us.

Many parents may feel that teaching coding to younger children may be too complex, or may be worried about their screen time. But with these unplugged activities, anyone can learn the concept of coding easily without using a computer at all!

This game teaches children about algorithms, which is a group of instructions written by the programmer to tell the computer what to do. They will also learn the concept of debugging, which is how to fix a problem in a program.

This activity is a "hacked" version of the previous activity. Hacking is another concept used in computer science. It means modifying or altering the system. With a few changes to the "If/Then Backyard Game," we can design another exciting unplugged coding game.

This unplugged activity teaches children two very basic concepts of coding: algorithm and sequence. An algorithm refers to a set of step by step instructions for performing a task. A sequence refers to the order of steps in an algorithm.

Unplugged activities allow children to participate in kinesthetic opportunities that help them relate the concepts they are learning in their own lives. You can learn more about Hour of Code, unplugged activities, and its events taking place near you at HourOfCode.com.

In coding, an algorithm is a set of step-by-step instructions that a computer follows to complete a specific task. Understanding and being able to implement algorithms is a fundamental skill in coding, and is therefore a vital skill for students to learn!

The main goal of this graduate course is to expose students to many common data structures like arrays, linked lists tree structures and hash tables, and to fundamental techniques for algorithm design and analysis. A variety of application contexts will be considered. We will use the Python programming language along with specific frameworks and libraries from the Python ecosystem to implement algorithms and data structures.

An algorithm is a list or series of steps to complete a specific task. Did you know that we use algorithms everyday without even noticing? For example, each day you brush your teeth and follow the same steps:

During this activity you will get the chance to create your own algorithms that will guide players across the hopscotch court. This activity provides you with the opportunity to explore and create algorithms without the use of technology!

Step 5: How many different algorithms can you or your friends & family create to direct you across the hopscotch court? Take turns writing algorithms and following the algorithms inside the code box! 041b061a72