This repository contains a website portfolio for top assignments completed for the ICS4U course.
6. Summarize your experience with Khan Academy.
Khan Academy provides a foundation for learning the basics of many subjects, including computer programming and computer science. More specifically, it provides learning material in regards to general computer science, web development, and data management. Although their content starts with the basics, providing visual and audible tutorials and guidance, it also allows for further engagement with more advanced concepts. For example, students can begin learning programming with the Intro to JS: Drawing & Animation course, then later apply their skills and enhance their learning with the Advanced JS: Games and Visualizations and Natural Simulations courses. Khan Academy also provides numerous resources at the end of each course to guide students towards additional learning.
In regards to my personal experiences with Khan Academy, I have learned a lot of material that I would not have personally. Although I had already completed Intro to JS: Drawing and Animation, Intro to HTML/CSS: Making Webpages, and Advanced JS: Games and Visualizations during the ICS3U course, I did find them to be a very useful and resourceful starting point for learning and practicing the languages and computer science concepts at the time, especially with its tutorials and projects. This year, I have continued on Khan Academy with learning additional content. This is most notable with data management using SQL, as well as computer science concepts such as asymptotic notation. Khan Academy has also taught me numerous languages and concepts that I have applied in my assignments and personal projects, including the summative portfolio and my Discord bot.
7. Summarize your experience with freeCodeCamp.
As with Khan Academy, freeCodeCamp provides an extensive resource for learning how to code. It similarly introduces the basics and continues with advanced programming, building towards the achievement of a 300-hour certification. That being said, freeCodeCamp teaches differently than Khan Academy. While Khan Academy provides guidance and a visual and audible tutorial that can be followed along, freeCodeCamp is textual and more concise. Given its more technical nature, freeCodeCamp may be more suitable towards those who already have prior experience with programming.
With regards to my experiences with freeCodeCamp, I have completed three modules: Basic JavaScript, ES6, and Object-Oriented Programming. I found these modules to be an excellent refresher on the foundations of JavaScript and object-oriented programming. With more advanced lessons compared to Khan Academy, I also learned of new syntax, such as the instanceof operator, and limitations imposed with older versions of JavaScript. In particular, the ES6 module has helped me better understand newer syntax and conventions that I have used in my Discord bot when following documentation, such as template literals. I appreciated the technical nature of its environment as it could be useful for future discussions and research.
10. How can art help guide you through learning about programming and computer science?
Art can guide many through learning about programming and computer science in numerous ways. Creating programs with art can be more engaging than, for example, creating text-based price calculators that is typical of beginner programming tutorials. Creating visual programs would not only keep students interested, but it also allows them to more easily experiment with coding. This would hopefully lead to better understanding and further learning as they think of more advanced visualizations. In addition, it may also appeal to those who may have not thought of trying programming and learning about computer science, especially art students.
Similarly, art has guided me through learning more about programming and computer science. As Khan Academy uses the ProcessingJS library to introduce JavaScript and coding to students, visual programming was the primary method that taught me the language and other computer science concepts. I found the use of the library and projects to be more appealing and engaging than the typical assignments that are primarily text-based. Most notably, visual programming has helped me learn and better understand the concept of object-oriented programming. This is important because it is a widely used concept in the industry, spanning multiple languages such as Java. The concept was eventually applied in detail in our 2D Raycasting Coding Challenge.
Michael Lam
ICS4U