Ongoing Projects

Introductory Python Curriculum (Project SNEKS)

An instructionally designed curriculum for teaching intro python, open-sourced and accessible for instructors to adopt.


A Pedagogical Library for analyzing student's Python work and delivering feedback. Uses various tools including a type inferencer, flow analyzer, and code pattern matching.


CORGIS Website
Many Introductory Computer Science courses rely on abstract problems, which clashes with students' experiences in a media and data-rich world. By using real data sources, academic problems are contextualized, thereby 
  • increasing students' motivation, 
  • connecting more deeply with students' prior knowledge, and 
  • providing grounded experience in more advanced topics. 
However, there are drawbacks to using these data sources: 
  • periodic instability, 
  • inconstant availability of "useful data",
  • the potential for corrupted data,
  • and many more.
To overcome these challenges, we've created:
  • A set of libraries that make introducing big data trivial,
  • A friendly web gallery of these tools,
  • A useful online tool for quickly prototyping new libraries. 
Developed under Dr. Eli Tilevich, Dr. Cliff Shaffer, and Dr. Dennis Kafura as part of two NSF Grants.


BlockPy is a web-based Python environment that lets you work with blocks, text, or both. Designed for Data Science and equipped with powerful tools like the State Explorer and Guided Feedback, the goal of BlockPy is to let you solve authentic, real-world problems.

Computational Thinking Class

I've helped to teach and develop a new course on "Computational Thinking" at Virginia Tech, emphasizing Abstractions and Algorithms through the use of Data Science. This takes advantage of both BlockPy and CORGIS. We've even been written up in a local newspaper!