In my experience people generally teach programming poorly. A paper I wrote about this “Incorporating Gaming in Software Engineering Projects: Case of RMU Monopoly” will be in the next issue of http://www.iiisci.org/journal/sci/Home.asp
Summary – programming should be hands on and students should choose how to work, what to work on, and what tools to use. Instead students memorize how to write classes and learn about something they call objects, but don’t know why. Syntax is treated like witchcraft to make the program work and get an A. Also many professors are just boring and questionably interested in programming themselves. Others are arrogant and unapproachable. A good programming class lets students decide what they want to build. Lectures go over concepts and students then implement them how they see fit. Of course the instructor needs to be there to help them.
Some instructors seem to think students shouldn’t be allowed to look on the Internet for answers. That just crazy. At least 50% of my time at work is spent looking around on Google. Of course students in their first programming class may need a simple program to start with. Next week I’ll talk about how I teach programming.