Skip to content

zeb25/Java-Learning-Tool

Repository files navigation

Java Learning Tool

Summary of Program

This project was created for the University of Vermont's 2024 Hackathon, and won 1st place for the project category. The team members were Zoe Bell, James LeMahieu, Lily Bonds, Darby Lane. We were prompted to create a programming language learning tool, and were given creative liberty on the method, UI, and feedback methods for how we would teach the user the language. Playing to our strengths we chose to code the majority of this project in Java, relying heavily on OOP principles. Following a meta approach we ultimately decided to also teach the user about Java. This program is meant to provide foundational knowledge of basic Java concepts in order to supplement a professor's lecture content and be built upon through subsequent coding activities given by the professor.

The program opens up and allows the user to choose the module they would like to work on. Each module is split up into chapters, with each chapter providing a link to a website that the user could read through. At the end of each module the user is prompted with whether or not they are ready for a module quiz, given the choice to either take the quiz or return to the Main Menu. After taking the quiz, the user is given a score and a graph is displayed showing thier quiz percentage for each module. As the user takes more quizzes the bars continue to populate, giving the user a more comprehensive understanding of their quiz scores and knowledge of each module. The bar graph is called through the command line from Java, passing the command line prompt and running an Rscript to graph the plot in GGPlot; the picture is then saved to the working directory of the program where Java code displays the saved image in a new window. Flashcards are also created after any quiz is taken. Any quiz questions that the user got incorrect are subsequently saved and turned into a flashcard available for review from the Main Menu. The user can select "Flashcards" to review the question and answer. Throughout the project we implemented input validation to ensure a more seamless and bug-free experience for the user.

Known Bugs

There are no known bugs at the time.

Future Work

Ways this project could be expanded upon and made more comprehensive is:

  1. Adding multiple languages to choose from. The team originally considered adding more than one language but was constricted by the time frame of the Hackathon.
  2. Adding a more comprehensive UI experience. The current program runs through the console/terminal of the user's device. If prompted would could create graphics that go along with tis program or a website that allows for a better user experince than the console.
  3. Expanding upon current learning content. Java is a comprehensive language and out lessons only scrape the surface of what cna be taught about the language. Adding more lessons and modules is definitely a possibility and something that would be easily implemented due to the OOP we implemented in this project.

Credits

Zoe Bell: Linkedin, GitHub
James LeMahieu: Linkedin, GitHub
Lily Bonds: Linkedin, GitHub
Darby Lane: Linkedin, GitHub

Code Citations

All code was authored by the team memebrs, but inspiration and examples that proved helpful for the team are linked below.
https://stackoverflow.com/questions/14353302/displaying-image-in-java
https://stackoverflow.com/questions/8496494/running-command-line-in-java

Lesson Plan Citations

Modules:

About

Repo for our group, Infinite Loop, for the UVM Hackathon

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •