Both Online teaching and Socratic pedagogy require excellent preparation, well thought out exercises, courteous and rapid responsiveness to student needs, and a belief that independent learning is the key to high achievement. As a result of importing these principles into his campus based classroom, the Author’s freshman programming novices now create complex software systems even though no exa...