Open rachit-j opened 7 months ago
Peer Grading - Colin grading Rachit
Demonstrates mastery of the subject. Reflections, concise and clear code, with testing.
Really brief code showing he know how to write efficient code. Testing is separated which is nice.
Demonstrates a mastery of writing efficient and convince code in general. The code is written very well and it works as intended. Reflection demonstrates that Rachit understands the task at hand and has a deep understanding of Java in general.
Used iteration to go through each letter, Then, Rachit checks using an if-else block what to do and appends the correct char to 'r.' This is a simple solution that works. Also has a testing method.
Reflection shows Rachit understands the nature of the question at its most involved level. Completed all parts with working and well written code. I like how in depth the testing was to confirm it worked to the user.
Same as the other FRQs, in depth reflection paired with well written code shows Rachit has a good understanding of Java.
Extremely impressive integration with project. Every single FRQ was intergraded in a complete and creative way that shows Rachit really understand the code and he knows its uses in a PBL environment. I especially liked the implementation with FRQ 3, it was very creative and well done. This is truly above and beyond work, very impressive. #4 was also great with cool connection to a custom game.
FRQ 1 - Arrays and ArrayLists
This FRQ was focused on ArrayLists, 1D arrays, and 2D arrays. In our project, we use many arrays in many different places for our project to function. We use 2D arrays in our project to keep track of health and damage in our game.
In Person.java
Here, we use a 2D array to store our character's base stats. As a sidenote, we also use an ArrayList to keep and maintain a base inventory.
In PersonApiController.java
Here, we use our 2D array to calculate the Level Stats based on the 2D array. Using this array, we are able to determine the base stats and determine the matching account level from them.
Our use of ArrayLists is similar to the FRQ in the sense that it uses integers and it has a 2D array, as well as including an ArrayList, and we have a lot of 1D arrays in our project.
Arrays and ArrayLists are both extremely important aspects of Java that we need to learn how to use, since it comes up multiple times in many situations. We have many more examples of Arrays and ArrayLists, however, for brevity, we have decided to showcase one. We use Arrays and ArrayLists all the time, and this FRQ as well as our integration into our project demonstrates how essential these aspects are to our success not only in Java, but in many other aspects of programming where similar ideas can be taken up.
FRQ 2 - Classes
This problem asked us to create a word guessing game, similar to the Wordle game from the New York Times. The player was given a word and then asked to guess it, using key symbols to determine what they had to do next. This was accomplished using classes to give the different hints, which is what we used in our project. Here is an example of our Question class:
This class in our project is similar to the one in the FRQ in which we use a class to get and set variables (the
@Column
allows us to set the variables from the SQLite table that we load), which is important to our project. Moreover, we have our Entity setter class:This class in our project does something similar to the above class, but for our entities in our game when we developed it on the backend. Overall, our class structure is extremely important to the success of our project.
FRQ 3 - 2D Arrays + Method and Control Structures
This FRQ asked about 2D arrays, and then went into specifics about sparse arrays. While we do not use sparse arrays in our project, we use many principles talked about arrays and we use 2D arrays in our project, as showcased by FRQ 1:
In Person.java
Here, we use a 2D array to store our character's base stats. As a sidenote, we also use an ArrayList to keep and maintain a base inventory.
In PersonApiController.java
While we do not use sparse arrays, we use a lot of the same principles that we need from 2D arrays, such as value retrieval and decisions based on the value, which can be shown by our implementation of our 2D statsArray into our 1D baseStats, and then forwarding that to the actual person object.
2D arrays are efficient ways to store data, however, with a game structure like ours, we seldom see the chance to use them, as most of our data is more efficiently used in 1D arrays or ArrayLists. Although this may be the case, we still see the use for them and incorporate them into our project, and we use the principles we learn from this FRQ to improve the efficiency and scalability of our project.
FRQ 4 - Methods and Control Structures
This FRQ talks about the creation of interfaces and how to apply them to certain classes. These interfaces have certain methods that we need to use in our classes. In our project, we use a lot of inheritance to make sure that we can scale our project, as was the intended goal. We know that we are going to have to create multiple instances of the same format of game, so we need to use a lot of class extension. Here are a couple examples:
This code runs our gamepanel by implementing certain classes that allow our gamepanel to have different properties that are pulled through inheritance from different classes. Another example is our PersonJPA repository:
This query allows us to get all the information about the person that we need, and we set up each person through this query that pulls methods from other classes to be more efficient and effective. Either way, both examples showcase the importance of streamlining code through inheritance, which allows our code to be more cohesive, efficient, and unified.