Hey there, thanks for visiting my page! Before I begin, I'd like to introduce myself. My name is Naura Halima Nasution, but you can just call me Naura. I am 15 years old and I currently attend Sekolah Cikal Lebak Bulus. My interests include science, mathematics, literature, public speaking, sports, and playing musical instruments.
I have always been drawn to the trope of hackers in films; the way they were able to break into a highly encrypted system in less than ten seconds or how they were always a valuable asset. When I found out that the concept of computer science had a lot to do with mathematics, I was intrigued. As a result of this, I chose to develop my programming skills in order to expand my knowledge of computer science.
That said, welcome to my project titled A reflection of the future! I am absolutely thrilled to share my journey with you, from my naive self writing overly ambitious plans to all the challenges I had to face, my project was a profound experience and I hope you could learn a thing or two from my adventure. Enjoy!
✸ Specific: I seek to adopt and enrich my programming skills, to do so, I will innovate a mirror by turning it into a smart mirror. A smart mirror is a two-way mirror with a display behind its glass, it has the appearance of a regular mirror but with additional features. The newly added features are widgets that enable you to look at upcoming holidays, the latest news, and even the current weather, all while looking into your reflection in the mirror. Thus, it can be used as a supplementary device for daily needs. Due to the current state of the global pandemic, this project will be conducted at home. Additionally, all of the materials are obtainable since they can be ordered online, and the product is not dependent on being completed in a specific location.
✸ Measurable: The most effective methods I can utilize to keep track of my progress are to-do lists i.e. productivity apps, a process journal, weekly objectives, and lastly, clear and direct communication with my supervisor. My indicators of success are the completion of the product and when I've gained more exposure and new insight into the programming world.
✸ Achievable: Three crucial steps I must undergo to execute my project are collecting data/investigation, building my mirror, and reflection.
Investigation: For the investigation process, I hope to record, collect, and analyze information from varied resources, this includes expert interviews, university students, online forums, and the internet in general. I believe it is imperative to gather various perspectives and knowledge on a certain field to learn efficiently, which is why I consider this a very crucial first step in developing my product.
Building my mirror: I would have to build my product with assistance from the information I have obtained in the Investigation process. This process will require a lot of materials as well as procedures, which will have to be conducted in an efficient manner.
Reflection: No project is ever complete without taking time to look back on your progress and reflect. This is an adequate way for me to conclude my journey and evaluate the challenges I will face along the way as well as the exciting parts of my project.
✸ Realistic: I chose to develop my programming skills in order to expand my knowledge of computer science so that I could familiarize myself with it. Although it seems like an established goal, I do not have high expectations in accomplishing this goal, perfecting this skill is not my main intention. What matters to me is how I will gain exposure to this new world of code and syntax, a glimpse of a new field that I was only aware of now.
✸ Time-bound: I aim to start this project according to both the school timeline and the personal timeline that I have made for myself. I will formulate weekly deadlines in order to keep track of my progress, this is all in hopes of it being completed by the start of the new year. I will know that I have reached my goal once my mirror is finished and ready to be used with its futuristic visuals and additional widgets.
✸ Research: I believe that research is a crucial skill for a more progressive future, in view of the fact that it enables students to collect, analyze, and interpret data. Research expands your viewpoint as a result of looking at the aforementioned data from multiple and distinct perspectives. Aside from that, it can also help develop their understanding of complex ideas in their daily lives. Every field of study or life, in general, must have some implementation of research.
✸ Self-management: Self-management is equally important to research as it is the core principle of your day-to-day life, from staying organized and meeting deadlines to socializing with your friends. Additionally, self-management is also apparent in how you deal with challenges, for instance, how you persist in difficult situations. Lastly, sharpening my self-management skills will allow me to identify the causes of failure and how to overcome them.
I decided to interview an IT consultant named Mr. Mark, whose contact I received from my science teacher, Miss Lita, and my supervisor, Miss Tari. Since I had to divide my time between this project and other assignments, it would have been a hassle to search for a potential candidate for the primary source through the internet. Aside from that, Mr. Mark was associated with my science teacher, utterly making him an accessible source. Additionally, he was fluent in English, which was advantageous for the interview as it made the whole process a lot simpler.
After receiving his contact, I texted Mr. Mark in order to arrange a meeting for the interview with him.
The questions I asked during the interview were regarding
His experience with coding (i.e. coding projects)
His programming journey
How to get started with coding
Tips for how to improve and learn efficiently
Moreover, I held a casual conversation with a university student who is majoring in Computer Science at Universitas Indonesia, Fayza Azzahra, for tips and extra resources on computing in Python.
Such interview provided me with data regarding the common difficulties in programming. My interviewee also made it clear that it is important to start with the basics of coding before trying out anything else. After the interview, I used the O.P.V.L. method to analyze the credibility and value of the interviewee. I processed my data and reported my results in this method by analyzing the source’s relevance i.e. origin, purpose, value, and limitation, to prove its validity and reliability.
I was able to seek a range of perspectives from multiple and varied sources from these two sources since I gathered different aspects of programming, whether it was about the intricacy or methods. Overall, I cultivated my research skills from the aforementioned sources and data.
I wanted to make something that could show people how programming had no boundaries in terms of creativity. I thought that creating an Instagram account or blog would limit me from doing this, so I decided to build a smart mirror.
The base of the mirror is the Raspberry Pi, a portable computer that was made to teach children how to code, though it can be used for other purposes due to its versatility. Another foundation of the product is MagicMirror, which can be installed within the Raspberry Pi, an open-source software that runs the smart mirror, it contains a lot of built-in modules i.e. a piece of code that can be used in different systems, that have already been provided by third parties and is very convenient for its set up.
The materials I used for this project were:
Keyboard
Mouse
Raspberry Pi 4
Raspberry Pi case
SD card
Wall adapter
USB-C
Monitor
Micro HDMI cord
Firstly, I purchased the monitor. I also contacted a third party for the two-way mirror because of how difficult it was to find it in Indonesian online stores, i.e Tokopedia. The only ones available were from Amazon with extravagant prices for both the product and shipping, not to mention the risk of the package getting lost. The other materials were quite easy to obtain as I faced little to no difficulty in acquiring them. Afterwards, I conducted the first trial for the making of my smart mirror. I put together all the materials and plugged the computer into the monitor and began setting up the Raspberry Pi. I copied the Raspbian zip file I downloaded from the Raspberry Pi website to an SD card.
Subsequently, I input the line of code that would download and open the MagicMirror software. Thankfully, the installation was successful and complete, however, there were some errors that occurred in the code such as missing properties that were crucial for the software to run properly.
Thereafter, I held a second and third trial to fix the issue that arose from the previous one. These were the most challenging parts of my entire project since I had little to no idea as to how I was supposed to solve the issue. Nonetheless, I managed to persist through the challenge and persevere by creating alternate solutions. The first thing I did was erase the contents of the SD card and reinstalled the entire Raspbian zip file again. I repeated this process several times since I kept making the same mistake per trial. Eventually, I found a solution that would have helped me overcome the matter from the start, here I was able to practice analyzing and attributing causes of failure, more detail regarding this discovery will be in the next section.
I wanted to customize the widgets that were displayed on the monitor so I rewrote the default modules in the module configuration. Still, my product was not complete yet thanks to another technical difficulty I faced during this step. I pasted the wrong link for the calendar and news widget, which caused the entire software to become unresponsive. Here, I was able to identify the cause of the issue which was the format of the calendar and news links.
The final step of the building process of the mirror was assembling the mirror with the frame and monitor. The mirror I received from the third party was merged with the frame, which made the process a lot easier since I only needed to attach the monitor to the frame.
Unfortunately, a lot of things did not go according to plan, namely the budgeting plan I wrote. Initially, I conducted brief research to predict how much the entire project will cost, however, I later found out that it was too rash and improbable. I originally planned to purchase secondhand materials (the monitor and the two-way mirror) and the Raspberry Pi for the cheapest price, but upon browsing for said computer in online shops, I found that it was mostly sold for at least IDR 1 million. Overall, I went over budget due to how much the materials ended up costing.
Moreover, I underestimated the difficulty of the project. It turns out that learning Python in a short amount of time is more challenging than I initially thought. Because of that, I resorted to using a preexisting line of code to start and set up the software. Ultimately, if I was given the opportunity to do this project again, I would take a different approach by researching more thoroughly and setting more realistic goals.
This project left a huge impact on me as it enabled me to grow in terms of skill and experience. There were multiple instances where I had to force myself to do certain things that weren’t the most enjoyable but still needed to be done for the sake of the project. Regardless of that, I am still grateful that I got to do a project that was so personal to me, one that helped strengthen my newly found interest that I am now immensely passionate about. Thankfully, I was able to develop my target ATL skills, which have left a lasting impact on me as a student by reason of how it was imperative for the project’s completion. I have gained a lot of new abilities ranging from verifying resources to being disciplined in fulfilling objectives.
My biggest takeaway from doing this project has got to be the inconsistencies, constant improvisation, and difficult situations I had to face. Fortunately, I was able to persevere and endure the pressure, which led to the completion of my mirror. As a result of this, I realize that the best way for me to fully appreciate my product is to use it as motivation and a reminder to persist and grow as a learner, especially in the field of computer science. Overall this will help honor my efforts and inspire me to keep moving forward.