I ask lots of questions, starting with day 1. Most of the questions don't have a right or wrong answer: What did the meal cost? How much tip should we leave? What do we sell in our store? Is it a nice day? I think it sets an expectation that they will participate in class.
I try to introduce just one concept at a time. Each concept each just a little bit more complicated that the one before.
I follow the same format for almost all of the programming classes I teach.
I copy everything we do in class to a document. At the end of class I either print it out or post it somewhere. Knowing that the notes will be available frees the students to concentrate on the task at hand rather than taking notes. This also solves the problem of the students copying the program down wrong, either leaving out a statement or copying the punctuation wrong.
I sometimes have the class write a program together. I ask for a volunteer to come up and type in the "Hello World" program. Then I ask for someone to come up and declare the variables. Then someone to get the first piece of data from the user, etc. Usually there are errors or typos, so they get practice debugging. Sometimes I ask each person to pick the next student to come up..
To avoid having one or two students answer all of the questions, I use miniature white boards. You can buy them, but I go to a home improvement store and buy a 4'x8' shower board for about $10. They cut it for me. When I ask a question, I ask everyone to write the answer on the board and hold it up. I can quickly look at each board and say "Don't forget the semicolon." or "Don't forget the parentheses."
(I also ask them to write their name on the board at the start of class, especially at the beginning when I don't know the names yet.)
This web site, and all pages therein, are the sole property and responsibility of Zebra0.com.
It is not endorsed, sponsored or provided by or on behalf of Montgomery College.