|
|  |
Contributed by participants in the AP CS Summer Institute at Manhattan College in 2004.
- Never touch the student's mouse.
In today's graphics-driven world, the computer mouse has become the ultimate tool for operating a computer. However, as teachers and adults we often fail to see the mouse as a scepter of control. Give a group of students a computer and you will probably find the leaders of the group hovering around the mouse, not the keyboard or the monitor. Even in a normal classroom setting, the mouse plays an understated role between the student and teacher in instilling (or diminishing) confidence. To expedite the completion of a tricky part of a program, a teacher may be tempted to simply ask the student to move aside, take control of the mouse (and the computer), and complete the task. The student not only fails to understand or remember how the task was performed, but may also feel slighted or even denigrated. The student may feel as if he or she was not capable of solving the problem. Would a driving teacher ever take over the wheel while a student drove? Although the computer mouse does not maintain the safety of the student in the chair, it does hold the power that the student, and only the student, should wield. Never take control of the student's mouse!
- Never refer to your class as "You guys."
Most, if not all, of us have faced the problem of trying to increase the enrollment of girls in our computer science classes. I attended a workshop at Carnegie Mellon University that addressed this issue. One of the simplest strategies that I learned is not to refer to the class as "guys." This should not happen in any class, let alone in a class where girls feel that they do not belong in the first place. Would you ever consider addressing the entire class as "girls"? Not a chance! Even if the girls don't seem to care, subconsciously the idea that only guys belong here is conveyed. Ever since that workshop, I address all of my classes as "people" -- a very simple change that shows that I am talking to everyone and that I don't think of all of the students as guys. It takes 21 days to make or break a habit. Make a conscious effort to listen to yourself when you go to say something to a class. It is just as easy to say, "People, we need to get started."
- Lecture as little as possible.
Allow students to program and solve problems on their own rather than lecturing a problem. This will engage more students, and students learn best when they are engaged. As they solve problems on their own, they have ownership of the solution. Although lectures can dispense a lot of content very quickly, students rarely retain the entire lecture. A hands-on experience is a personal experience, which is retained much longer.
- Follow the Golden Rule of Programming.
The lab part of computer science classes is always a challenge. How is one teacher able to answer the questions of 20 students? The lab situation is very much like a bakery¿ the teacher needs to give out numbers and process the students as if in a queue. A suggestion that might help: Have your students ask their neighbors for help before raising a hand. My "Golden Rule of Programming": Make sure you ask your neighbor before you ask me.
- Create "Company Rules."
The teacher of a computer science class must interact with many different programmers and programming styles. Developing "Company Rules" can help bring some measure of uniformity to the work that is submitted (and some measure of sanity to you, the teacher). Company Rules might be created for naming conventions of files, methods, variables, and would certainly be created for how you would like your students to document code.
The motivation for Company Rules is to model the business world, where employees may be required to adjust their personal style for the greater good. In your classroom, the greater good is the ease for you, the teacher, to read/grade programming assignments if there are consistent expectations made of all students.
- Give random quizzes for reading assignments.
If you teach a course that requires the students to read a textbook or other materials, it is often hard to make the students actually read the assignment. I give my students random unannounced reading quizzes. Each quiz consists of one multiple-choice question worth five points. The question is very easy if the reading was done. I found that this is a great incentive for students to read!
- Incorporate eXtreme programming.
Coding is a crucial part of the development life cycle but it is not the only part. The development life cycle includes business requirements gathering, technical requirements specifications, user requirements gathering, technical detailed design, detailed design, construction (coding), component test, assembly test, function test, integration test, performance test, and field test. We are doing an injustice to our students by only exposing them to the construction portion of the development life cycle. The most valuable computer programmers are those that are technically gifted as well as able to translate technical specifications into generic functional terms. These programmers become an integral part of multiple facets of the development life cycle.
- Give multiple-choice questions and free response questions on every test and quiz.
One of the biggest keys to success for AP students on their exams is having a familiarity and high comfort level with the format of the exam they are taking. The AP Computer Science Exam is comprised of two types of questions: multiple choice and free response. Many teachers begin to introduce these types of questions to their students close to exam time when they are beginning to review the course material. A better strategy would be to ensure that students are exposed to these types of questions throughout the school year. By including each type of question on all exams, students will become very comfortable answering questions similar to what will appear on the exams. Teachers will also be able to introduce test-taking strategies for each type of question earlier in the course, allowing students to refine their test-taking skills for each question type.
- Visit your textbook's Web site.
Most textbooks have Web sites designed for the book that may offer many resources. These resources may include online practice tests and quizzes (which can be very helpful for students preparing for tests), test banks, PowerPoint presentations, instructor discussion groups, and hints for teaching. In addition to the publisher's Web sites, many authors provide additional materials on their personal Web sites. Research what's available. Time spent in the beginning could save you time during the school year.
- Join a local AP CS teachers' group.
Meeting with other teachers of AP CS can make your life less stressful. Find a local teachers' group. Usually these groups communicate through email and meet several times during the school year. If you are not a member of an AP CS local teachers' group, start your own! Send an email to the AP CS Electronic Discussion Group indicating your intent to start a local AP CS group, giving the time and place of your first meeting. You may be pleasantly surprised at the response you get!
Registration for Electronic Discussion Groups
Contribute
If you would like to contribute your suggestions for teaching AP CS, please submit your ideas.
|