Teaching is a science and art!
|Class Format:After trying several different presentation styles for beginning courses, I settled on the following procedures which I find to work well. This method of presentation has been used in classes ranging from 45 minutes to 90 minutes in duration (both face-to-face and distance learning), and works equally well in all formats.|
|Lessons:||Classes start with the "Lesson" - discussion of concepts, sample programs, activities, - whatever the lesson entails. When the physical environment allows, lessons are taught with students not sitting at a computer. I find this separation of student and computer during discussions to be most beneficial. When seated at a computer during a lesson, beginning students can be over confident and eager to begin programming, often missing many of the nuances of the lesson.|
|Lab Work:||Following the lesson, students work at a computer on the concepts presented. Several small programming assignments are used to illustrate the concepts of the lesson and expose students to different problem solving situations. These smaller assignments prove very beneficial in establishing a student's understanding and application of the language and the programming process. The more programming situations they encounter, the better able students are to analyze new situations.|
|Checking Completed Work:||While the concept of using many smaller programming assignments is beneficial, it can also be a bookkeeping nightmare. The following "grading" process works well for me. Students submit hard copies of every program. As programs are finished, students can submit their hardcopies while I continue to circulate the lab room answering questions. The hardcopies of the daily smaller programming assignments are checked for correctness and submission credit, but are not numerically graded. Students receive a quiz grade per unit (or per section in longer units) based upon the number of daily programs submitted correctly. I maintain a check sheet so students can quickly see which assignments they might still owe. Unit projects, on the other hand, are numerically graded and often require that I also "see" the output on the student's screen.|
|Internet Access:||Having long ago developed my own web site to better communicate with my students, I was even more interested in the "web site" concept when my high school computers gained internet access. Not only could my students now access materials from home, but these materials could also be used in the classroom. My web-based lessons for computer programming took on new meaning. Using a projection device, I often project the web pages onto a whiteboard during a lesson and add additional notes or examples around the projected image (oh, if I only had access to a SmartBoard). When students begin working at their computers, they can open the web pages to use as reference. This greatly saves on the amount of "paper" I hand out. In addition, the web pages allow 24-7 access to the materials, which proves especially helpful for students who are absent.|
|Computers:||I have taught programming in a multitude of environments: students working on stand-alone machines; students working in networked computer labs from accounts on a server; students working on laptops in a wire-less environment; and students working independently in an on-line virtual school environment. All environments, while presenting different challenges, are workable. When working in a networked setting, I find that issuing students personalized business cards with their log-in information at the beginning of the course works well. It gives an air of sophistication to the course. Happy programming!|