Applying pair programming for advanced Java course: a different ...

4 downloads 26170 Views 405KB Size Report
Computer programming sequence, of three courses. The programming language used in the course is Java. The author used pair programming in the third ...
Applying Pair Programming for Advanced Java Course: a Different Approach Annu Prabhakar University of Cincinnati PO Box 210002, Teachers/Dyer Hall Cincinnati, Ohio 4522 (513) 985-0770

[email protected] ABSTRACT Pair programming is a practice in which two programmers work collaboratively on a computer program, using one computer. They work together in analysis, design, coding and testing of the computer program. Research indicates that this practice result in higher quality code.

3. SELECTION OF PAIRS In industry, pair programming usually involves pairing an experience programmer with a novice programmer [1]. However, the author took a different approach. She paired the students with similar skill level, background and personality. Grades received in the previous classes, the instructor of the previous classes and the author’s interactions of the students from previous courses were the yardstick for the selection of pairs.

The IT program at the University of Cincinnati has a freshmen Computer programming sequence, of three courses. The programming language used in the course is Java. The author used pair programming in the third course of the sequence.

In terms of skill level, the points of considerations were students’ familiarity and comfort level of programming concepts and the sophistication of the programs that they submitted in the previous quarters. Some students’ work stood out from their peers. They displayed an innate ability to grasp the programming concepts. Some other students were not at all comfortable with programming. They many times expressed the trouble they are having in grasping the concepts and even starting a new computer program solution.

In industry, pair programming usually involves pairing an experience programmer with a novice programmer. However, the author took a different approach. She paired the students with similar skill level, background and personality. This poster will summarize the authors’ experience in applying pair programming.

Categories and Subject Descriptors K.3.2 [Computer and Information Science Education]: Computer science education, Curriculum, Information systems education.

In terms of background and personality, the author considered the facts such as prior programming experience, familiarity with another programming language, and status of their enrollment such as freshmen student vs transfer student. The author also considered the interpersonal styles of students such the interactions with the faculty and the students inside and outside the class.

General Terms Human Factors, Languages.

Keywords Pair programming, collaborative programming.

The grades they received from the first and second courses in the sequence and the faculty who taught the previous classes were also factors.

1. INTRODUCTION Pair programming is a practice in which two programmers work collaboratively on a computer program, using one computer. They work together in analysis, design, coding and testing of the computer program. Research indicates that this practice result in higher quality code [2].

So the author paired students who has similar grades, personality, background and same instructor for previous courses in the sequence.

The IT program at the University of Cincinnati has a freshmen Computer programming sequence, of three courses. The programming language used in the course is Java. The author used pair programming in the third course of the sequence.

4. STUDENT EXPERIENCE

2. BACKGROUND

Here are some of the responses from students.

The author taught the first two courses of the sequence in Fall 2010, and winter of 2011. Therefore, she knew the skill level and personality traits of most of the students enrolled in the third course of the sequence in spring 2011. There were 18 students enrolled in the class. Most of the students were not familiar with the pair programming. To introduce the students to the concept, author gave a presentation on pair programming explaining the key points.

“I'm not very good at creating GUIs in programming, but good at algorithms and things. My partner helped me out a lot with GUIs, for he was much better at them and my understanding went way up! We shared our knowledge with each other and became better programmers because of it”.

At the end of the course, students were asked an open-ended question: “Please explain what you like about pair programming with some specific experience you would like to share”.

“We had great time learning from each other. We were able to get a few programming projects done in a snap because we had to brains working together on a project. When one of us knew what to do we let that person take over and when that person ended up in a stump, the other took over and was able to solve the problem with his experience”.

Copyright is held by the author/owner(s). SIGITE'11, October 20–22, 2011, West Point New York, USA. ACM 978-1-4503-0863-2/11/09.

319

“I liked making programs with a partner. If I were stuck and did not know what to do my partner was able to help. In addition, if my partner did not know what to do I was able to help him as well. It also allowed us to make better programs” “I really liked having another person's insight when working on a problem. My pair programming partner was able to find solutions that I would have never thought of”. “It was nice to have a flow of ideas. Also, having someone that watches you and prevents you from making errors is a good thing”. “I like hearing what another person has to say and their ideas and ways of doing things”. “It helped get programs done faster and helped me learn more”. “Makes programming a bit more bearable and somewhat enjoyable”. The students were asked another open-ended question: “describe any difficulty you had with pair programming”. Some of the responses are below. “my partner had no GUI experience but I did, which put most of the work on me”. “Only thing that I found difficult was at times when we were not done with one project we had another one assigned. Just felt rushed at times. But overall was a good experience”.

Figure 1: Survey result - part1

“The only problem I had was outside of class availability. My partner is a commuter and it's hard to find appropriate times to work on projects”.

5. THE AUTHOR’S OBSERVATION The author noticed three main things. One, the submission rate of the projects compared to the previous section was improved. Second, the request for programming help significantly reduced from previous quarters. Third, the quality of the program in terms of completeness and reduced errors was improved. It seems being in a team improved the sense of responsibility of the students.

6. SURVEY RESULTS At the end of the quarter, the students answered a questionnaire on their experience in using pair programming for the course. Figure 1 and 2 shows the responses from the students. About 80 % of the students recommend use of pair programming in other classes. They overwhelmingly approved the partner assignments. They also indicated that they learned from their partner and pair programming helped them turning in their work on time. The survey indicates an overwhelming positive attitude towards pair programming. Figure 2: Survey result – part2

7. REFERENCES [1] A. Cockburn, L. Williams, The Costs and Benefits of Pair Programming, Extreme programming examined Addison-Wesley Longman Publishing Co., Inc. Boston, MA, USA, 2001. [2] L. L. Constantine, Constantine on Peopleware. Englewood Cliffs, NJ: Yourdon Press, 1995.

320