Potential Projects
Are you an undergraduate interested in doing research with me? Here are some topics and areas that are interesting to me.
CS1 Data Analysis/Visualization
We’ve recorded a large number of coding snapshots from students completing problems in BlockPy across multiple semesters and courses. We get fine grained data on what students write, when they work, their demographics, their performance on exams, etc. All of this data is already cleaned and anonymized, and now we are looking to do various kinds of interesting analyses with it.
- Open Problems:
- Is our feedback actually effective?
- What can we infer from program analysis using Pedal?
- Can we detect cheaters and students who are using the platform wrong?
- What kinds of interventions should we enact?
- What kinds of visualizations would help teachers and students?
- You’ll need to have…
- Data Structures (e.g., CISC220)
- Some basic statistics
- You’ll get experience with…
- Data Science
- Program analysis
- HCI/Visualization
- This is probably very publishable!
CORGIS Pedagogical Dataset Development
Build and maintain datasets that are meant for classrooms, drawing from extremely varied sources. This is basically my most popular project and there’s a lot of good work to be done. I’m not sure how publishable it is, but this is something that a lot of folks use directly and could really benefit from some good work!
- Open Problems:
- Need a large number of new datasets from any area you can think of (Biology, Law, Literature, etc.)
- Need to revise and improve a number of existing datasets
- You’ll get experience with…
- Data Science
- Data Transformation
- Web APIs
- Python
- User Experience Design
Various tools for synchronizing a Canvas course with a Github repo
- Open Problems:
- Building a web interface to simplify comparisons and diff resolutions
- Building a chat (Discord?) interface for running common jobs
- Building interfaces for generating reports, managing TAs, and setting course options.
- You’ll need to have…
- Software Engineering (e.g., CISC275)
- You’ll get experience with…
- Web development
- Version Control Systems (like Git)
- Web APIs (Canvas, Git)
- Usability Engineering
- Educational theories related to Instructional Design
Cultural and Equity Improvements for Bakery
An evaluation of the Bakery curriculum revealed that we have not done enough to foster equity, creativity, community, and culture. We need to revisit the curriculum in that lens.
- Open Problems:
- How do we create lessons, problems, and projects that are in line with the TEC (Accessibility, Equity, and Content) Rubric?
- You’ll get experience with…
- Curriculum design
- Equity and diversity issues in CS
Drafter Game Library
The Drafter game library is one of my newest attempts to make a novice-friendly library in Python that demonstrates “the right things to do” with things like state, decomposition, and testing.
- Open Problems:
- What features still need to be added?
- How do we streamline the authoring of test cases?
- How can we make it trivial to deploy Drafter websites within the browser?
- You’ll need to have…
- Preferably, some web development experience
- You’ll get experience with…
- Web Development
- API Designer
- Python, JavaScript, HTML, CSS
Designer Game Library for Skulpt
BlockPy internally uses the Skulpt Javascript-to-Python compiler. This compiler does not support all Python language features, although its functionality continues to grow. I’d like to add a game development library to it for Designer.
- Open Problems:
- How do we make a Skulpt-compatible implementation of Designer?
- How do we increase performance of the library?
- What should the Designer interface look like?
- You’ll need to have…
- Data Structures (e.g., CISC220)
- Preferably, some web development experience
- You’ll get experience with…
- JavaScript and Python programming
- Web development
- Game Development and Web Graphics
BlockMirror: Dual Block/Text Interface Component
We recently separated BlockMirror out into its own separate component from BlockPy. We’d like to see it integrated into some new environments, like Jupyter Notebooks.
- Open Problems:
- Create a component for Jupyter Notebooks
- Figure out best possible block representations of Python code to support student learning
- Support complete Python language and all syntactically valid Python code
- Integrate ideas from TIFA to have proper types in Blocks
- You’ll need to have…
- Data Structures (e.g., CISC220)
- You’ll get experience with…
- JavaScript and Python programming
- HCI and User Experience Design
- Parsing
- Program Analysis
How should instructors in Computing bundle up their lessons for sharing, evaluating, adopting, etc.?
- Open Problems:
- Designing and developing formats for quizzes, programming assignments, projects, grading rubrics, course staff instructions, in-class lessons, etc.
- Protocols for developing lessons, exams, evaluations, etc.
- You’ll need to have…
- Introductory programming (e.g., CISC108)
- You’ll get experience with…
- Markdown
- Instructional Design
Better Feedback in BlockPy
Intelligent tutoring system for BlockPy (or other relevant system) that helps support metacognitive behaviors based on a model of students.
- Open problems:
- How do we encourage students to write more tests as they debug problems?
- How do we encourage students to decompose their solutions into multiple parts?
- How do we encourage students to seek and interpret automated feedback?
- How do we encourage students to work early, often, and for appropriate time lengths?
- How do model students in order to determine optimal intervention times?
- How do we intervene to make a measurable impact on student behavior?
- What relationship do these metacognitive interventions have on student learning?
- You’ll need to have…
- Data Structures (e.g., CISC220)
- You’ll get experience with…
- AI techniques
- Machine Learning
- Web development
- Educational Theories related to Meta Cognition