Oregon State University

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, a 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 is presently serving 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 is a member of the ACM and IEEE.

Research Interests: 

Research Areas
End-User Programming, Software Engineering, Visual Programming Languages


Research Description
By 2012, over 90 million people will use computers in American workplaces, including at least 55 million who will create spreadsheets, databases, scripts, or other programs to automate tasks that would be tedious or error-prone to do manually. For example, an end-user programmer might create a script that computes the monthly interest due on a loan.

However, end-user programmers run into trouble when trying to automate larger tasks. In particular, combining several programs into a larger program is often impossible or requires intricate, brittle code. For instance, existing programming tools offer no easy way to use borrower names in a spreadsheet to look up corresponding loan information from an existing database provided by a co-worker, to compute each borrower’s monthly interest payments by repurposing the script mentioned above, and to display the results beside each borrower name in the spreadsheet.

My goal over the next few years is to enable end-user programmers to create, share and combine code. Two key stumbling blocks stand in the way. First, end-user programmers need a reliable way of finding existing code that they can adapt and combine. I will to extend a preliminary model for identifying reusable code, then use this model to provide methods and systems for guiding end-user programmers to locate high-quality code. Second, after identifying useful existing code, end-user programmers need a reliable way to integrate code. I will focus first on helping programmers pass data from one piece of code to another. As an initial step, I developed a data model and supporting tools in my thesis work so that end users can create code for validating and reformatting the many string-like data values in end-user programs. These strings are modeled with abstractions called “topes” that are platform-independent and which might ultimately serve as a “lingua franca” for exchanging data between scripts, spreadsheets and other kinds of code.

My thesis work also exemplifies my research approach, which is to identify a general problem by studying the needs and context of human beings, and then to solve the problem by adapting the models and methods of software engineering and human-computer interaction.

Publications

2012
Scaffidi, C., and C. Chambers, "Skill Progression Demonstrated by Users in the Scratch Animation Environment", International Journal of Human-Computer Interaction, vol. 28, issue 6, pp. 383 - 398, 06/2012. Abstract
2011
Burnett, M. M., and C. Scaffidi, "End-User Development", Encyclopedia of Human-Computer Interaction, 2011.
Dahotre, A., V. Krishnamoorthy, M. Corley, and C. Scaffidi, "Using intelligent tutors to enhance student learning of application programming interfaces", J. Comput. Sci. Coll., vol. 27, USA, Consortium for Computing Sciences in Colleges, pp. 195–201, 10/2011. Abstract
Piorkowski, D., S. D. Fleming, C. Scaffidi, L. John, C. Bogart, B. E. John, M. M. Burnett, and R. Bellamy, "Modeling programmer navigation: A head-to-head empirical evaluation of predictive models", 2011 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Pittsburgh, PA, IEEE, pp. 109 - 116, 09/2011. Abstract
Jones, M., and C. Scaffidi, "Obstacles and opportunities with using visual and domain-specific languages in scientific programming", 2011 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Pittsburgh, PA, IEEE, pp. 9 - 16, 09/2011. Abstract
Jackson, J., C. Scaffidi, and K. T. Stolee, "Digging for Diamonds: Identifying Valuable Web Automation Programs in Repositories", International Conference on Information Science and Applications (ICISA 2011), Jeju Island, IEEE, pp. 1 - 10, 04/2011. Abstract
Asavametha, A., P. Ayyavu, and C. Scaffidi, "No Application Is an Island: Using Topes to Transform Strings during Data Transfer", International Conference on Information Science and Applications (ICISA 2011), Jeju Island, IEEE, pp. 1 - 10, 04/2011. Abstract
2010
Scaffidi, C., C. Bogart, M. M. Burnett, A. Cypher, B. Myers, and M. Shaw, "Using Traits of Web Macro Scripts to Predict Reuse", Journal of Visual Languages & Computing, vol. 21, issue 5, pp. 277 - 291, 12/2010. Abstract
Dahotre, A., Y. Zhang, and C. Scaffidi, "A Qualitative Study of Animation Programming in the Wild", Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement - ESEM '10, Bolzano-Bozen, Italy, ACM Press, pp. 1, 09/2010. Abstract
Chambers, C., and C. Scaffidi, "Struggling to Excel: A Field Study of Challenges Faced by Spreadsheet Users", 2010 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Leganes, Madrid, Spain, IEEE, pp. 187 - 194, 09/2010. Abstract
Scaffidi, C., "Sharing, Finding and Reusing End-User Code for Reformatting and Validating Data", Journal of Visual Languages & Computing, vol. 21, issue 4, pp. 230 - 245, 08/2010. Abstract
Scaffidi, C., and M. Shaw, "Reuse in the World of End-User Programmers", No Code Required: Giving Users Tools to Transform the Web: Morgan Kaufmann, pp. 407-422, 2010.
2009
Scaffidi, C., C. Bogart, M. M. Burnett, A. Cypher, B. Myers, and M. Shaw, "Predicting Reuse of End-User Web Macro Scripts", 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Corvallis, OR, IEEE, pp. 93 - 100, 09/2009. Abstract
Scaffidi, C., B. Myers, and M. Shaw, "Fast, Accurate Creation of Data Validation Formats by End-User Developers", 2nd International Symposium on End-User Development (ISEUD 2009), vol. 5435, Berlin, Heidelberg, Springer, pp. 242 - 261, 03/2009. Abstract
2008
Koesnandar, A., S. Elbaum, C. Scaffidi, G. Rothermel, L. Hochstein, and K. T. Stolee, "Using Assertions to Help End-User Programmers Create Dependable Web Macros", Proc. 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2008), Atlanta, Georgia, ACM Press, pp. 124, 11/2008. Abstract
Bogart, C., M. M. Burnett, A. Cypher, and C. Scaffidi, "End-User Programming in the Wild: A Field Study of CoScripter Scripts", 2008 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Herrsching am Ammersee, Germany, IEEE, pp. 39 - 46, 09/2008. Abstract
Scaffidi, C., A. Cypher, S. Elbaum, A. Koesnandar, and B. Myers, "Using Scenario-Based Requirements to Direct Research on Web Macro Tools", Journal of Visual Languages & Computing, vol. 19, issue 4, pp. 485 - 498, 08/2008. Abstract
Scaffidi, C., B. Myers, and M. Shaw, "Topes: Reusable Abstractions for Validating Data", Proceedings of the 30th International Conference on Software Engineering, Leipzig, Germany, ACM, pp. 1–10, 05/2008. Abstract
Scaffidi, C., B. Myers, and M. Shaw, "Intelligently Creating and Recommending Reusable Reformatting Rules", Intl. Conf. on Intelligent User Interfaces (IUI 2009), Sanibel Island, Florida, ACM Press, pp. 297, 02/2009, 2008. Abstract
2007
Scaffidi, C., A. Cypher, S. Elbaum, A. Koesnandar, and B. Myers, "Scenario-Based Requirements for Web Macro Tools", IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC 2007), Coeur d'Alene, ID, IEEE, pp. 197 - 204, 09/2007. Abstract
Scaffidi, C., K. Bierhoff, E. Chang, M. Felker, H. Ng, and C. Jin, "Red Opal: Product-Feature Scoring from Reviews", Proceedings of 8th ACM Conference on Electronic Commerce (ACMEC 2007), San Diego, CA, ACM, pp. 182–191, 06/2007. Abstract
Scaffidi, C., "Unsupervised Inference of Data Formats in Human-Readable Notation", Proceedings of 9th International Conference on Enterprise Integration Systems (ICEIS'07), Madeira, Portugal, pp. 236–241, 06/2007. Abstract
2006
Scaffidi, C., A. J. Ko, B. Myers, and M. Shaw, "Dimensions Characterizing Programming Feature Usage by Information Workers", Visual Languages and Human-Centric Computing (VL/HCC'06), Brighton, UK, IEEE, pp. 59 - 64, 09/2006. Abstract
2005
Scaffidi, C., M. Shaw, and B. Myers, "Estimating the Numbers of End Users and End User Programmers", Proceedings of the 2005 IEEE Symposium on Visual Languages and Human-Centric Computing, Dallas, TX, IEEE Computer Society, pp. 207–214, 09/2005. Abstract

Contact Info

Oregon State University
1148 Kelley Engineering Center
Corvallis, OR 97331-5501
Phone: (541) 737-3617
Fax: (541) 737-1300
Contact us with your comments and questions
Copyright ©  2012 Oregon State University
Disclaimer