Inspiration
We've all struggled with calculus, whether in high school or college, and we wanted to help fellow and future students become familiar with derivatives when they start learning them. We aimed to create a one-stop hub for basic derivative practice.
What it does
Derivative Trainer gives students an introduction to derivatives through a brief overview of 6 fundamental rules (Power, Sum, Product, Quotient, Chain, and Constant). It also provides a calculator for students to see the rules in action. Students can enter functions, choose a rule that can be used to derive it, and see the result. After going through some solved example problems, the website features a quiz for students to test their understanding. Feedback through examination is an optimal way to monitor progress and ensure understanding. Finally, Derivative Trainer contains an additional page with derivative identities and practice problems for additional practice.
How we built it
We built this using HTML, CSS, and JavaScript. Since we are beginners who were working with these languages for the first time, we wanted to focus on developing our skills with them and build a functional web application without any additional dependencies or libraries. We believe this demonstrates the power of these languages on their own. What results is a self-contained application. We also utilized Cursor for the first time as a programming environment.
Challenges we ran into
A clear challenge we encountered was learning HTML, CSS, and JavaScript. We also utilized Cursor for the first time, which we found valuable due to its incorporated AI features, which expedited the process and helped us solve many bugs. Although we used AI and online resources to troubleshoot, we experienced a lot of trial and error to get the website to look exactly how we wanted.
We also found establishing the scope of the project challenging. The calculator function was not perfect as it was first unable to work with multiple terms. After that, it had trouble with trigonometric functions. We decided to scale back the scope of the calculator feature for more accuracy and a more beginner-friendly tool for students, featuring only fundamental rules that are learned early in calculus.
A final challenge we had was learning GitHub. Although we were aware of its importance and indispensable role in the field, this was our first time working with it. We spent time familiarizing ourselves with commits, merging, branches, and conventions for those (such as not committing to the main branch unless we were finalizing).
Accomplishments that we're proud of
We're especially proud of the quiz and calculator functions as those were the core features of interaction for the site. They're simple but useful tools for demonstrating derivative rules and self-testing. We're also proud of what we were able to produce within the time constraints as beginners: much of this would not have been possible without help from our Spookathon mentors.
What we learned
We learned how to work with three different languages and synthesize them to create a working website. In addition, we learned how to collaborate using GitHub. More specifically, we learned how to implement simple changes that significantly affect user experience, such as including a drop-down menu, sounds triggered by button-clicking, and optional background music. We also learned how to delegate tasks in a programming environment and manage our time. We realized the importance of establishing our goals early and adapting when unexpected changes occur.
What's next for Derivative Trainer
There are many possibilities in expansions for Derivative Trainer. It could feature a game for more engaging practice, matching quizzes for the rules, and eventually cover integrals and other calculus topics to provide more practice for students. We also see this having cross-disciplinary application, such as including physics problems/scenarios. We could also see this application implementing AI for more robust question generation and answer explanation.
Log in or sign up for Devpost to join the conversation.