I2P (S) – 6 June – Evaluation of Intro to Programming REFLECTION

I2P Evaluation:

Throughout the course this year, I have learnt two very important things: 1. The Design Thinking Process and 2. Code. The Design Thinking Process is a good practice and skill, and it will benefit in the future, because it helps in the process of creating a successful product and handing it in on time.

Though using Python was initially challenging for me, as I had no previous experience with this coding language, I felt as if I had progressed in my Python skills because of the coding projects we have done, and I have learnt concepts and key terms that I wouldn’t have learnt if I did not take this class (ex. If, elif, else statements, while loops, variables). Furthermore, this class has made me become more immersed in the interest of programming, and I can say that I have learnt many useful skills from I2P this semester.

I2P (S) – 6 June – Flowchart, Psuedocode, Design Thinking Sentence etc.

Questionnare Link: https://docs.google.com/forms/d/e/1FAIpQLSezPJe7uDmWplrQY-1PHnWmo7uLEMyB_wt7rhDkF_fjgqH-AA/viewform?c=0&w=1

Flowchart:

 

Psuedocode:

  1. Research
  2. Acquire Arduino Materials (ex, wires, cables, LED lightbulbs)
  3. Attach LED lights, male-to-male wires to breadboard
  4. Attach to Arduino UNO
  5. Download Arduino App
  6. Input Code and run program
  7. Finish

Design Thinking Sentence:

Our school, HKIS (who) is facing a problem with student stress (problem) so we are building an Arduino LED sound sensor (action) to relieve stress off of students (project).

Three Website References:

Arduino (tutorial): https://www.arduino.cc/en/Tutorial/Blink

 

Arduino Code:

void setup() {

for (int pin=2; pin<14;pin++) {

pinMode (pin, OUTPUT);
}

}

void loop() {

int t = 20;

for (int i=2; i<14; i++) {

digitalWrite (i, HIGH);
delay (t);
digitalWrite (i+2, HIGH);
delay(t);
digitalWrite(i, LOW);
delay(t);
digitalWrite(i+1, LOW);
}

for(int i=13; i>1; i–) {
digitalWrite (i, HIGH);
delay(t);
digitalWrite (i-1, HIGH);
delay(t);
digitalWrite(i-2, HIGH);
delay(t);
digitalWrite(i, LOW);
delay(t);
digitalWrite(i-1, LOW);
}
}

 

I2P (S) – 4 June – Change of Idea (Final Project Reflection)

I2P (S) – 4 June – Change of Idea (Final Project Reflection)

Due to the limited time and complexity of my current project, I was allowed to alter the project to make it more feasible for me to create. Also I encountered a problem where the soldered LED lights would not light up, even if connected to an Arduino through the wires.

This led me to restart my project, and I was inspired by a Nisel Hewagemage’s Arduino YouTube video, and I based my project off of that.

I started to gather the equipment needed for the Arduino project, and researched and learned the Arduino code in order to activate the LED lights.

I2P (F) – 18 May – Final Project Reflection

Start of Building Progress:

Drawing the Cube Outline

In order to make the 4×4 LED cube, we started outlining the cubes on an A3 thick paper, we did this by drawing boxes approximately 1 inch apart.

Arduino Trial Run

Before we began our project, we tried using Arduino to familiarize ourself with it. We did so by connecting the Arduino to the computer, and using Arduino wires to enable an LED light to function, which would be a component in my LED cube final project.

 

I2P (F) – 14 May – Final Project Reflection

Ardunio: For this lesson, we started experimenting on the Arduino, and rewatching the video I plan to base my project on. When experimenting with the Arduino, I searched for the specific parts needed for my own project, and played around with it in order to familiarize myself with these parts in order to do well on the actual project.

Re-watching the video: In this lesson, I also re-watched the video that I will base my project on, so that I can memorize all the specific parts needed to build my 4×4 cube, and the order of steps needed to complete the project.

 

I2P (F) – 2 May – Final Project Questionnare

Design Thinking Sentence:

Our HKIS students are too competitive/taking courses that do not interest them so we are building a website regarding course selections for HKIS students to help them choose courses that do not give them too much stress/based on their own interests, also we are using a discussion forums to better understand students’ take on each course, and letting students fill checkboxes so that they may find a course(s) that fit them.

Mindmap (Ideas):

Course Selection —> App
—> Website
—> Discussion Forum

Equipment —> GitHub
—> PyCharm
—> Computer
 

 

 

 

I2P (F) – 29 Apr – Final Project Questionnare *questionnare results at the bottom

Planning Process:

Goal: Create an app/website that gives advice to students regarding course selections in their coming year, and what courses they should take based on 1) their interests, 2) their time schedule (will they be able to handle amount of coursework).

Problems Solved: 

  • Regret of taking too little/too many APs or honors classes
  • Stress from taking too many APs/honors classes
  • Find APs/honors classes based on their interests and course load.

10+ Questions:

Responses: 15 (unable to get pictures of interviewees)

  • Most students taking 1 AP course, 1-2 Honors classes
  • Most students Sophomores + Freshmen
  • All have some to a lot of stress
  • Most take classes because they like the subject/like to challenge themselves

RESULTS:

I2P (F) – Balance Board (Scratch/Python) – Tasks 4,5

Scratch:

In Scratch, I managed to create a timer through sequences and sprites provided in Scratch, though there were a few problems (ex. Stopwatch starts as soon as I ask for name, when I expect the stopwatch to start after the question “What is your name?” is asked).

Python (Task 5):

To create a stopwatch, I decided to use Tkinter as well as online resources to help me w/ my Python programming, and I learnt how stopwatches are created (thru variables like “counter”, “Start(label)”, “Stop( )”.

import tkinter as Tkinter

counter = -1
running = False
def counter_label(label):

def count():
   if running:
         global counter


         if counter==-1:
            display="Starting..."
         else:
            display=str(counter)

         label['text']=display


         label.after(1000, count)
         counter += 1


   count()


def Start(label):
   global running
   running=True
   counter_label(label)
   start['state']='disabled'
   stop['state']='normal'
   reset['state']='normal'


def Stop():
   global running
   start['state']='normal'
   stop['state']='disabled'
   reset['state']='normal'
   running = False


def Reset(label):
   global counter
   counter=-1


   if running==False:
      reset['state']='disabled'
      label['text']='Welcome!'


   else:
      label['text']='Starting...'

root = Tkinter.Tk()
root.title("Stopwatch")


import tkinter as Tkinter

counter = -1
running = False
def counter_label(label):
   def count():
      if running:
         global counter


         if counter==-1:
            display="Starting..."
         else:
            display=str(counter)

         label['text']=display


         label.after(1000, count)
         counter += 1


   count()

def Start(label):
   global running
   running=True
   counter_label(label)
   start['state']='disabled'
   stop['state']='normal'
   reset['state']='normal'


def Stop():
   global running
   start['state']='normal'
   stop['state']='disabled'
   reset['state']='normal'
   running = False


def Reset(label):
   global counter
   counter=-1


   if running==False:
      reset['state']='disabled'
      label['text']='Welcome!'


   else:
      label['text']='Starting...'

root = Tkinter.Tk()
root.title("Stopwatch")


root.minsize(width=250, height=70)
label = Tkinter.Label(root, text="Welcome!", fg="black", 
font="Verdana 30 bold")
label.pack()
start = Tkinter.Button(root, text='Start',
width=15, command=lambda:Start(label))
stop = Tkinter.Button(root, text='Stop',
width=15, state='disabled', command=Stop)
reset = Tkinter.Button(root, text='Reset',
width=15, state='disabled', command=lambda:Reset(label))
start.pack()
stop.pack()
reset.pack()
root.mainloop()