Friday, March 6, 2009

0 Behaviors of novice programmers

I always find it interesting to learn about novice programming. Where do their misconceptions lie? What is the best approach for teaching novice programmers? This session "reports on an NSF funded research project investigating the development practices of students in introductory programming courses." The authors use an extension of BlueJ to "capture events associated with program development (from abstract)." Over 55,000 compilation events from over 110 students. The data is collected through ClockIt - a web-based interface used to view the data (programming behavior of students) in the form of charts, graphs and tables. With ClockIt the instructor (or TA) can view statistics per student, such as the number of compiles, types of errors and how long they work on the project.

Authors: James B. Fenwick Jr., Cindy Norris, Frank Barry, Josh Rountree, Cole Spicer and Scott Cheek (Appalachian State University).

Frequency of compile errors
  • 6 errors were 60% of all errors (similar to other research ie. Judad)
  • missing semicolon (#3)
  • unknown variable (#1)
  • Bracket expected (#4)
  • Illegal start of expression (?)
Time between compilations - 10 seconds (about 31%)

The results of this study almost replicate Judad's study (2005).

Macro Behavior Views (quantitative evidence how programming behavior vs success)
  • Can we track the success of the student based upon when they started on the assignment? (start date vs. success/grade)
  • Incremental work vs. success/grade - if students work on the project incremental, then they will get a better grade.
  • Amount of time vs grade - students that spend more time on the assignment do much better; but students who do poor actually commit a lot of time to the assignment.
  • Can we measure the effort? Event density vs. Grade - There are students that are not succeeding that are really trying - A average and F average have similar event density. B-average students have higher event density than all others.
  • What makes a student succeed?
Gathering quantitative evidence of novice programmer behavior; confirms Judad's results; affirms anecdotal advice.

They are looking for more people to use the data loggers ....

0 comments:

Post a Comment

Note: Only a member of this blog may post a comment.