Sanjana Shah, Girls Innovate! Teen Committee
ThinkImagineProgram (Session 5)
“Coming together is a beginning; keeping together is progress; working together is success.” – Henry Ford
I had been waiting for the next session of ThinkImagineProgram to see whether my answers, for the questions posted in previous sessions, were correct or not. After chatting with the girls on my table, I found that I was not the only curious one. With all the girls and moms settled in, we started session 5 of ThinkImagineProgram. Our presenter strongly believed that the foundations need to be strong, and therefore revisited loops, if-statements and nesting. We then moved on to procedures using Lightbot and completed the level that we had started in the previous session, which had introduced us to recursion. Here we tried to change the code, so that it takes less steps for the robot to light up all the tiles. Some girls were enjoying procedures so much that they went beyond the levels that were asked to complete in the time given to us. This game is very addictive and indirectly gives us a competitive edge for future programming.
We went through the eight queens problem again and our presenter explained backtracking further. He showed us the difference of ad-hoc method, which usually works when the chessboard size is small, like 8 x 8, but for the bigger chessboards, it is necessary to follow the computer approach, write an algorithm and see how backtracking works. Also, this method would be faster as compared to ad-hoc. I tried doing both the ad-hoc and the backtracking way manually by placing the queen on the left bottom of the chessboard so to see the difference between the two. It was so tedious to do this step by step manually, as compared to using an algorithm for redundant work.
One of the first thing a student will learn when he/she begins programming is sorting algorithm. The student is expected to be able to sort through the data and arrange that data into some kind of order, either numerical or alphabetical. Sorting helps manage data, especially large amounts of data. We went through the bubble sort algorithm and saw in action how it worked. The bubble sort works by comparing each item in the list with the item next to it, and swapping them if required. The algorithm repeats this process until it makes a pass all the way through the list without swapping any item. It took a lot of passes through the list to be sorted. I really liked the idea of bubble sort, which sparked the idea of how the deck of cards could be sorted using bubble sort. Hints were also given to girls who needed it.
In the end of the session, our presenter’s 7-year old daughter also joined. She had brought her robot, Romo, to share with us. Romo is an app-controlled robotic pet for iOS devices. She showed us how the robot could follow her face and how she was trying to get rid of Romo’s hiccups, which was really fun. Training Romo with fun programming missions basically teaches you the basics of computer programming in a very innovative way.
In today’s world we have so much data in hand and it would be useful to know the ways to analyze, evaluate, and use this collected data. In the upcoming session, we would be discussing data and the ways to represent it. We will explore different data types and the actions we can perform on them like concatenate and substring. As Tim O’Reilly mentioned, “We’re entering a new world in which data may be more important than software.”