Introduction
SIJP has been teaching computer science to students in Seattle, as well as to students in Japan’s Kumamoto and Fukuoka prefectures via a teleconference system called Zoom. On Oct 20th, we held a class called “Study Computer Science in English – Spot the error in the code!”. I hope everyone who was able to attend enjoyed it. This document is the report for those who missed the class. This is our 4th installment of the SIJP classes and is the improved version of the class we held on Feb 18, 2018.
Seattle/Kumamoto/Fukuoka Pictures
Main Theme of the class
We developed the class material with the goal of enabling students to learn and experience how IT companies deal with resolving bugs. The following slide summarizes the general flow:
In this class, we worked on bug finding, bug reporting, bug triaging and bug fixing.
Out of these, the most difficult concept/process is bug triaging. Thus, we spent the most time on it and explained it in Japanese as well for extra clarification for the Japanese students.
We used What’s Wrong with these pictures? / David Coulson drawing for the class.
Assignments
We prepared and assigned two assignments ahead of class as practice for the students. They were simple error spotting games with a little twist.
Error classification by types
For the first assignment, students were asked to circle errors by type as shown in the following slide.
Error classification activity 1 (you can click the image to use this activity in your Seesaw class)
Error classification by wrongness/unreality
For the second assignment, students were asked to circle errors by degree of wrongness/unreality. This is another way of classifying errors. We told students these might be subjective, but that is OK. Often times, not everyone agrees on how severe a certain bug is.
Error classification activity 2 (you can click the image to use this activity in your Seesaw class)
Ice-breakers
We explained we have three classrooms today with distance. We had students from each classroom introduce their location to the other classrooms.
We showed 4 pictures of Seattle and asked one of the students to explained it.
Then, we asked students in Kumamoto to introduce Kumamoto using the following pictures.
Lastly, we asked students in Fukuoka to introduce Fukuoka using the following pictures. They introduced it in English!
Introduction
Why do we call a computer error a bug?
After talking about the homework, we dived into the reason why a program error is called a bug. We explained that it was because of a moth that flew into a computer and caused an issue, and thus Grace Hopper named the computer error a “bug”. Grace Hopper is one of the first pioneers in computer programming and we have an annual event called the Grace Hopper conference to celebrate women in computing.
Buggy software
We showed several examples of buggy software(meaning software with a lot of bugs). One of the examples we showed was Super Mario. Sometimes gamer developers take advantage of them to sneak in easter eggs for its players.
Bug types
Division by zero is another example. The following slide visually represents it:
It is one of the Arithmetic bugs.
There are many bug types, some are shown below:
Bug severity
Next, we moved on to severity of bugs (from 1 being most severe to 5 being least severe). We used examples from the homework and also talked about bugs that were found in real software.
Bug life cycle
Again, here is the bug life cycle that can be seen at IT companies. We will explain each step.
Finding bugs
We told students that these are examples of techniques to find bugs:
- Pay attention to details
- Try edge/boundary cases
- Do something very fast (for example, mouse clicking)
Reporting Bug
Finding a bug is not enough since you have to tell others that you found a bug. So, reporting is important.
We showed an example of a bug report using the homework drawing.
The bug report mainly consists of:
- Reporter’s name
- Summary/Title
- URL
- Screenshot
- Platform
- Browser
- Steps to reproduce
- Actual Result
- Expected Result
- Severity
We worked on a Seesaw activity to submit bug reports.
For example, Patrick in Seattle submitted the following bug report. Great work!
What is your name (bug reporter)
Patrick
Summary/まとめ
dog holding a large toothbrush with its teeth
URL (for example, http://google.com/)
Drawing
Screenshot/スクリーンショット
Drone
Platform/プラットフォーム
Paper
Browser/ブラウ
Paper
Steps to reproduce/どうやったらバグを見ることができるか
Look at the drawing of the dog and circle it red
Actual result/バグはなにか
The dog holding a toothbrush
Expected result/本当はバグはどうなっているべきか
Dog not holding a toothbrush
Severity (5: very bad, 1: is little bad)
1
We also asked students to look at a real website and file a bug report using google forms. We have collected several bugs about the website.
Bug Triage
After a short break (pizza has not arrived 🙁 ), we moved on to the next step in the bug life cycle, bug triage. The word triage (French) refers to the process of determining the priority of patients’ treatments based on the severity of their condition in the ER. The bug triage process is similar but it deals with bugs instead of patients. It also looks at clustered customer feedback.
Again, we used examples from the homework to show the process.
As shown in the slide, the important three steps in bug triaging are:
- Combine duplicate bug reports into one
- Add/modify severity and sort them from 1 to 5
- 1 being most severe, 5 being least severe
- Rewrite the bug title/description so it is easier to understand the problem and solve
Then, we moved on to the Seesaw activity. In this Seesaw activity, you have become a project manager of a game company where you bug triage.
The Japanese version of the same activity can be found in here.
Here is an example student submission by Patrick in Seattle:
Great work, again, Patrick.
Bug fix (Debugging)
Next we moved on to debugging. Here we used Code.org’s paper and graph programming
The first task was to understand graph paper programming. It is very easy since it only has 5 operations.
5 operations – from code.org website
The following is a simple example.
Make your program
Using Seesaw, we gave students 3 figures and told them to come up a sequence of operations that would result in the given figures.
Here are the Seesaw activities (Activity 1, Activity 2, Activity 3)
Follow the program
In this section, students were this time asked to draw the resulting graph from the given sequences, basically the opposite of the last activity.
Here are the Seesaw Activities (Activity 1, Activity 2, Activity 3, Activity 4).
One of the programs has a bug. Please find it.
Debug the program
Now given a program and a graph, your job is to find the bug in the program.
Here are the Seesaw activities (Activity 1, Activity 2, Activity 3)
A common error made was that many students wrote a new correct program from scratch rather than fixing the bug to make it correct. Finding the root cause of a bug is often just as important as fixing the bug! An example is shown below:
^ This program was not fixed efficiently because the student wrote a whole new program to get the correct behavior
^This program was fixed efficiently because the student fixed the one step that was wrong (the bug).
Another example is :
We may change the student’s template format in the next class to let students fix the bug (rather than writing their own program).
Great work!
Kahoot time
As always, we have Kahoot time. Here is the quiz we used. We were surprised that a kid from Fukuoka made it into the top 10!
Feedback
Kids
After the class, we asked for evaluations. Here are the results.
Comparing this to the last class (which was held in Japan), it looks like the satisfaction score improved which is a good sign given that this class covered some difficult topics.
Good
- The last game(Kahoot)
- I understood bugs better
- I enjoyed the class
- This is my first experience. I do not understand class but I enjoyed it.
- I appreciate explanation in Japanese. I encounter bugs in the games and I learned about it.
- After their explanation, we can start activities. The slide explained them pretty well.
- The number of staff
- Activities
- I enjoyed the game using Tablet (Kahoot!)
Improvements
- Better English and better Japanese translation
- Computer/tablet issues made it hard to concentrate on the class
- Explanation is too long
- Point system in Fukuoka took long time for Kahoot
- Use a real game Like Minecraft
Comments
- I learned a lot about bugs
- Thank you for hosting the class. I hope this would be a good opportunity for kids to have interests
- The Kahoot game was difficult but I got some correct answers
- This was my first time in the class but I really enjoyed it.
- I enjoyed learning in English and connecting with Seattle and Fukuoka.
- I got some comments in the point system. I enjoyed them.
- I did not have interests before about programming/coding. But, now I have it.
- I wish I could see more Seattle class
- I was nervous at the beginning but they are better.
Parent
Motivation
- Parents are not equipped with computers so I want my kids to understand.
- Kids enjoyed the first class and I want them to learn programming
- have interests in computers
- Learning computer in English
- learn programing
- use their English and I want them to learn their favorite subject from professionals
- Kids have interests
- Have new experience. I liked the theme “there is no answer” and “understanding the class is not primary goals”
- Kids do not go to computer nor English school but I want to use this as first step
- I am interested in the theme “Learning Computer Science in English”
Comments
- There are many things that kids do not understand. But, they enjoyed it.
- The class material might be hard for my kids level
- I could not view Seattle class even though we are connected. I wish there is more interaction with Seattle class. It might be hard with limited time.
- Kids enjoy the graph paper programming
- It is getting better as we have more classes
- Thank for the staff’s support and providing opportunity for kids to learn latest concept, material and technology. I am surprised about the new world is going to look like. I want kids to go to more classes.
- I want provide better environment for kids to increase opportunities.
- Kids do not show much interests in computer science but they want to join the class because they enjoyed previous class. Thank you.
- I really like the teacher in Fukuoka comments at the beginning “I do not have confidence in my English comprehension. So, it is OK to feel nervous”. So, kids feel relaxed and enjoyed the class.
- I really like volunteers staff’s help and attitude. They says everything is OK and positive attribute towards the changes.
- My daughter cannot understand English but she enjoyed the class with staff explanation and illustration in slide. Thank you.
- It is very good idea to connect Fukuoka/Kumamoto/Seattle. It might be hard because of technological challenges. But, I hope kids experience the “connected” world.
- The main thing I would recommend is to shorten the time to two hours. Also, maybe more active time for the kids rather than lecture time.
We are planning to have class in November 17. So, please stay tuned.