Recent Popular Posts

March 11, 2017

Deep learning...

Someone had recently asked me to give them an example of what I considered deep learning.

The STEM Land (@ Udavi) display that the children in the 9th grade had broken down and a couple of letters were not lighting up. A couple of children in the 7th grade had expressed interest to fix the display. I had walked them through how powering a leg of the display lights up one of the 7 segments (and the decimal point). They had been fascinated by being able to fix something and over a couple of classes went ahead and fixed it.

After fixing the board and seeing it work one of the children was interested in doing something more with the Arduino. What the 9th graders had done was the treat a digit as a unit and light up one digit at a time, etc without changing the essential message of what was being printed. But this child wanted to do more. He wired up the 7 segments to a separate Arduino pin and wanted to control them individually.

He managed to light up a 1 by end of a class. I mentioned to him that this will soon get out of hand if he did not start organizing the code (in a language he was learning) into functions.

Later that day one of my youth asked me to give them an example of deep learning in STEM Land.

The next morning B didn't have a class, but during lunch, he came by and asked me to show him what these functions are. I told him that it was similar to the setup and loop that are already present, but with any name he wanted and they could be called into action when needed, similar to the blocks in Scratch. His face immediately lit up and he said ok, I understand blocks.

He had an activity class after lunch and he sat down to implement what he had in mind. He ran into a couple of errors of syntax (defn of functions needs matching '{}', calling functions in C needs '()' ), but then he did not ask for me for about 45 minutes. Then he came to me and said that he needs some help in extending the functionality. I went up and saw what he had done and realized that he had made a single digit counter that went from 1 to 9 every one second. He had now decided to make a clock out of the arduino and had added a second 7 segment display to get the second digit of the clock he needed. I thought he would have missed the logic of the first digit continuing to run when the second was set, but he had got that logic right and implemented this as well. 

I could find nothing wrong with his program and I think was a little surprised how much he was able to progress in a single session starting from wiring up getting the logic of an entire set of digits right and moving on to the next logically. Perhaps, the issue is with the hardware and we are attempting to draw too much current from the USB and none of the displays were lighting up. The debug continues
...but it gave me an answer to what I presently consider an example of deep learning, taking a concept in an entirely different context from blinking light->fixing a 7segment display->individual control of segments and putting it all together to shift between digits in the hope of creating a clock with very little help from an adult.

Of course, there are not enough outputs in the Arduino to create all the digits of a full-fledged clock and I let him know, but it seemed he was happy with what he could get.

No comments: