We argue that for computing majors, it is better to use a 'why' approa
ch to teaching programming than a 'how' approach; this involves (among
other things) teaching structured programming before progressing to h
igher-level styles such as object-oriented programming. We also argue
that, once it has been decided to teach structured programming, Java i
s a reasonable language to choose for doing so.