OREGON STATE UNIVERSITY

You are here

Christopher Scaffidi

Assistant Professor
Computer Science
Education: 
  • Ph.D. Software Engineering (Sep 2004 – May 2009)
    School of Computer Science, Carnegie Mellon University
  • M.S.E. – Master’s Software Engineering (Sep 2004 – May 2006)
    School of Computer Science, Carnegie Mellon University
  • M.A. Physics (Sep 1995 – Dec 1997)
    Physics Department, Princeton University
  • B.S. Mathematics and Physics (Sep 1992 – May 1995)
    Mathematics and Physics Departments, University of Wisconsin - Madison
Biography: 

Christopher Scaffidi earned a Ph.D. in Software Engineering from Carnegie Mellon University, an MSE in Software Engineering from Carnegie Mellon University, a MS in Physics from Princeton University, and a BS in Mathematics and Physics from the University of Wisconsin in Madison. He began his career as a researcher in physics at Princeton University, then moved into professional software engineering during the dot-com boom. After seven years of web application development and consulting experience, he began his academic career as a software engineering researcher.

He is currently an Assistant Professor of Computer Science in the School of EECS at Oregon State University. His research interests are where human-computer interaction and software engineering intersect. Most of his current projects aim to help software users to create code for themselves, and to effectively share that code with one another.

He recently served as Director of the EUSES Consortium, an international association of seven universities and one company. He was Co-chair for the Poster/Work-in-progress track at the 2009 International Symposium on End-User Development and is on the program committee for the 2010 ACM SIGCHI Symposium on Engineering Interactive Computing Systems. He has been a member of the program committee for the IEEE Symposium on Visual Languages and Human-Centric Computing since 2010. He is a member of the ACM and IEEE.

Research Interests: 

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.

Contact Information

3047 Kelley Engineering Center
Corvallis, OR 97331-5501
(541) 737-5572
(541) 737-1300