This past quarter, I volunteered in Mr. Davidson’s AP Computer Science class at Roosevelt High School during the class period twice a week. The school’s first lunch period immediately followed the class so I often stayed for that time to interact with those students who chose to spend their lunch period in Mr. Davidson’s room. Among those students was a guy who I shall refer to as Dave. I first noticed him on my first day in the classroom while Mr. Davidson was taking a census of everyone’s progress on their current programming project. Dave quickly blurted out that he had already finished it last week, which was then followed by groans from several other students. Soon, it became apparent that Dave was confident in his abilities as a programmer and wanted others to know it. He proved to be an interesting person, which motivated me to interview him.
Dave’s reason for being in the APCS class was pretty shallow. He was there to earn credit for the AP course and taking the class provided a way for him to study for the exam. When asked if there were any other reasons, he said he took the course because he had always been interested in computers. He found them easier to understand and more logical to deal with than people. For him, this was a very comforting notion. I pressed a little further about why he was interested in computers. As it turns out, Dave has a natural curiosity for how things work. When he was younger, he enjoyed taking apart clocks and studying how their gears inter-operated. His focus quickly changed when he was introduced to computers. He likes learning about how computers work and programming provides a good way to understand an important aspect of computing. Next, we delved deeper into Dave’s previous experiences before he entered the course.
With respect to learning Java, Dave’s first experience came from his uncle, who is a Java developer. Because of his curiosity, Dave often asked his uncle questions about computers so one summer a few years ago, his uncle decided to teach him Java. Together, they worked their way through the Building Java Programs text book. By the time Dave entered the APCS course, he already had an advantage over the other students. This certainly explained why he often finished his project early. But his prior experience doesn’t stop there.
Seeing as how he already had a good amount of exposure to computer science and programming, I asked him if his perceptions were changed in any way as a result of taking APCS. The short answer was no. Computer science remained a very interesting topic for him. However, the class did change his social perceptions of the computer science field. Before, he hated collaborating with other people on coding projects, but because of APCS, he came to cope with that fact. This is largely due to Mr. Davidson’s efforts. He recognized that Dave did not work well with others and often forced Dave to maintain some minimal level of interaction with other students. Dave also mentioned that APCS forced him to improve his coding style because now it counted for style points. Next, we talked about Dave’s plans for later on.
In the near future, Dave plans on taking the computer science projects course offered at Roosevelt next year. The class is for students with programming experience, builds on computer science topics already covered in APCS, and allows students to pursue their own projects. But beyond that Dave does not see much opportunity for him to take more computer science courses are Roosevelt because he does not have the room in his schedule for more classes. Further down the line, Dave definitely plans on majoring in computer science when he reaches college. Outside of formal classes, he also has some ideas of other things he could do apply and expand his knowledge.
His main goal will be to do more programming projects. Many of these projects will come from the teachers at Roosevelt. During the school year, he already had success developing a raffle program for the principal to use during special events. Next up on his list is a “Pi trainer” application commissioned by his math teacher. The teacher wants a program to allow students to enter as many digits of Pi as they can remember and then validate the input. And all these projects will undoubtedly involve some kind of graphical user interface.
Among all the topics that Dave has learned so far, user interfaces have been the most interesting. He likes them because they become a visual and beautiful representation of his work. I have also noticed he enjoys doing the interface coding on this own instead of using some visually-oriented tool to help. Part of the reason is because he likes to know every detail about what is going on and the other part is that he does not want to learn these other frameworks.
Finally, I asked him about any advice he might have for someone who wants to teach youths computer science or programming. He told me that his uncle always knew what not to say. In other words, avoid jumping into detailed explanations right away. One should keep the level of discussion as simple as possible so as to avoid making people confused. He also mentioned that starting out by using Eclipse was useful. Eclipse allowed him to quickly view the Java documentation, which helped him learn the language better because he could easily explore the options available to him.
This interview was a great opportunity to understand Dave a little better. My prior experiences showed me that he was an intelligent person, but a little too willing to show off his talents. I sometimes observed him interject himself into conversations Mr. Davidson was having with other students about a design issue to suggest something Dave thought would be better. Mr. Davidson characterized Dave as someone who liked to think about all the possibilities when he designed his projects. Indeed, he sometimes asked me about esoteric features that he could include in his projects. For instance, he considered adding an interface for binary and hexadecimal numbers into his raffle program. When time starts becoming an issue, he’ll probably need to learn how to focus his efforts. But in the meantime, I think that’s indicative of his healthy curiosity. He’s willing to go that extra mile to implement something just because he can instead of settling for the minimum.
Overall, it was a pleasure to work with Dave. My suggestions for working with a student like him are to be patient because of his tendencies to show off and be prepared to answer many questions. Working in the classroom, it was also great to see everyone’s passion for coding. For their final projects, many of them are attempting to create programs that are quite ambitious – things that I wouldn’t try myself if I were at their level. Seeing that, it has rekindled my own spark for coding, which had been dulled by the deluge of school coding projects in the past couple of years. Volunteering was definitely a worthwhile experience.