Turning CS Theory into Practice

Wish you all a very happy new year!

Since last year I am a part of a program which believes that when empowered with the right CS skills, each person can use technology to accelerate change towards a better world that they envision. Having already completed two workshops at Netaji Subhash Engineering College with more than 50 students, I want to share my story with the world.

Applied CS with Android is a program designed by Google for Juniors and Seniors that enhances concepts from their current CS curricular work. The program revisits concepts from Data Structures and Algorithms, as well as Artificial Intelligence, and uses Android as a development platform because it’s modern, has an easy to use graphical interface – and, it’s just fun! The only requirements for students to register for this program are to have prior coursework in Data Structures and Algorithms, some experience in Java and commitment to attending all workshops.

For the last few months I have been volunteering as a facilitator for this program. My task is to help the participants understand the CS concepts and assist them in implementing these concepts on Android platform. Together we have explored Data Structures and Algorithms concepts, created interesting Android games using these concepts, learnt from our errors, exchanged ideas, and most importantly took back home something new!

Workshop 1


The first workshop was hosted in April 2016 with around 30 students from the pre-final year. The six units were covered on a weekly basis so that one could study the materials during the weekend and the hands-on activity could be held on a suitable weekday.

We fired up the course with Unit 1 where we learnt about ArrayList, HashSet and HashMaps. During the workshop we made an app called Anagrams in which a user has to make anagrams with a given word by adding another letter to it. It was an exciting experience for many since they were making their first Android app and they enjoyed the session.


In Unit 2 we learnt more about Android and created an app for a game called Scarne’s Dice completely from scratch. Some students came up with interesting extensions for the activity.

In Unit 3 and 4 we created an app for a game called Ghost were a user competes with the computer to add letters to a word in such a way so that a new word can be created from it but the one who completes the word first, loses. To implement this game we first created a simple dictionary that can be searched using binary search. Then, to increase the efficiency of the game, we created a fast dictionary using Trie for faster retrieval of words.


In Unit 5 we learnt about Heap, Priority Queue and a heuristic search algorithm called A* search. Using these concepts we created an app for a game called Puzzle-8 where the user needs to slide tiles to position all the tiles numbered 1 to 8 in order. We employed AI to create a solver so that the computer can play the game and solve the problem from any state by itself.

Finally, in Unit 6 we came up with unique and original ideas for an Android app incorporating all the lessons learnt in the workshop. The students presented their ideas in front of everyone and tried to come up with an alpha-version of their idea.

Workshop 2

The second workshop was hosted in November 2016 with the students of second year and third year. The six units were covered over a weekend. This time participation was more and the students were more excited than ever to create their first Android app.

Google supported the second workshop with a workshop kit and sponsored for snacks. The kit included Applied CS stickers, sipper bottles, Google Play books, a flex banner and posters. The stickers were distributed to everyone but since the sippers and books were limited in number, they we awarded to only those who actively participated in the workshop and answered the short quizzes that were asked throughout the day.


On Day 1 we fired up the course with Unit 1. In the first half of the workshop, we learned the concepts of ArrayList, HashSet and HashMap. The game mechanics of the Anagrams app was understood. This was followed by a hands-on implementation of the app on Android Studio.

We completed Unit 2 in the second half of the workshop. Participants learnt about the game mechanics of the Scarne’s Dice app and how to create an app completely from scratch.

img_20161119_151943_hdrOn Day 2 we completed Unit 3, 4 and 5. We created the Ghost app in the first half of the workshop. First we learned the concepts of binary search, tree data structure, tree traversal, BFS, DFS and trie data structure. Thereafter, we implemented a simple dictionary and a faster dictionary using the concepts learned.

In the second half of the workshop, we learned the concepts of heap data structure, priority queue and A* search algorithm. Then we  learned to implement the Puzzle-8 app.

We wrapped up the workshop with a networking session with all the participants with snack boxes sponsored by Google. We talked about our ambitions post the Applied CS with Android course and discussed if we would like an advanced level to this course in the future.

For a complete photo-story for both the workshops please click here.