For50years,wehavebeenteachingprogramming.Inthattime,wehaveseen- mentouschanges.Fromteachinga?rstcourseusinganassemblylanguageorF- tran I to using sophisticated functional and OO programming languages. From computerstouchedonlybyprofessionaloperatorstocomp