*Note, the majority of this lesson is located within the Unit 5 Guide*
What do you notice/wonder about the code in this program?
I noticed that this program uses a 2D array to store grades through integer values. I wonder if three-dimensional arrays are possible within Java.
Summary
In this lesson, I learned how to create 2D arrays through the same process as 1D arrays, except for a second set of brackets. 2D arrays are simply nested 1D arrays that form columns and rows, acting as a Java data table. This can help store data that is stratified across two different categories.
*Note, the majority of this lesson is located within the Unit 5 Guide*
What do you notice/wonder about the code in this program?
I notice that this program calls and modifies elements within a 2D array. I wonder if there is a way you can call an entire column (without writing a new method).
Summary
In this lesson, I learned how to access rows and individual elements in a 2D array through the use of single brackets ([]) and double brackets ([][]) respectively. Additionally, I can assign values to these rows/elements to change their value. This allows me to use/handle more complex sets of data.
*Note, the majority of this lesson is located within the Unit 5 Guide*
What do you notice/wonder about the code in this program?
I noticed that this program uses nested for loops to traverse an array line by line (or row by row). I wonder how I can loop through column by column instead of row by row.
What are some questions we could answer by traversing through this data?
How many total desserts are there in each food truck? (Row traversal)
How many total of ___ dessert are there? (Column traversal)
Summary
In this lesson, I learned how to use nested for loops to traverse 2D arrays by row (left to right then top to bottom). This allows me to perform algorithms on the elements of a specific row, or on all of the elements of the 2D array.
*Note, the majority of this lesson is located within the Unit 5 Guide*
What do you notice/wonder about the code in this program?
I notice that this program uses nested for loops to loop through a 2D array by column. I wonder if there is a good way to achieve this without multiple for loops.
Summary
In this lesson, I learned how to use nested for loops to traverse 2D arrays by column (top to bottom then left to right). This allows me to perform algorithms on the elements of a specific column, or on all of the elements of the 2D array. With knowledge of both row-major and column-major traversal, I can create more complex algorithms that work with 2D arrays.
*Note, the majority of this lesson is located within the Unit 5 Guide*
What do you notice/wonder about the code in this program?
I noticed that this program uses nested enhanced for loops to traverse an array in a row-major fashion. I wonder how enhanced for loops can be used for column major traversal.
Why do you think the changes made to the loop variable affected the original object reference?
When an enhanced for loop is made with a primitive data type, an alias of that data type is created, so the original value is not affected. Conversely, when an enhanced for loop is made with a non-primitive data type, an alias of the pointer to that data is created. Because the pointer still "points" to the same location, any changes made to the loop variable will affect the original object reference.
Summary
In this lesson, I learned how to use nested enhanced for loops to traverse every row and element of a 2D array. This allows me to execute code on either a row of the 2D array or every element of that array. Additionally, I learned how primitive and non-primitive aliases can be used to either not modify or modify the original data.
*Note, the majority of this lesson is located within the Unit 5 Guide*
What do you notice/wonder about the code in this program?
I notice that this program uses the getPixel() and setRed/Green/Blue() methods to get and change the RGB values of a single pixel. I wonder if there is a way to apply a filter to an entire image without having to iterate through all pixels in an image.
What kind of image filters would you want to create?
One kind of image filter that I would want to create is a filter that is designed to automatically adjust the color gamut of an image based on a displays capabilities, such as displaying SDR and HDR content depending on a screens total nits.
Summary
In this lesson, I learned how to use the code.org image and pixel classes to access and change the value of individual pixels within images. This allows for the creation of image filters that alter the RGB values of each pixel within the image.
*Note, the majority of this lesson is located within the Unit 5 Guide*
What do you notice/wonder about the code in this program?
I noticed that the code uses indexOf() to find the location of a certain phrase within a string. I wonder is indexOf() can be used on other data types besides strings.
Summary
In this lesson, I integrated all of the concepts I learned throughout the unit (along with concepts from previous units) to create a complex algorithm with 2D arrays. I also learned how to use the indexOf() method to enhance the functionality of my 1D/2D array algorithms.
*Note, the majority of this lesson is located within the Unit 5 Guide*
What do you notice/wonder about the code in this program?
I noticed that this program utilized an algorithm that accessed and modified the color values of every pixel in an image. I wonder if there is a way to apply a filter to an image in code without having to access every pixel within it.
How has your perception of software engineering changed in this unit?
In this unit, some of the applied uses of software engineering, from image processing to data analysis have expanded my perception. I am constantly learning about different instances of software that help to improve the world around us.
How have your software engineering skills improved in this unit?
By learning to code 2D arrays and more complicated algorithms, my software engineering skills have grown significantly. This growth is best highlighted by a faster ability to comprehend code and the ability to more effectively compartmentalize different parts of a given program.
Summary
In this lesson, I learned how to traverse code.org image and pixel classes to create different filters that affect a variety of images. These image filters can be used in a variety of circumstances, from gaussian blurs to increased image saturation.
*Note, the majority of this lesson is located within the Unit 5 Guide*
Given the harmful impacts of deepfakes, should software engineers continue to develop them? Why or why not?
Fundamentally, the creation of deepfakes should be avoided. At practically all levels, deepfakes are deceiving, and have led to conflicts, disputes, and negative behaviors in many cases. Realistically though, the freedom of software engineering makes regulation of deepfakes nearly impossible, especially as artificial intelligence models become more ingrained into everyday life.
Summary
In this lesson, I integrated all of the concepts I learned throughout the unit to understand and interact with edge-detection algorithms using complex algorithm. Additionally, I learned about deep fakes and their potential benefits and harms.
*Note, the majority of this lesson is located within the Personal Narrative Project Planning Guide*
What do you notice about the project requirements and rubric?
I notice that the rubric requires the use of multiple arrays, including array algorithms. Additionally, to earn full credit, at least one image filter must be used.
What does success look like for this project?
For this project, success looks like fulfilling the criteria on the rubric while making sure that my project tells a meaningful narrative.
What barriers do you anticipate to achieving success on this project?
For this project, I expect that working around code.org's import limitations will be my largest barrier.
Summary
On the first day of the project, I began planning out my project, including what classes and methods I would need, along with my narrative project itself. My current plan for the project is a presentation that details the robots I have created throughout my time in robotics.
Summary
On day two, I built the overall layout for my program. This includes each of the class files for my program along with the txt files for each of the robot attributes.
Summary
TBD
*Note, the majority of this lesson is located within GrayscaleImage FRQ Handout*
Summary
In this FRQ, I used my knowledge of 2D arrays, image manipulation, and algorithms to successfully record and change the pixel brightness in an image. This FRQ incorporated information I learned from throughout this Unit, combining different aspects of my past knowledge into one coherent result.
Summary of the topics covered in Unit 5:
2D Arrays
Advanced Array Traversal/Algorithms
Modifying Images
String class methods
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.
Your trouble areas or topics I still have questions about:
While I feel like I don't have a specific trouble area, I would like to further improve my skills, especially on more complex algorithms.
A personal goal that will help improve my understanding of those trouble areas:
I think that continuing to solve CSA FRQs along with applying my knowledge from CSA to outside areas (ex: robotics) will help me further develop my skills in Java.