Powerful Idea: Modularity

The Idea of modularity is that of breaking down a complex object into simpler objects. Scientists and engineers use this idea all the all the time when they design machines or computer programs or when they solve complex scientific problems. Adults, when confronted with a difficult problem in everyday life, intuitively break down the problem in their minds into simpler sub problems and then solve those problems in order to come up with a solution to the original problem.

I do not remember actually thinking about this idea as a child but in retrospect I can think of how I encountered it in a simple concrete form at an early age. As a child, I loved doing jigsaw puzzles. I may have started playing with them earlier, but I really became involved with them around 6 or 7, when I became ill and was confined to bed rest for a period of 3 months. My mother who wanted to keep me occupied but didn’t want to have to entertain me the whole time, provided me with jigsaw puzzles and a large table set up by my bed to work on. I’m sure I must have done other activities during this time, but in my mind the primary activity that I engaged in for nearly 3 months was doing jigsaw puzzles. I’m not sure how I started out, but I remember that at the end of that time period I was working on at least 1000 piece puzzles and had become quite a proficient and experienced jigsaw puzzle doer. Not only that, but I experienced great pleasure and feelings of accomplishment from working on and completing a puzzle.

Even now I remember the methods and strategies that I used which I’m sure in some variation all children who become good at this activity employ. Basically, the method that I used was this: First I always sorted the pieces into border and non border pieces and then constructed the border by breaking down different areas of the border according to the picture on the box and iteratively tried to put together a small number of pieces until a match was found and so on until the whole border was constructed. Then, I examined the entire picture and mentally broke it down into some number of smaller areas to work on, such as sky, a house, ocean etc. or whatever the picture elements happened to be. I would start working on one area and begin by visually scanning all the pieces that I had laid on the table and when I had gotten a small number (even maybe just starting with 2) I would iteratively try out each piece with each other piece and try to find a match. I would place those completed pieces in the approximate area of the puzzle where I thought they would go. As I found more pieces which I thought would go with this part of the puzzle, I would repeat the process of checking with the pieces that had already been constructed and those that were still unattached. If pieces didn’t seem to belong in an area, I would put them near another part of the puzzle where I thought they might go. I didn’t necessarily complete a section before going onto the next but worked simultaneously on all the areas, sometimes spending a lot of time on one area and sometimes alternating between areas as the puzzle took shape. As the areas became bigger, I found pieces to connect the areas and in doing so the puzzle eventually became complete.

As I think now about the activity of doing jigsaw puzzles, I realize that when I had become good at it, I was employing several different strategies that embodied powerful ideas . Modularity or the idea of breaking down a complex problem into smaller and simpler sub problems is the one I am focusing on here. In the case of jigsaw puzzles, the problem is fairly simple: the endpoint is already known (completing the picture in the puzzle), so the problem for me as a child became one of breaking down the whole picture into smaller pictures each to be put together and then connecting the different parts. My ability to do puzzles developed over time. I probably started out doing easy puzzles as most children do using a brute force method; trying to fit pieces together either at random or by paying some attention to color and shape but not necessarily in any logical manner. This method works fine when doing small puzzles but when one progresses to more complicated puzzles with more pieces and more complicated pictures, it doesn't produce very good results and causes a lot of frustration. In order to be more successful and be able to do harder puzzles, I had to develop better methods of approaching the problem.

As I went through school and had to deal with more complicated and abstract problems in math and science, I’m sure I had to analyze and break down many problems and that my ability to do so developed to another level, maybe one where it was not always so intuitive which was the best way to break down a problem and where the endpoint was not completely known or understood. Then when I first went to college and majored in Computer Science, I studied modularity in a formal way as it applies to designing computer programs. We learned modular and structured programming as methods for designing complex programs. These are methods for breaking down a complex task that you want to program into smaller and simpler sub tasks. The program then consists of some number of discrete and self-contained modules which when combined execute the overall program. The purpose of this is to create programs that are correct and more easily understood and maintained by others.

The idea of modularity may seem very intuitive and appear to occur everywhere in everyday life. But I would think that when children encounter difficult problems in math and science in school, it is not necessarily obvious to them that or how they can break the problem down into problems that they can solve. Papert talks about this regarding the powerful idea of procedural thinking. He asks why children when confronted with certain situations, such as formal arithmetic, which would benefit from procedural thinking, do they not employ it, even though they already use it in everyday life. He says it is because children don’t reflect on how they think in everyday situations and so they don’t make the connections to what they already know. By creating educational environments for children where they use and are required to reflect on procedural thinking such as the Logo environment, it then becomes part of their intuitive thinking and they are able to use it in other situations when needed. The Logo environment also provides an environment where children naturally learn to modularize their problems in order to accomplish complicated tasks in programming. Providing this and other educational experiences where children naturally modularize their problems and reflect on how they do so, would then hopefully also enable them to do so more intuitively in other domains.