Developing Algorithms (Lesson)

These activities build upon your experience with computational thinking in the Finding Patterns section of the course by emphasizing the development of algorithms. If you were unable to finish the algorithm that is fine, it is more important that you see the process and what is possible when thinking computationally. You will find over time it becomes easier and more natural and there is a community of educators in this course and across the web who are working to apply computational thinking to their curriculum. Feel free to ask your questions in the community and continue to learn.


This puzzle, more commonly known as the Towers of Hanoi, is an example of an algorithm that was popular long before a computer was available to run it. While it is a fun puzzle, it is famous as an example of recursion as well as the importance of efficiency in an algorithm. As the number of disks increases linearly, the number of steps increase exponentially. Many algorithms that we use today online and in business transactions must be able to handle billions of users in seconds and computer scientists are always looking for ways to improve the quality of their algorithms by reducing the complexity.


Artificial intelligence, is it possible? Could you carry on a conversation with a computer and not even be aware of it? How much information does one need in order to masquerade as someone else when acting in a play? The algorithm used in this activity was selected because it is fairly straightforward logic, computer scientists are training their algorithms to develop layers of connections and networks much like our own brain does when learning something new. These algorithms are often trained for a specific purpose like identifying an object or parsing a spoken command. The test that Alan Turing established for intelligence is yet to be passed by an algorithm but is it inevitable or impossible?


Technology and the Internet have made it possible to access vast amounts of information. Finding answers to questions can take seconds instead of hours and complex mathematical equations can be solved by simply typing it into a calculator. While some have banned technology from their classrooms, there is another option. Students can be creators of their own tools for the classroom and in this activity, you have the opportunity to develop algorithms for a calculator. It is one thing to use a calculator, but developing the algorithms causes one to better comprehend the underlying patterns in math. When students can articulate and think through the steps of a mathematical process they have gained an understanding that will last long after they forget the equation and can be applied to new problems.

Bouncing Ball

The laboratory is often where a scientist goes to test out their hypothesis through experimentation. Some research is difficult if not impossible in the traditional laboratory because the objects are too small like subatomic particles, require an environment that is not fit for Earth like a black hole in space, or are too extreme like stress testing an airplane. For decades scientists and engineers have collaborated to develop models and simulations to test out ideas and prototype. In this activity you simulated the bouncing of a ball, or in this case turtle and refined it to become more and more realistic. No simulation is perfect but as the algorithms they are powered by improve, it is possible to make better predictions for complex phenomena like Global Warming. The cost of technology and the availability of simulation software and programming languages have made it possible to conduct scientific research from anywhere.

In the first section, you reflected on areas of your curriculum where you could see the opportunity to apply algorithms. Before you go on to the final project, are there any new topics that you could see students learning more through the application of computational thinking and the development of algorithms? Share your ideas and topics in the course community.