Friday, March 25, 2011

Paper Reading #17: A code reuse interface for non-programmer middle school students

Title:
A code reuse interface for non-programmer middle school students

Comments:
Cindy Skach
Luke Roberts

Reference:
Gross, P., Herstand, M., Hodges, J., Kelleher, C.  A code reuse interface for non-programmer middle school students.  IUI '10.  ACM New York, NY. http://delivery.acm.org/10.1145/1730000/1720001/p219-gross.pdf?key1=1720001&key2=3067331031&coll=DL&dl=ACM&ip=165.91.15.179&CFID=15500876&CFTOKEN=20687613

Summary:
This system is an interface specifically focused on middle school students.  It looks to allow them to reuse code without programming experience.  One of the motivations behind this work was to encourage math and science in earlier years (especially among girls).

The interface is set up in three parts:

1. Record the execution of the program containing the functionality of interest.
2. Identify the beginning and ending of the functionality of interest.
3. Abstract the code responsible for the functionality by describing the roles that each character in the functionality plays.


The interface name was Looking Glass which was similar to a flash animation.  The user could create, manipulate, and animate 3-D objects.  In order to capture the code for reuse, the interface allows the user to click a 'record' button in order to capture an object's movement during animation run-time.  The user can specify and also narrow this time.  Once the appropriate portion of the code is captured, a new program is created and the action is associated with a new object of the new program.

There was a user test of 47 sixth through eighth graders attending the Exxon Mobil Bernard Harris Summer Science Camp which was for students with potential but at some risk of not being able to use that potential.  The study took four two-hour sessions to see if students could successfully integrate copied code into a new program.  It was found that 46 of the 47 students successfully did so.  77% of the students' code was longer than 5 lines, showing that there was a fairly high level of functionality in their code, i.e. it was not trivial.  The level of integration and complexity varied.  The authors concluded that this could very well be beneficial in order to grow interest in new programmers in an easily explainable manner.

Future work includes customization and modification of the script used by the users.


Discussion:
This is an interesting idea to get people more comfortable about programming.  When I took my first CS class, it was not very hands on, it was abstract, and the teacher didn't know what he was doing.  Something as simple as this seems to allow for a much more friendly and comfortable environment.  I would be an interesting intro class for a middle school class as it is atypical for middle school students to be programming.

It didn't seem like their findings were very conclusive simply because of the special students who participated in the study.  The researchers commented on this, but that still doesn't validate the findings.

Future work also could include a study of a wider range of students and from that tweak the interface to allow for easier understandability.

4 comments:

  1. We didn't have any programming classes at my high school, so I really like this idea. I think even a teacher with little to no programming experience could present this to middle school students as a 1-week exercise or something just to expose them to the idea of programming.

    ReplyDelete
  2. I think this is a very interesting idea since the first programming course I took was in my second semester in college (I know shame on me!). This type of class would have helped me a lot for two reasons: doing better in college, and being more interested in my major.

    ReplyDelete
  3. I second that, I wish I had started programming at a much younger age. When you get to college, that increases your learning curve.

    ReplyDelete
  4. I took programming in high school for two years, and although it was in Java, it made learning every other programming language so much easier. I learned how to think like a programmer, which I believe is incredibly important, and maybe most important. Thus, I fully support this system.

    ReplyDelete