*Note, the majority of this lesson is located within the Unit 7 Guide*
What words and phrases are in the rubric that aligns with your list of criteria?
Some key words/phrases include: inheritance, polymorphism, overloaded, overridden, and ArrayList. Each of these phrases incorporates a different technical concept in Java that is necessary to fulfill the criteria of this project.
Summary
In this lesson, I started to plan out my project for the end of this unit and reviewed the different parts of the unit. Additionally, I learned about the use of backlogs and benchmarks to keep track of my progress through different (code) projects. This helps me stay on track and on time with my coding projects, allowing for greater success overall.
*Note, the majority of this lesson is located within the Unit 7 Guide*
What do you notice/wonder about each solution?
I notice that both solutions utilize numbers either in String (object) form or integer (primitive) form. I wonder if there are any other possible solutions besides using Strings or integers alone.
What do you notice/wonder about the code in this program?
In this program, I noticed that one object is passed as a parameter in another. I wonder how the logic of how parameterized objects work in java.
What does the this keyword do when it is used as a parameter?
When the this keyword is used as a parameter, the object it is contained in is passed itself.
How is this similar to how we have used the this keyword before? How is it different?
While we have used this.somethingElse to reference methods/variables in an object, we have never actually used the this keyword as a parameter or to pass an object itself.
Think about an app or program you use every day. Who are the end users for that app or program?
One program I use on a daily basis is Chief Delphi. As a robotic forum, the primary end users for Chief Delphi are robotics students, mentors, and coaches.
What might a user story be for that app or program?
A user story for Chief Delphi might be: A helpful forum that allows me to learn more and ask questions about robotics, STEM, FIRST, and anything else related.
Summary
In this lesson, I learned how to pass object references as parameters, either by directly calling the object name, or through the use of the this keyword. By passing objects into methods, constructors, or any other circumstance where it's required, I am able to create a new level of nested logic that allows for a more complex control structure overall.
*Note, the majority of this lesson is located within the Unit 7 Guide*
What do you notice/wonder about the code in this program?
I noticed that the code in this program uses the play method for multiple object types. I wonder if there is a way to accept multiple object types for one method.
Summary
In this lesson, I learned how to create overloaded methods by creating methods with the same name but different parameters to allow for different functionality in the method based on what the parameters are. This allows for more complex, yet efficient code.
*Note, the majority of this lesson is located within the Unit 7 Guide*
What do you notice/wonder about the code in this program?
I noticed that the code in this program is unable to call a private method from outside of the class that the method exists in, much like a private variable inside of a class. I wonder if is possible to have an overloaded public version of a method if another version of it is private.
Summary
In this lesson, I learned how to use private methods by simply writing "private" in the method header. This prevents the method from being used from outside of the class it is written in. Alongside simplifying the code structure overall, this also ensures a greater level of security by encapsulating certain information and functionality into a specific class.
*Note, the majority of this lesson is located within the Unit 7 Guide*
What do you notice/wonder about the code in this program?
I noticed that the code in this program creates multiple versions of the getLikes method for different objects. I wonder if there is a different way to achieve the same result with the use of only one method.
Summary
In this lesson, I learned how to override methods to allow for different functionality across subclasses when a method with the same name as a superclass is called. This allows for greater functionality in terms of parallel method structures.
*Note, the majority of this lesson is located within the Creative Coding with The Theater Project Planning Guide*
Summary
In this lesson, I learned about the uses of AI to generate images, art, and other content. Additionally, I learned about the positive and negative impacts of the use of AI, including its effects on personal intellectual property. Also in this lesson, I finished the brainstorming/early project development stages of my creative coding project for this unit.
How is repetition used in fractal art?
In fractal art, repetition is used through a seemingly infinite recursive iteration of a specific visual, creating fractals. In fractals, zooming in will simply create the same image repeatedly, as if the image was made from many of itself.
Summary
In this lesson, I learned about the use of recursion in Java, including the use of base cases and recursive calls to create recursive methods and algorithms. This allows me to create a recursive control structure that repeatedly performs different functions until a specified condition is met.
*Note, the majority of this lesson is located within the Creative Coding with The Theater Project Planning Guide*
Summary
In this lesson, I laid out the steps I needed to complete throughout the rest of this project, along with starting to draft out a framework for my code. I used UML diagrams to define some of my class-hierarchy within my code, defining what methods each of these classes should include. Then, I wrote some basic pseudocode for a couple methods I can implement in Java later on.
*Note, the majority of this lesson is located within the Unit 7 Guide*
Summary
In this lesson, I learned about the potential impacts of software bugs and vulnerabilities and their potential impacts. I also learned about how to maintain system reliability, including the use of open-source code as a collaborative approach to maintain a codebase. Lastly, I applied some of these concepts to understand some past real-world scenarios in which security vulnerabilities has posed an issue, compromising system reliability.
*Note, the majority of this lesson is located within the Creative Coding with The Theater Project Planning Guide*
Summary
On the first day of the project, the original plan was to use the information I brainstormed in a peer-review process to get some initial input on my code. Sadly, I was absent on day one of the project, so I instead used this day as extra-work time to start off my project. On this day compiled all of my imagery and audio that I would be using throughout my project, and laid out my class structure that I would write later.
Summary
On day two, I began to implement some of the methods I had first created in the project planning guide. More specifically, I worked on coding the different frames of the robot animation, all while attempting to keep my code efficient.
Summary
On the last day of the project, I finished the animation in its entirety. This included writing all of the animation algorithms throughout my classes and combining them into one concrete final project. The full animation runs through a shortened version of a robot-match, highlighting a robot's ability to score points throughout the match. To further enhance this animation, I also included audio cues at different parts of the match.
What were you confident about?
More than anything else, I was confident about traversing, accessing, and modifying ArrayLists, especially in complex situations.
Are there some things you left out that could have brought up your score?
The primary thing that could have brought up my score was taking more time to read what each section of the FRQ was asking. In both cases, I did not take as much time as I should have, resulting in lost points.
Summary
In this FRQ, I used my knowledge of ArrayLists and String methods, along with all of the other information I have learned thus far in CSA to complete an FRQ. This FRQ managed an ArrayList of schedules temperature changes, requiring me to write methods to add and remove items from the ArrayList.
Summary of the topics covered in Unit 5:
ArrayLists
String Methods
Wrapper Classes
Successes or topics I feel I understand well:
Overall, I feel that I have a fairly strong grasp on most, if not all of the topics in this unit, particularly ArrayLists and String Methods.
Your trouble areas or topics I still have questions about:
While I feel like I don't have a specific trouble area, I want to further improve my ability to use ArrayLists in complex situations, paying close attention
to fulfill the pre and postconditions of any given project or assignment.
A personal goal that will help improve my understanding of those trouble areas:
I think that continuing to practice CSA FRQs along with applying my knowledge from CSA in other areas like Robotics will help me improve my skills. Additionally, by looking at previous example solutions for the different FRQs I have completed so far, I can further my knowledge in each of those FRQs' content areas.