A philosophy and example of CS-1 programming projects | Synapse