Pointer Error Logging &mdash
Towards an Improved Pedagogy for Teaching Pointers in C++


Intro

Students:

Elizabeth Kearns
email: kearns.23@osu.edu

Sijia (Linda) Wang
email: wang.911@osu.edu

Faculty:

Dr. Paolo Bucci
email: bucci.2@osu.edu


General Project Description

Pointers are known to be a very difficult programming concept for novice programmers to understand and master and a very challenging topic for CS instructors to teach. They are also a well-known cause of many programming bugs for both novice and experienced programmers. Pointers are cognitively difficult to understand in part because of the level of indirection that they introduce. Furthermore, debugging code that uses pointers is made harder by the fact that most pointer errors (except trying to dereference a null pointer) do not cause the program to abort at the point in which the error occurs. Instead the program may die at a later time with an unhelpful message such as Segmentation fault. A difficult as pointers are to understand they are difficult to teach. It is very hard to generate a good explanation of what is going on. In our CS program we have software that tracks and logs pointer errors made by students. We now have a years worth of data. We need to determine if there is a practical use for it. We believe there is. If there was a way for us to garner trends, or find a way to present the information in a useful manner then perhaps we can improve the teaching nd understanding of pointers.

Our goal is to determine whether or not we can improve the method of teaching pointers. Part of this then is to determine whether or not contunied error collection is necessary or if the problem canbetter be answered by simply improving the interaction with students.


References

[1] Lahtinen, E., Ala-Mutka, K., and Järvinen, H., "A study of the difficulties of novice programmers", Proceedings of the 10th Annual SIGCSE Conference on innovation and Technology in Computer Science Education (Caparica, Portugal, June 27 - 29, 2005). ITiCSE '05. ACM Press, New York, NY, 14-18.

[2] Bucci, P., Heym, W.D., Hollingsworth, J.E., Long, T.J., and Weide, B.W., "An Infrastructure to Study and Address Students' Difficulties with Pointers", Proceedings of Resolve Workshop 2006, Virginia Tech, Blacksburg, VA, 2006.

[3] Weide, B.W., and Heym, W.D., "Specification and Verification with References", Proceedings OOPSLA Workshop on Specification and Verification of Component-Based Systems, October 2001.

[4] Pike, S.M., Weide, B.W., and Hollingsworth, J.E. "Checkmate: Cornering C++ Dynamic Memory Errors With Checked Pointers", Proceedings of the 31st SIGCSE Technical Symposium on Computer Science Education, ACM Press, 2000, 352-356.

Adcock, B., Bucci, P., Heym, W.D., Hollingsworth, J.E., Long, T., and Weide, B.W., "Which Pointer Errors Do Students Make?", SIGCSE 2007.