I went though a lot of algorithmic thinking during this project. Focusing on my major project (the design with capacitive sensor and short melodies), I would like to go over the steps in my problem solving process. I will describe two examples of when I followed this process during the project.
1. Defining the Problem: One problem I had was creating specific melodies, such as the PacMan song and the NFL theme song. I had these melodies in my head, but I didn't know how to get them coded and coming out of the piezo buzzer.
2. Exploration: I searched online and couldn't find it already done. So I found the sheet music for piano with names of notes. I also found a chart that shows the coded number tone that is played to create that note.
3. Implement: By comparing the two resources above, I was was to create a tune for my Arduino. I adjusted the notes and the duration of the notes as I saw best.
4. Test and Evaluate: I listened but it was never quite right the first time. There were a few things that needed adjusting, such as the durations of the notes, which were often too quick or too long.
5. Revise: By comparing my tune to a tune played on piano online, I was able to listen well enough to make adjustments. I made the adjustments and then went through the problem-solving process again and again until it sounded right.
1. Define: I had a capacitive touch that plays tones only. I had the melodies that played without capacitive touch. I wanted to combine them so the melodies played with capactive touch. When I combined the code, it did not work. The problem lied somewhere in the process of combining the two.
2. Explore: As a beginner programmer, I knew it was a matter of not understanding the code fully. I searched online to deepen my understanding. I also sought out advice from more experienced colleagues. Both sources gave me ideas.
3. Implement: I tried the ideas, one at a time.
4: Test/Evaluate: After I tried an idea, I asked myself what was different from the last time. This gave me insight into how to fix the problem.
5. Revise: Each time I tried something, I got closer and closer to a solution. Often, my problem got narrowed down and I was able to pinpoint specifics, which made it easier to go through the problem-solving process again. Eventually, the revision was over and I had solved my problems!