The only project required for this module was the Algorithm Exploration assignment, in which I had to explore algorithms that people use to solve cubes. Ultimately, I solved multiple cubes as I started understanding the steps, also known as algorithms, required to solve the cubes). When I finished the assignment, I realized that algorithms would help me complete coding assignments with higher quality. For example, I learned that establishing a structure on how my programs will function would improve my efficiency to complete my tasks while maintaining a proper understanding of the events that occur in each stage of the program. Also, it made it easier for me to make changes and find errors since I would know the location of the parts of the program. I will use the concepts that I learned in this course to explore other benefits of algorithms, such as their ability to improve the speed of a program by using fewer computer memory.
The concepts that I learned from this module, which I completed on Free Code Camp, included hyperlinks, user-inputs and ids/classes. While this module was a review from Khan Academy, I felt that I experienced a better learning experience on Free Code Camp than on Khan Academy. My reason is that the lessons on Free Code Camp were short and concise enough that I can still gain a high-quality understanding. Another benefit of this module is that I could apply the lessons to more advanced projects, which I would most likely complete outside this course. For example, the Free Code Camp project “Survey Form” is something I could be asked to complete outside of class and not Khan Academy projects, such as “Event Invite.” In general, I will use my experience with this module to develop applications that will be beneficial in real-life applications, such as developing websites where students can go to receive help in homework.
In this module, I learned that JavaScript is useful in modelling real-life actions or behaviour. More specifically, I learned how JavaScript incorporates common concepts in Physics such as vectors, forces, kinematics (velocity and acceleration), the behaviour of objects, and more. Thus, I applied these concepts in modelling motion of objects and simulate events that would occur in real life, like a fish reaction to predators (as evident in the project "Creature Colonies"). The knowledge that I learned and applied in this course will help me in my career because I can use these skills to code programs most useful in real-life applications, such as simulations that can predict weather conditions.
This module introduced me to JavaScript. In this module, I learned the basic syntax of JavaScript programming including defining variables, if/else statements, loops, and arrays. However, the most important concept that I learned from this module is object-oriented programming, a skill that allowed me to make my codes reusable and inheritable, increased my productivity and made troubleshooting easier. I used all the concepts in this module to perform well in the other modules and other languages, such as Java and C++. By using my strong understanding of basic concepts of JavaScript, I can learn more complicated JavaScript syntax, which will allow me to develop more demanding applications like complex video games.
This module is the place where I first learned about both HTML and CSS syntax. These syntaxes included paragraphs, lists, elements, and more. While the projects on this module were not overly complex, I was able to understand the basic structure of web pages as well as aspects that make websites/webpages aesthetically pleasing. The lessons from this module gave me the foundation to learn more advanced HTML coding, and construct more complex projects (as shown on the Free Code Camp projects). I will use the knowledge that I gained from this module to develop useful websites for my peers and society, such as educational websites.
In this module, I learned the importance of multiple programming languages in the development of any application. More specifically, I learned that jQuery, the world’s most popular JavaScript library, can be used along with HTML to create interactive websites. For example, I can use jQuery and HTML to make slides, buttons, and scene changes in my webpages. I will use this tool to develop applications that are more demanding for businesses. For example, many companies like Walmart want employees that can create interactive websites. The reason is that these websites allow users to find relevant information easily and feel comfortable while using the website.
The lessons from this module were a recap of the CSS lessons that I learned at Khan Academy. I preferred the lessons on Free Code Camp because I feel like the lessons on Free Code Camp were concise, and I was able to apply my knowledge of CSS in advanced projects. For example, I feel like projects such as the “Tribute Page” on Free Code Camp required me to use more advanced CSS syntax to develop my web page. I will use my lessons to create better-looking applications that will gain viewers' attention.
This module taught me that JavaScript can also be used to develop complex applications. In the module, I learned the usage of JavaScript in the creations of 3D shapes, transformations, score-count, and more to create simple games, such as side scroller and memory games. I will use this foundation of game development to learn how JavasCript can be used by professional game development studios such as Insomniac Games, Inc to create console games.
This module taught me the significance of the creation, sorting and manipulation of data. I learned that merely creating data is insufficient, and the order of data, through numerical or alphabetical order, is also valuable so that any user can understand the data. The manipulation of data, by updating/deleting certain rows of tables, is also necessary to maintain recent data and avoid misleading users. I will use my lessons from this module to improve the collection of data for my websites.
For this AP course, I only focussed on the Programming module, but it was very beneficial to me. I learned about the very basic concepts of programming, such as if/else statements, loops, the benefits of programming, the significance of pseudocode in the development of algorithms and more. The concepts from the module allowed me to understand the other modules on both Khan Academy and Free Code Camp, and I will continue to use my knowledge to become a better programmer and gain a high-level job position for major tech companies such as Facebook, Microsoft, and Google.