Research Areas
End-user programming, software engineering, visual programming languages
Research Description
My research is aimed at helping people to use human expertise to combine computational resources into new software. Achieving this requires helping people to learn needed expertise, to acquire code and other resources, and to find their way around within that code. Our research group’s main target populations are end-user programmers and novice programmers.
As much as possible, our research group tests ideas in multiple programming contexts, to explore how well results generalize. That way — again, as much as possible — our results are not bound to any particular programming tool or environment. We are willing to consider both textual and visual languages, as well as both commercial and academic programming tools.
Selected Recent Publications
For a more complete list, see http://web.engr.oregonstate.edu/~cscaffid/research.php
Problem #1: Programmers try learning from online code examples, but the usual approaches are not particularly effective
- Chambers, C., Chen, S., Le, D., and Scaffidi, C. (2012). The function, and dysfunction, of information sources in learning functional programming. ACM Journal of Computing Sciences in Colleges, ACM Consortium for Computing Sciences in Colleges, 28, 1, 220-226.
- Scaffidi, C., Dahotre, A., and Zhang, Y. (2012) How well do online forums facilitate discussion and collaboration among novice animation programmers? 43rd ACM Technical Symposium on Computer Science Education (SIGCSE), 191-196.
- Scaffidi, C., and Chambers, C. (2012). Skill progression demonstrated by users in the Scratch animation environment. International Journal on Human-Computer Interaction, 28, 6, 383-398.
Solution #1: Situated learning and interactive scaffolded learning (via intelligent tutors)
- Krishnamoorthy, V., Appasamy, B., and Scaffidi, C. (2013). Using intelligent tutors to teach students how APIs are used for software engineering in practice. IEEE Transactions on Education, accepted.
- Cao, J., White, R., Kwan, I., Fleming, S., Burnett, M., and Scaffidi, C. (2012). From barriers to learning in the Idea Garden: An empirical study. IEEE Symposium on Visual Languages and Human-Centric Computing, 59-66.
- Dahotre, A., Krishnamoorthy, V., Corley, M., and Scaffidi, C. (2011). Using intelligent tutors to enhance student learning of application programming interfaces. ACM Journal of Computing Sciences in Colleges, ACM Consortium for Computing Sciences in Colleges, 27, 1, 195-201.
Problem #2: End-user programmers post many kinds of code to online repositories, but very little of it is reused
- Athreya, B., Bahmani, F., Diede, A., Scaffidi, C. (2012). End-user programmers on the loose: A study of programming on the phone for the phone. IEEE Symposium on Visual Languages and Human-Centric Computing, 75-82.
- Dahotre, A., Zhang, Y., and Scaffidi, C. (2010) A qualitative study of animation programming in the wild. IEEE International Symposium on Empirical Software Engineering and Measurement, 1-10.
- Bogart, C., Burnett, M., Cypher, A., and Scaffidi, C. (2008) End-user programming in the wild: A field study of CoScripter scripts. IEEE Symposium on Visual Languages and Human-Centric Computing, 39-46.
Solution #2: Heuristics can identify reusable code to guide reuse, refactoring, and learning
- Jackson, J., Scaffidi, C., and Stolee, K.. (2011). Digging for diamonds: Identifying valuable web automation programs in repositories. IEEE International Conference on Information Science and Applications.
- Scaffidi, C., Bogart, C., Burnett, M., Cypher, A., Myers, B., and Shaw, M. (2010) Using traits of web macro scripts to predict reuse. Journal of Visual Languages and Computing, 21, 5, 277-291.
- Scaffidi, C., Bogart, C., Burnett, M., Cypher, A., Myers, B., and Shaw, M. (2009) Predicting reuse of end-user web macro scripts. IEEE Symposium on Visual Languages and Human-Centric Computing, 93-100.
- Scaffidi, C. and Shaw, M. (2009) Inferring reusability of end-user programmers' code from low-ceremony evidence. End User Programming for the Web Workshop.
- Scaffidi, C., Bogart, C., Burnett, M., Cypher, A., Myers, B., and Shaw, M. (2008) Characterizing reusability of end-user web macro scripts, International Workshop on Recommendation Systems for Software Engineering.
Problem #3: Programmers forage for information by following complex but rational paths through code
- Piorkowski, D., Fleming, S., Kwan, I., Burnett, M., Bellamy, R., Jordahl, J. (2013, expected) The Whats and Hows of Programmers' Foraging Diets. ACM SIGCHI Conference on Human Factors in Computing Systems, to appear.
- Piorkowski, D., Fleming, S., Scaffidi, C., John, L., Bogart, C., John, B., Burnett, M., and Bellamy, R. (2011). Modeling Programmer Navigation: A head-to-head empirical evaluation of predictive models. IEEE Symposium on Visual Languages and Human-Centric Computing, 109-116.
Solution #3: Tools can aid foraging by tracking information needs and offering assistive support
- Fleming, S., Scaffidi, C., Piorkowski, D., Burnett, M., Bellamy, R., Lawrence, J, and Kwan I. (2013). An Information Foraging Theory Perspective on Tools for Debugging, Refactoring, and Reuse Tasks. ACM Transactions on Software Engineering Methodology, 22, 2, to appear.
- Piorkowski, D., Fleming, S., Scaffidi, C., Bogart, C., Burnett, M., John, B., Bellamy, R., Swart, C. (2012). Reactive information foraging: An empirical investigation of theory-based recommender systems for programmers. ACM SIGCHI Conference on Human Factors in Computing Systems, 1471-1480.