From testing to creating buttons, JAVA students know it all at the end of the year. As the school year comes to an end, these students create their own educational games using the skills that they have learned from the JAVA course over the course of the year, setting up goals, rules, and feedback within their very own JAVA game.
Sophomore Nanda Nayak is creating a game that educates users on choosing healthy food options. She now recognizes the importance of planning when creating small projects that were done as a part of the curriculum and large projects like the end of the year game project. Using the proposal as a guide, she believes she was able to plan her project successfully.
“I definitely learned how to use my time wisely and divide a large task into smaller steps. I think that the most important step was the game proposal,” Nayak said. “It really helped us visualize our game, and we clearly labelled every detail of it.”
Through the application of testing to small projects over the course of the year, students understand the importance of testing by the end of the year. Throught the end of the year project, students learn the importance of testing their programs. Through the testing process in which they focus on the emotions and actions of the testers, students realize the value testing has in making a program reliable and usable.
Sophomore Ankita Mitra, for example, created her own virtual “Physics Park” as her end of the year JAVA project as a freshman. After going through the process of testing, Mitra learned that users get the best feedback and make the most progress when they see a combination of text, images, and animations.
“I noticed during testing that using visuals was definitely a more effective approach to teaching younger kids than plain text,” Mitra said. “For instance, I used a model of a slide, and let the students connect to someone sliding down a slide, so the students can see the real life implications of gravity.”
Freshman Amit Palekar who created a program that puts an educational spin on “Chutes and Ladders” sees the project as a challenge for JAVA students. He believes that the project is unique because students apply the concepts they learn in class to create a game that consists of many components. He found that joining these individual components together was a challenging task that is new to JAVA students.
“Creating the individual components is easy, but piecing it all together to create a whole game is harder than the programs that we have done in class,” Palekar said. “This is an actual application of what we do in class.”
While JAVA students are creating their educational games, David Greenstein’s AP Computer Science students are challenged to create their own processing project written in JAVA. Students often push themselves further by researching more advanced programming concepts allowing them to make more elaborate projects and learn far more from the process.
Junior Saagar Jha who took on the challenge last year created a 3-dimensional flight simulator. Due to Saagar’s expertise in JAVA programming, he independently researched advanced topics that would enhance the functionality of his project. He incorporated wide range of concepts which included ones taught in the AP Computer Science Curriculum and others that he taught himself..
He used a two dimensional array which is which essentially a grid made up of rows and columns to store the terrain or the environment that was used in his simulator.
“I modeled my terrain look like what a video game would look like,” Jha said. “The terrain is stored as a 2-D array which we learned in AP Computer Science. It’s basically a giant grid and manipulating the grid applies a lot of what we learned in AP Computer Science.”
Terrain Generation is one of the algorithms that he independently researched. This algorithm helped him generate the terrain or the environment that the user sees in the simulator.
“Terrain generation makes stuff look like actual hills and valleys,” Jha said. “You may have seen in a videogame, the ground isn’t really flat, and you have landforms, and you have water. So terrain generation generates that. Instead of me programming that in, the program does it itself.”
Another algorithm that he independently researched was a modified Diamond-Square Algorithm which he used to alter the perspective of the user based on which point of the simulation they are currently at.
“You make really big mountains and valleys, and later you modify them,” Jha said. “The algorithm makes smaller features later in the program. So in the beginning of the program you get a big picture view and later you can see smaller details.”
He believes that learning ahead was the most rewarding decision he made for the project because it allowed him to add concepts that were not part of the curriculum and build a better project. He advises future students to learn ahead as well, so they can create more elaborate projects.
JAVA teacher, Debbie Frazier believes that students feel proud after finishing the end of the year project because they can apply the wide range of programming skills they learned throughout the year to a project into which they put the same amount of time as a week of work at a job.
“Most of the students feel like they have learned a whole heck of alot because coming into the class because they could not have does this project at the beginning of the year,” Frazier said. “They feel very proud particularly when I point out to them that if they worked at a job, they worked one whole week of work, even though we spend one hour a day and spread it across five weeks.”
After students are able to share their end product, Frazier finds that the feedback that students get on their projects and the development of their ability to analyze the tools that they use are invaluable.
“It’s really neat for students to show other students, not only to get other students excited about what they could do in a really short time, but to get some feedback and really start thinking about the products we play with,” Frazier said.
The end of the year projects give JAVA and AP Computer Science students the opportunity to not only apply year-long concepts but also learn new topics. It is clearly a challenge for the students to put it together, but after completing the project, they leave the class as better programmers and with their heads held high.