CompSci 290
Spring 2024
Educational Technology Practicum

Small Project: Updated APT System

This project updates Duke CompsSci's APT submission system to improve the experience for students, including ways to help students also learn more about programming while solving the problems.

You do not need to implement a fully working website. Use "dummy" data to demonstrate how you expect features to work rather than implementing "server-side" functionality. Your Software Artifact can combine:

You may work in groups or on your own. You may use ChatGPT or other LLM to help you as long as its contributions are clearly referenced.

Submitting your Work

Fork the assignment repository to make your own personal area to work in and use GIT to push your Software Artifact to it.

In addition to the basic information included in the README file:


Many students enjoy the APT problems, but many also complain about our home-grown APT submission website — so your task is to improve it!

Here are some specific problems to consider:

Currently, students use the APT website only to submit their code and view the testing results — the work of coding is done in the code editor installed locally on their computer. There is no way for a student to see their progress, similarity between failed test cases, or what test cases other students are having problems with. It is also not easy to use online interactive tools to debug or understand their code, like ChatGPT or PythonTutor (which works for multiple languages :). Whatever you think would help students better complete the APT or even learn more about problem solving and programming is fair game to include, as long as you can explain how it helps and justify from a learning theory or principle.

If you do not have any specific ideas for improvements, feel free to ask your friends or other students.

Here is a running website and the source code from a former student if you want to use it for ideas, example data, or a starting code framework. You are also welcome to look at other examples online (such as LeetCode, WebCAT, or Problets), but your version should be distinctly different from any examples you find (i.e., create your own, do not simply copy one).