In Intermediate Python, students are designing their own 2D array projects.

We have explored three major topics in Intermediate Python this year: object-oriented programming, recursion, and 2D arrays. In this block, students have just completed a graphical 2D array project of their own design, in which they were able to further explore these fundamental ideas of computer science. Several students coded up Conway's "Game of Life":



Others wrote code to display one-dimensional cellular automata, systematically studied by Stephen Wolfram in his book "A New Kind of Science":

We also explored several recursive 2D array algorithms as a class, including 2D array "flood fill," which is used in paint programs to fill in connected white areas of the screen:



We looked at several different ways to traverse a 2D array to solve a maze, in particular, "depth-first search," which makes recursive calls to explore as far as possible in a given direction before backtracking.  


Later in the block we will shift gears and work with Python dictionaries. We will use them to solve interesting questions such as "What word in the English language has the greatest number of anagrams which are also words?" Stay tuned for the answer!

--Steve Gregg