ICS3U-D

Affan Zaman

16 year old web developer and graphic designer. 🇨🇦🇧🇩

Hello! I wanted to make a portfolio for this course, but of course, creating it from scratch. This website is created through SvelteKit (JavaScript framework), SCSS (CSS framework), and hosted through CloudFlare Pages. Here is all the work I've done over the course of this semester!


Career Movie

About

In this assignment, we were tasked with producing a video on a future career pathway we were interested in. The song had to represented who were are, and the clips and images needed to show relevance about the career. I decided on web development as I create many websites in my free time and work on online projects related to it, so it was the perfect decision. In the video, I used clips of many screen recordings of my own work and websites, revealing the process and thinking behind the field. I had also used a clip for a Fireship video on YouTube on the field.


What I learned

Doing this assignment taught me the salary, work required, education, and expectations required for a web developer. It made me evaluate if I truly wanted to pursue this career path. This assignment also taught me how to better use video editing software such as CapCut.




Hardware Mind Map

About

For this assignment, we were tasked with creating a mind map on hardware components with a partner. For this assignment, I worked with Yuvraj. We needed to follow a checklist of terms we must add and connect to our mind map. We then needed to write up an example and function of each term listed, as well as how they connected with each other through arrows. Yuvraj and I were able to successfully split the workload in half, him doing half of the terms while I worked on the other half and organization and connections of the mind map. We also needed to create a CPU-memory diagram to show the connections between different specific hardware components.


What I learned

This assignment taught me what groups certain terms are clustered in, such as busses and the CPU being under processing, or input and output being under peripherals. One of the things I remember most about this assignment was the different types of memory. Whenever I look at some storage device, I think about whether or not its optical, magnetic, or semiconductor. Creating the CPU diagram also taught me a lot about the internal structure of a computer and how data is passed around.




March 24th's Assignment - Python 1

Project Link


About

This assignment was made to test our abilities of comments and syntax, variables, and output to the console. We needed to create a program that stores 4 variables about information on ourselves. We had to ensure we had proper comments, well-documented code, and followed practices such as camelCasing. To go above and beyond, we can also opt in to add 3 extra features such as input, loops, if/else, etc. for a level 4+.


What I learned

Doing this assignment was relatively easy for me as it was basics of Python I had already learned myself the year prior. I decided to freshen up on classes, as it was a topic I wasn't so keen on. I decided to create a Person class that would store all the information about a person when initialized. The class allowed me to also create several methods that I can call on to print something to the terminal. I also learned how to use Python's dataclass attribute, which made writing classes a lot simpler. Overall, this assignment enabled me to learn more about Python through classes, a way of storing similar types of information in a blueprint.




April 11th's Assignment - Python 2

Project Link


About

This assignment, we were tasked to ask the user to enter in and store 2 geometric points, and then calculate and show the distance of the two points. Again, we needed to keep in mine user-friendliness, proper comments, documentation, coding practices, etc. And, like the last assignment, we had the option to add extra features to our code for a level 4.


What I learned

In this assignment, I created the tool for calculating the distance between two points. After the user had entered in the info, it would be saved into a separate .csv file with all their previous information. They can then look at the history in the program if they wanted to. This assignment taught me how to read and write from separate files, as well as the match and case blocks in Python.




Unit 2 Summative

Project Link

About

For this assignment, we needed to create a game that incorporated all the concepts we've learned to class prior to this. We must include input/output, variables, loops, if/else, math operations, well-documented code, user-proofing, and citations. We could also go beyond to a 4+ if we included audio, images, or reading and writing to a file.


What I learned

In this assignment, I actually had a one-month head-start, as I finished all my previous work early. In this time, I created a Python game of Tic-Tac-Toe, where the user gives input through algebraic notation and it renders it on the terminal. Through this, I was able to learn concepts such as matrixes (nested lists), map functions, and more. I was also able to incorporate save states through the pickle module, a skill I had learned from the previous assignment. However, after I finished my assignment, new rules were added. I needed to make the game relate to my culture or identity in some way. With this in mind, I created a function that made the user answer a question about myself or programming (my interest) in order to make a move in the Tic-Tac-Toe game. I used a JSON to store all my questions, answers, and the correct answer. This taught me how to deal with JSON in Python. This assignment also taught me the important of user-friendliness. I tried my best to ensure that every possibility was accounted for: already filled in move, invalid move, invalid board size, etc. I created warning signs for all of the possibilities I thought of. However, I failed to realize I should clear the board after errors, as to not push down the main game in the terminal. This is something I will keep in mind for future projects.




Final Python Summative



About

This assignment, we needed to use a program named Processing 4 to create either an animation, slideshow, math or science widget, or educational game. In this assignment, I decided on creating a math widget: a program to visualize parabolas and help convert. It would enable users to input a formula and see it on the left.


What I learned

In this assignment, I learned a lot about code organization, user input, and how annoying Processing can be. Throughout my time coding, I've faced numerous issues from the program, whether it be not supporting modules, importing files, not supporting the latest Python features, etc. It forced me to think about alternative solutions to my problems, such as recreating my own components instead of using a component library (button and textbox), or manually checking for valid user input instead of using the re module. This assignment also made me think about user interaction, and how to make the tool easier for the user to use. This assignment also taught me a lot on how classes should be made and its importance: without my button class, I would've had so many lines of just checking the mouse clicks alone, it would've become an absolute mess to deal with, especially since I had so many buttons.