I've always implemented the "Ask 3" in my programming class. I allow students to sit where they want (grades 7 and 8) and work with their neighbors (pair programming).
This past year, while my room was being used for state testing, we used the one computer in the class with the SmartBoard. I had two students working at the computer - basically driving. The rest of my students work as a class on a problem/program. Each student had to contribute something, but couldn't contribute twice in a row.
I also had my county CTE Coordinator come in and had my students teach her what programming is about. They enjoyed showing off and explaining their various programs that they completed.