Back to Portfolio

Computing Comparisons - Analogy Builder

Duration: Feb 2023 - Feb 2024
Role: Lead Developer

Analogies are useful in aiding comprehension and problem-solving skills, but some traditional analogies used in Computer Science classrooms may be outdated or confusing, such as "Master/Slave Switches". The tool aims to facilitate effective understanding of core concepts by allowing students to generate their own analogies tailored to their individual experiences and backgrounds.

As lead developer, I built the web-tool to be used for a University of Nebraska summer camp and in classrooms the following fall. The data collected through the tool was then used for a paper, which was recently published with myself listed as a co-author. This tool impacts students by providing a powerful cognitive tool that can enhance understanding and cognition of concepts.

Features include the ability to create, download, and upload analogies on the custom analogy builder. Students could turn in the downloaded analogies via canvas or email. Additionally, content from one analogy could be seamlessly transferred to other analogies, reducing the amount of re-work a student might need to do.

Computing Comparisons - Analogy Builder screenshot 1

Technologies Used

Next.js
Firebase
Firestore
Serverless Functions
Auth.js
Tailwindcss

Key Challenges

  • Designing an intuitive UI for CS1 students with varying technical backgrounds

  • Managing cold start issues with serverless functions

  • Implementing secure and efficient data download/upload functionality

  • Creating a process that guides students through analogy creation

Outcomes & Impact

  • Successfully scaffolded the analogy creation process for deeper conceptual understanding

  • Received positive feedback from CS1 students on tool usability and effectiveness

  • Enabled students to more clearly compare attributes between target and source concepts

  • Demonstrated the tool's potential in fostering active analogy reasoning in computing education

View Project Link