Skip to content

haw230/the-anadromi-project

Repository files navigation

A
The Anadromi Project

license tweet

The Anadromi Project is an innovative approach to computer science education. Armed with Python, this revolutionary open source program focuses on teaching the bright leaders of tomorrow necessary tools for recursive problem solving and algorithmic thinking. These skills are applicable and essential to both the computer science field as well as other disciplines.

Table of Contents

  1. Prerequisites
  2. Stage 1: Hill Climbing
  3. Stage 2: Gaining Speed
  4. Stage 3: At the Top
  5. License
  6. Acknowledgements

Prerequisites

Students should be mostly comfortable the basic concepts of programming:

  • Variables and simple data types
  • Loops
  • Conditional operators
  • Functions

Stage 1: Hill Climbing

This stage will focus on simple but inefficent algorithms that neatly fuse the basics of programming, preparing the student for more advanced concepts. Here is a short introduction to the lesson outline.

Students will start off with a basic implementation of a linear search, a search algorithm that finds the index of a specific element in a list.

This program will use the selection sort algorithm to sort an unordered list.

Another sorting algorithm exercise to practice coding skills.

This rather abstract concept is introduced rather early on in order to demonstrate the efficency of the previously learned algorithms. Time complexity provides a nice segway into recursion and answers the question to why we need these efficent yet terribly complex algorithms.

Stage 2: Gaining Speed

This stage focuses on the transition to more complicated algorithms that introduce recursion. If you are not comfortable with recursive functions, here is a brief introduction with a warm-up coding task.

Binary search is a searching algorithm that works only on ordered lists, though far faster than the previous linear search. The theory behind it is not difficult to understand, but it will introduce the Three Laws of Recursion and feature its application.

Merge sort builds on the recursive foundation binary search introduced previously, sorting a list far faster than selection sort and bubble sort by a large margin.

The most modern of sorting algorithms, quicksort depicts the mastery of recursion and shows readiness to move onto dynamic programming.

More on time complexity that will include these three new recursive algorithms.

Stage 3: At the Top

Using everything learned from the previous lessons, the student will implement the Fibonacci sequence. Stage 3 is the final stage.

Solve Fibonacci with brute force.

Solve Fibonacci recursively with a search tree.

Dynamic programming will build on the binary search tree implementation, improving the efficency of the program.

License

The Anadromi Project is released under the terms of the MIT License.

Acknowledgements

About

Computer science education of the future.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published