Cliff Shaffer's Research Projects
Here is information and pointers to websites for some of the research projects that I have been involved with.
My background is in data structures and algorithms, and I tend to gravitate to building sofware systems of various types. At this time, most of my research relates to Digital Education, which is broadly about using computers in education. Over the years, I have worked on many interdisiplinary projects, often under the rubic of Problem Solving Environments, and I spent about 15 years working on topics in Computational Biology. I list those below the section on Digital Education, but I am not currently pursuing such work.
Digital Education
I have been involved in projects related to computer aided education since the early 1990s [Shaffer14]. A particular focus has been on the use of Algorithm Visualizations [Shaffer07, Shaffer10a, Cooper14]. Over time, I came to a few key conclusions:
- Algorithm Visualizations really do present dynamic content (such as the behavior of algorithms) effectively. But even more important to learning this material is to practice it. Hence, I do a lot of work with interactive exercises and activities of various types [Fouh12].
- The most effective way to encourage instructors to adopt such materials is to give them complete units of instruction. Thus, an earlier project to catalog and encourage use of AVs gave way to OpenDSA, a project to develop infrastructure and content for a variety of Computer Science topics [Shaffer11].
Since 2011, I have headed OpenDSA, a major effort to develop a complete eTextbook [Korhonen13] for use in Data Structures and Algorithms courses [Shaffer2011a, Shaffer2011b, Hall13, Fouh14a, Fouh14b, Fouh16, Farghally17a, Farghally17b ]. This is an open source, creative commons effort that involves collaboration with many AV developers around the world. An important component of this project is the JavaScript Algorithm Visualization (JSAV) library, an effort lead by Ville Karavirta [Karavirta16, Karavirta13].
There are always many ways that people can volunteer to help with this project. For undergraduates, many students over the years have done an Independent Study or Undergraduate Research project that involves writing an exercise or an AV. See my projects list for efforts that I am seeking students to help with. For graduate students, we have a long list of research questions associated with the OpenDSA project
I am involved in an active project aimed at improving the ability of mid-level programmers to develop more complex software projects. In particular, we focus on teaching Sophomore/Junior level students project management skills that will allow them to successfully complete difficult projects such as might be found in a Junior-level Data Structures and Algorithms course or Operating Systems course. This work involves detailed analysis of how students actually develop such projects, including the effects of scheduling and testing [Martin15, Edwards15 Kazerouni17a, Kazerouni17b].
Another ongoing project that I am working with seeks to develop instructional materials used to integrate Big Data concepts into courses, especially at the introductory major's level. This work has evolved from an original focus on introducing Real-Time data into CS courses (the RealTimeWeb project [Bart14]), to the use of Big Data (perhaps introduced through Block Languages such as BlockPy -- the CORGIS project [Bart17a, Bart17b]) to Computational Thinking courses.
My latest Digital Education project is SPLICE: Standards, Protocols, and Learning Infrastructure for Computing Education. The goal is to improve CS Education and the associated research entrprise through supporting the CS Education community to adopt better interoprability between online educational tools, better tools for analyzing student analytics data, and best practices for releasing student analytics data to the research community. See the project website.
Old Projects Related to Digital Education
Here are some descriptions of earlier projects that I have worked on. Much of this software is still in use.
For a number of years, I have sought to improve CS education through use of AVs in computer science courses. The AlgoViz Portal, is an online educational community aiding instructors and developers of AVs [Shaffer10b]. My research group also develops state-of-the-art AVs, and tries to understand the key factors that make for successful AVs [SSMN04].
I also worked with the ENSEMBLE project, which is the Computer Science component of NSF's National STEM Digital Library (NSDL) [Fox10, Akbar11, Ackbar14].
My first project related to digital education was Project GeoSim: Simulations for Geography Education [Shaffer94]. Created in the early 1990s, this software has been used by many thousands of students around the world, and is still actively used. I am in the process of working on an update to the IntlPop population simulator.
Learning in the Networked Community (LiNC) was an early effort to incorporate the internet and online education into K12 education [Koenemann]
SABLE: Statistics Activity-Based Learning Environment has completed. But I am interested in extending this work.
Swan: A Data Structure Visualization System was our initial prototype system for supporting data structure visualization [Shaffer96, Yang95].
Problem-Solving Environments
Problem-solving environments (PSEs) are software environments intended to support scientists and engineers with large modeling problems. Typical characteristics of such systems are that they involve modeling and simulation, visualization, optimization (often in high dimensions), and software engineering to put it all together. Since the mid 1990's, I have been involved in projects that span a wide variety of scientific domains. These have included modeling wood-based composite presses, preliminary aircraft design, watershed assessment, and wireless systems design.
My main PSE-related research interest at the moment is in the area of Systems Biology, a subfield of Computational Biology. I worked with John Tyson in the Biology Department, designing software to support his lab's efforts to model the cell cycle [Allen03, SZRT09]. JigCell is the problem solving environment that we developed for this purpose. [ Allen06, Vass06] We continute to develop tools and modeling techniques appropriate for cell cycle modeling, and more generally for modeling molecular regulatory networks.
This is only one of many projects our CS Department is involved in related to Computational Biology and Bioinformatics.
Some particular topics JigCell focused on include
- stochastic simulation algorithms [Liu2010, Ahn09],
- relevenat high-performance computing and optimization techniques [ Panning07],
- decomposing large reaction networks into managable modules, similar to breaking a computer program into subroutines, [RST10, RST09, SRT06] and
- support for reaction models involving multi-state chemical species [Liu10].
The following are PSE-related projects that are not currently active or I am not actively working with them now.
- Automatic detection of defects in hardwood logs [Thomas06, Thomas07].
- The S4W project is a PSE for wireless commications system design [Skidmore04, He04, Misra07].
- The Landscapes to Waterscapes (L2W) project integrated GIS with visualization and analysis tools for watershed management [Rubin03].
- We have worked on visualization for conceptual aircraft designs [Goel99, Goel01].
- Sieve is a component-based collaborative workspace in Java that serves as the foundation for building PSEs [Isenhour97].
- One aspect of our PSE work is to support collaborative computing. An early effort for us in this area is JAMM: Java Applets Made Multiuser [Begole99, Begole01]. We also developed NetEdit, a prototype collaborative text editor [Zafer01].
Return to Cliff Shaffer's homepage.