Programming Final (S)

  1. Design Thinking Questionnaire – results
    Questionnaire for Students:
    https://goo.gl/forms/0LQ2LJcHEjvhizJt2
    Questionnaire for Teachers
    https://goo.gl/forms/rJFELint4BwmSS1p1
    Photos and quotes from surveyed people:
    https://docs.google.com/a/hkis.edu.hk/document/d/1AdZJCFCuz5WjS5jbhDhVgOYgcCBd9xGM2AEJQBiBXpU/edit?usp=sharingResults from 5 Teachers Surveyed:

    Results from 13 Students Surveyed:

Analysis of results:

The general trend suggests that students at HKIS have a stress problem, and that teachers agree that their students do.  Besides two students who stated HKIS level was at an intermediate level, all surveyed students responded that HKIS has a high stress level. In addition, majorities affirmed that they had experienced stress levels that had affected their physical well being, as well as discussed experiencing symptoms of depression. Teachers surveyed generally agreed that students had to deal with stress levels, as well as that the “lack of focus on mental health in contemporary education” was a concern for them. All responded that students should be taught more about their mental health. In terms of HKIS teaching staff’s own mental health standards, the data reveals that the amount of teachers currently practicing mental health practices is varied, and could use room for improvement. All teachers responded positively for more being done to raise mental health standards in HKIS.  More research done on the Hong Kong’s education system sees it ranked as the world’s third best education with a number of holistic measures, however, it also consistently develops a poor mental health record – unable to reconcile it’s high pressure environment of studying and testing with healthy behaviours in youth. This represents a grave threat to Hong Kong students, many of whom can report depression in their formative schooling. Adults too can be implicated in the high pressure environment of Hong Kong, and many can incur inordinate amounts of stress in the “live fast” workplace of Hong Kong, over extending themselves personally, and not considering their personal and mental states in doing so.

2. Design Thinking Sentence to summarise chosen idea

Given our process to empathise with the needs and wants of both HKIS teachers and students has statistically evidenced the need for use and information on stress relieving and mental health boosting techniques in HKIS society, we plan to create a computer and mobile based app with leveled guided and non-guided meditation practices, to be used by both teachers and students, in attempt to educate and inform individual users about the workings of their brain with in-app information, as well as provide them with an opportunity to meditate (in different ways) to decrease stress levels and lead to clearer thinking. The purposes of this app are to explicitly increase mental health awareness, give faculty and students a fast and efficient multi-optioned app to increase mental health levels through preforming the tried and tested art of meditation, and in turn, increase the mental health level of HKIS as a whole.

3. A list of equipment needed for project-

Computer with Tkinter, Pygame, and MIT App Inventor installed

4,   Flow chart

5. Algorithm and Pseudo Code

Algorithm:

Pseudo Code for Python:
I. User opens our code and is presented with menu screen with an introduction of the app, the title of the app, a description of what the app is all about and then 6 buttons which all lead to the different types of meditation (these types of meditation include Transcendental Meditation, Heart Rhythm Meditation, Mindfulness, Guided Visualizations, Zen, and Kundalini)

II. Each type of meditation has printed a difficulty level based on the different things that you might have the perform during that meditation set. There will also be an END button at the really bottom, which will allow users to exit the app if they wish to.

III. After the user clicks on one of the meditations, they are presented with a formatted play section. For example, if the user wishes to do Transcendental Meditation they will get a picture on how to perform transcendental meditation a brief summary and a how-to on transcendental meditation. They will also then have the option to start the music, pause the music, unpause the music, and stop the music.

Notes: Even though our final goal is to keep each of the music files to under 5 minutes, the user has the choice the cut the music short in case they would like to move on or hear something different. This then follows many of the clients request which is to be able to clam down using the app in the shortest time period possible.

6. Code project with at least 3 references (sited)

Python Code + References: 

https://docs.google.com/document/d/1c2RY7K3t8jIVWpGgRlL-yqNPL39ez3nspzLxTbmEBwc/edit

https://drive.google.com/drive/folders/1Foo_w4Vz5U0x-7j7hB7mm-J4h0lm1ogc?usp=sharing (Link to music files)

MIT App Inventor Code Version:

The MIT App Inventor Code version is simple as we tried to make the code serve as functioning model, not the bulk of our focus in demonstrating our coding ability.  Here are some of the pictures of the different screens on the different blocks of code that we used for each of the different screens. Besides servicing as a model for our later code, we later discovered that the MIT App Inventor was great to develop our expectations for the user interface we had hoped to employ with Python. Below, you can the screenshots showing our code in the MIT APP inventor code that we integrated and experimented with Graphic and text basic user interface we would have liked to have employed with the Python version, however, could not, due to constraints of time and ability.

  1. So first of all, when the user opens up the app, they will be greeted upon with a menu screen with a brief information of the APP that they are about to use, a picture and the menu selection buttons.
  2. Each of the buttons will lead to a different screen. For example, if you were to click on the Transcendental Meditation Page (TM) you will be lead to a page with a TM picture, some background information about it and three buttons, which include back to menu, start music, and pause music buttons. This is the same outline for all of the other five types of meditation. Since I did not have an Andriod phone, I used the emulator to be able to showcase the MIT APP inventor version of this code.

Here is the menu screen and the code for the menu screen

 

Here is one example of what a screen might look like. As said before there are 5 other ones that look exactly like this. There is a title, a picture, an explanation, and 3 buttons. And the block code just like scratch is as follows: the back to menu button makes the screen go back to screen one, which is the menu screen. The start music button starts the music called TM_Music which is a non visible component, which is at the bottom of the screen. There is also a pause button, which pauses the TM_Music as said in the blocks. This pause button was added through the request of our clients and the videos that there should be a pause button and keeping in mind that not everyone wants to listen to the whole piece.

7. Images / video introducing your project and a working prototype (Please include: titles, music/VO and upload to You Tube to share the video)

Mit App Inventor Video:

Python Working Video:

Python Objected Oriented Programming Version with Tkinter:

OOP or objected oriented programming is  a type of programming that objects contain information. Programming this language was difficult even before this form of programming was utilized – me and Stephen had to carefully use skills learnt in the past, plus be confident and easy in applying new knowledge to add digital media to the Tkinter.

Our work in using the MIT App Inventor as a base paid off, however, as we could use this code to extend our skills and make the new necessary code.

In OOP, computer programs are designed by making them out of objects that interact with one another. And this could not have been possible without the help of the the users that we interviewed throughout this process. Our code was really basic at first, but the as you can see in the next section where two random people are interviewed. They said that the general code was good, but then there could have been some small improvements, so we made those improvements. 

 

Python Objected Oriented Programming Version with Tkinter after feedback

OOP or objected oriented programming is  a type of programming that objects contain information. This was the hardest part in our project. But this was manageable since we had the mit app inventor version to base the code off of, which was useful. In OOP, computer programs are designed by making them out of objects that interact with one another. And this could not have been possible without the help of the the users that we interviewed throughout this process. Our code was really basic at first, but the as you can see in the next section where two random people are interviewed. They said that the general code was good, but then there could have been some small improvements, so we made those improvements as stated in the videos and also the informal interviews with the users. For example, the pause button, etc.

One thing to note during the python test runs was that we were somehow not really able to add pictures other than the trans.gif file.

Screenshot of final code with all of the files into one folder.

This code is explained in the python explanation code below. You may also read the comments placed.

Additional Information for Python (Courtesy of Yuto;)

Although the video does not show it because it is not necessary, we added some preview information so that the users knew what to do. Here are some picture of us doing so. Everything else is the same.

Feedback from our clients

I interviewed two people and their replies towards the project were pretty god.

The first person I interviewed was Dhruv and this is a video of him explain his feedback towards the code. He is a Junior, 11th grader

The second person I interviewed was Arthur and this is a video of him explaining his feedback towards the code. He is a Freshman, 9th grader.

Video Player

00:00
00:03
Video Player

00:00
00:08

Through the feedback that I gained in the two videos most of their comments were good the only things that they had a problem was the video was a bit too long and that there should be a pause button. So I added those things to both the python version and the MIT App Inventor version.

Additional stuff in python tkiter

Although the video does not show it because it is not necessary, we added some preview information so that the users knew what to do. Here are some picture of us doing so. Everything else is the same.

Feedback from our clients

I interviewed two people and their replies towards the project were pretty god.

The first person I interviewed was Dhruv and this is a video of him explain his feedback towards the code. He is a Junior, 11th grader

The second person I interviewed was Arthur and this is a video of him explaining his feedback towards the code. He is a Freshman, 9th grader.

Video Player

00:00
00:03
Video Player

00:00
00:08

Through the feedback that I gained in the two videos most of their comments were good the only things that they had a problem was the video was a bit too long and that there should be a pause button. So I added those things to both the python version and the MIT App Inventor version.

8. Testing Document – showing various tests over the project creation

https://docs.google.com/document/d/1lowawcWoWDj_HiUeqXT0mOebA4anKrAEtcxTpDaHsRw/edit

9. Evaluation of final summative project and and your own reflection in I2P this semester

This final summative project indicated a lot to me about the nature of a coder’s skill set and ability to think – an integral part of the aim of the class and an integral part of what coding is based on. It is interesting to me the behavioural shifts that I have observed in my peers, as well as in my self, from when I started and when I stopped coding; I had always heard that coding, beyond giving you an ability to communicate with and utilise technology to build useful and amazing products, also teaches you how to think. This class put this in full perspective for me, and this final project cemented it, because it gave a chance for great independence and expression of creativity. When I was doing Python-based Tknter programming, for example, I had to encounter many a problem that I didn’t know how to face, and that stumped my younger project mates as well. It was at this point that I grew to have an awareness of the importance of my mind’s development in the process; I simply took a deep breath, searched online, and tried various pathways till I fixed our groups issue. When we were attempting to integrate music and imagery into our Python Tknter code, for example, the team was struggling quite a bit; we had no idea what subprograms/”modules” to install to make our code function. Stephen consulted Ms. Mok, and although she tried to assist us, it was very difficult for all of us to find the answer. This was a very important time for me in terms of employing my own skill and thinking, and what I decided to do was turn to the web and quickly search up three or four resources on how to put images into our Tkinter program. Not all of them worked, but finally,  I managed to install a module called “Pillow” that could function our code. It was while I was writing this code and going through this trial and error process that I realised the importance of this class was in changing my mindset, as there was no way I would have been as relaxed and able to adapt to a challenge when this class started – in fact, an issue which took me around 30 minutes to resolve now, might have bogged me down for a whole class period or more before, simply by virtue of my thought process being muddled by frustration and not clarity and willingness to reapply myself.  All of this is centrally important in determining in how this class, and this project, have impacted me and my learning. I have grown to learn that with basic syntax understood in my mental toolkit, I should be able to both linearly accomplish tasks, and cyclically solve issues; coding is not math where there are correct and incorrect answers – everything is open to interpretation, and issues require innovation, and clear thinking.

10. Design Thinking Process Presentation 

https://docs.google.com/a/hkis.edu.hk/presentation/d/1S3oru92mwbCND_bC3_kVyXAOYan0BXsMnh6bqpS7-2Y/edit?usp=sharing\

Questionnaire – (Final – In Progress)

Step 1: Prepare a questionnaire

Step 2: Collect data, compile data and analyse the data

Step 3:

Analysis of results:

The general trend suggests that students at HKIS have a stress problem, and that teachers agree that their students do.  Besides two students who stated HKIS level was at an intermediate level, all surveyed students responded that HKIS has a high stress level. In addition, majorities affirmed that they had experienced stress levels that had affected their physical well being, as well as discussed experiencing symptoms of depression. Teachers surveyed generally agreed that students had to deal with stress levels, as well as that the “lack of focus on mental health in contemporary education” was a concern for them. All responded that students should be taught more about their mental health. In terms of HKIS teaching staff’s own mental health standards, the data reveals that the amount of teachers currently practicing mental health practices is varied, and could use room for improvement. All teachers responded positively for more being done to raise mental health standards in HKIS.

Balance Board Final Post

Python Video + Explanation: 

Music Code: 

 

Scratch Video + Explanation:

Testing Document (Python and Scratch): 

https://docs.google.com/document/d/1gAFvwlGB9bIFlW1QEuhtX7zYLAWfFMSKACqftEijtqU/edit

Important References:

1) https://www.python-course.eu/tkinter_events_binds.php

2) https://reformatcode.com/code/python/tkinter-timer-to-start-at-0-on-button-click

3) http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/key-names.html

MAKEY MAKEY BALANCE BOARD POST 1 & 2

Task:
  • Pseudo code/flow chart for a timer that counts up
  • Pseudo code/flow chart for on KEY press.
  • A mock up design for their Graphical User Interface for the Balance Board. Information is all included in this google doc: 

    https://docs.google.com/document/d/13uxlXc0eTQAhTdUE8donUDMKlp5XkcYvCwSOYC3KhN8/edit

BLOG POST 1: 
Scratch Code:
Initial:
Developed into:
Picture of Set Up:
Video of Working Set-Up:
Picture of Set Up:
 
Reflection questions: 
  1. What worked?
    We were able to make functioning scratch code that completed all the required tasks, and configured the makey-makey so that it actually responds to the code.
  2. What didn’t work so well?
    We created a circuit, however the two pieces of aluminium foils used did not interact with one and other.
  3. Things to find out for next class?
    How to make the foils interact together within the circuit. In addition, although our scratch code did eventually work, we had to spend some time figuring out how to exactly set variables and let the code process whether the board was up or down. Our next challenge will be to take the methodology, thinking, and base code used in this lesson, and apply it to python, which will be more complex.
  4. What would you like to appear on the screen?
    1. Main Menu: Enter name
    2. In-Game Scree: Timer
    3. LeaderboardA I would like to work on making a more creative intro asking for a name, allowing the user to press “Start Game”, and adding some more captivating graphics or music to play throughout. This would build the user interface, and beyond just making functioning code, would make the product more attractive and exciting.
    5. Time in (HH:MM:SS?)We have only configured time to be in seconds, and it’s probably the most appropriate considering the difficulty of the activity. However, putting up a minute scale should also be considered.
    6. Does the time count up or down?
    Counts up.
    7. Can the user input their name?The user can input their name. It is later used in the leaderboard.8. How does the timer stop and record each users time?
    Timer stops if the board touches the aluminium foil (i.e 2 different keys from the perspective of the Makey-Makey) on either side of the balance board.9. How can you record the users time to a text file?
    We will have to define a leaderboard function which lists names and corresponding times on to an (initially blank) text file.

Post 2: 

Task:
Reflection questions:
  1. What worked?
    Each of the component parts of the code worked, and there was no syntax that was not working. As demonstrated in my video, we can get the user to input their name, a leaderboard (with attached text file) has been created, and the stopwatch can already be used. Clear instructions to the user have been provided. In addition, a restart game menu feature has been added, asking the user to start a new game. To aid user interface, the code even imports music to add to the excitement of the game.
  2. What didn’t work so well?
    The main issue is that the code does not work collectively; each individual function works on it’s own. So, even though the syntax is fine on the three main functions of Stopwatch, Main Menu, and Restart Game menu are fine, they are not working together to establish a game together.
  3. Things to find out for next class?
    How to make the functions work together – I need to gain new information and new perspective on the logical reasoning and processing that I applied in my current code, and make it all more cohesive. Besides finding online info, contacting successful/knowledgable peers to figure out exactly why the code isn’t responding to it’s own parts will be a much needed step.
  4. What would you like to appear on the screen?
    1. Main Menu Screen that lists Instructions, and then says Start or Leave Game.
    2. Upon the pressing of Start Game, a prompt box to input name, followed by a noticeably large timer in a blue background with some decoration.
    3. A thanks for playing screen that also depicts the game statistics of the consumer on the leaderboard.
  5. Time in (HH:MM:SS?)
    In seconds.
  6. Does the time count up or down?
    Counts up
  7. Can the user input their name?
    Yes they can.
  8. How does the timer stop and record each users time?
    The timer stops upon the stop button being pressed – in this case, a makey makey would have to be wired and correspond to specific keys that, using an “if/else” conditional would lead a game session to end.
  9. How can you record the users time to a text file?

I2P: QUIZ (S)

FLOWCHART:

ORIGINAL PSEUDO CODE:

Start

Ask if ready to test skills

Ask to input name

Run History Section

Present first history question: Where did Homo Sapiens first emerge?

If Right, affirm answer, go to next question. If Wrong, give one more attempt, affirm answer, go to next question.

Counter either +1 right, or +1 wrong, dependent on how user answers first question.

Present second history question: What are the major nomadic groups with languages attached to them?

If right, affirm answer, go to next question. If wrong, give one more attempt, affirm answer, go to next question.

Counter either +1 right, or +1 wrong, dependent on how user answers first question.

Present third history question: Who first unified China?

If Right, affirm answer, go to next question. If Wrong, give one more attempt, affirm answer, go to next question.

Counter either +1 right, or +1 wrong, dependent on how user answers first question.

Present total number of questions right, and  total number wrong.

END History Section

 

PSEUDO CODE REDONE:

Start

Print menu with options to enter history or programming sections, or to exit.

Set corresponding action for option.

Run History Section

Print first history question: Where did Homo Sapiens first  emerge?

Set Answer

Ask for input

If answer=input, print Correct. If answer does not = input, print explanation of answer.

Count either +1 right, or +1 wrong, dependent on how user answered question.

 (CONTINUE WITH SAME STRUCTURE FOR ALL QUESTIONS)

Present total number of questions right, and  total number wrong.

END History Section

Redirect back to Main Menu

 

VIDEO OF GAME WORKING + EXPLANATION

TESTING + CITATION OF PEERS DOCUMENT:

https://docs.google.com/a/hkis.edu.hk/document/d/1HcphTQrFT3dbOJoPByaVZbLQ-s0LwXJI9AHA_kqjtQ8/edit?usp=sharing

CODE DOCUMENT:

https://docs.google.com/a/hkis.edu.hk/document/d/1V2iRnBJCaIdW2kgAEcsBYN-2DgR7aAyBjamnhX8s1Aw/edit?usp=sharing

WEBSITE REFERENCES: 

  1. https://www.tutorialspoint.com/python/python_while_loop.htm
  2. https://www.python-course.eu/python3_blocks.php
  3. http://www.pythonforbeginners.com/files/reading-and-writing-files-in-pythonRef 1 is used to make sure I got the right structure while using my while loops, and was more of a quick tool of review.
    Ref 2 was highly important to maintain I got the right formatting and spacing on the quiz.
    Ref 3 was integral to using text files, and making a feedback function.

Python Lesson 7, Reflection.

 

Distinct learnings:

  1. Don’t have to consistently put (“”) to obtain user input, can just type out a question in the input(some question?) and have the user answer it.
  2. Don’t have to put parentheses around all expressions
  3. I can use string inputs to ask give options to the user as numbers.
  4. If I have block text, I should use three quotations.

Python Lesson 6a and 6b, Reflection.

I was a little confused about how exactly I should function in the “change given” part of this code. The process and syntax behind the rest of the code makes sense to me, as I am setting a value for the chocolate bar, then asking the user to input a value, and finally printing out the amount of change due. I will have to look at other blogs and peers processes to update this blog and figure out exactly what code is necessary to process the amount of change given – I assume it will follow a simple process of division by 2, 5, and 1 (to simulate HK coin value), and then will return the amount and type of change as final result.  I also imagine I will need to use a conditional with an expression of values (if a>=b then…) to process a user input which is below the minimum amount necessary.

Blog: Reflection – Python Lesson 5a and 5b

My first attempt at this code. Will need to integrate while loops to better it, and also integrate hints (such as the length of the word) into the game. 

 

  • Explain how you could extend your program to use a Function / Proceedure / Method.F/P/M are sub-routines, which are “repeatable pieces of procedural code” you can keep on drawing upon.
  • Explain the difference between Lists[] and Tuples()

-Lists are a lists of values, from which you can remove or add new values.

-Tuples are the same as lists, but you can’t change their values.

 

Source: https://adamcod.es/2013/09/27/function-method-procedure.html

http://sthurlow.com/python/lesson06/

Lesson 4a and 4b

  • Understand why we use pseudo code/flow charts
    Great tools to plan out our code to achieve a desired outcome. In the professional coding realm, useful for programmers who specialise in different languages.
  • Blog your reflection for the password checker as well using if/else and a while loop.
    Learned how to set variables, set counts within the program to check for something such as the amount of times code has been entered, and also the does not equal syntax: =!.

Lesson 3a & 3B

Lesson objectives and reflection:

IF, ELIF, ELSE – explain these concepts.

If statements are to preface a conditional, while elif has the exact same function, however is used after an if has already been presented, for the sake of clarity and norm.

Else is utilised if the conditional presented with the “if” statements proves to be false.

Nested IF 

Nested ‘if’s’ are used to check for a secondary condition when the first has already been proved true.

Loops:

While loop: Repeated if loop.

Nested loops: One loop inside another loop.

Q1: What is pesudo code?

Non syntax utilising code used to guide programmers with differing abilities to understand and use code.