Program Decomposition and Complexity in CS1 | Synapse