I recently managed to pull off an ‘Introduction to programming’ workshop at Indian Institute of Information Technology, Amethi. It was a three days’ venture where the participants were introduced to the basic and some advanced concepts of programming and data structures using C++ programming language. The activity gained attention of the 1st year batch, though some members of the 2nd year batch also joined the group from the 2nd day.
After acquiring all the required permissions, the first day began in the LT3 of our campus, with approximately 40 students. Since regular classes were also going on, the schedule was fixed during the evening time. We had the lecture session of about 2 hours, from 7:00 pm to 9:00 pm, and then the practical session in the computer lab from 10:30 pm onwards. The concepts and the problems were discussed during the lecture sessions and the discussed knowledge was then implemented during the lab time that day.
The 1st was for brushing up the basic concepts of programming, the basic looping constructs and the utilities of the basic data structures. Some pattern printing, string manipulations and normal array-based problems were discussed during the first session of the workshop. The main objective for this session was to clear out any and all doubts regarding the basics of programming, so that the students are able to comprehend the advanced concepts of the course.
The lab session required the implementation of some basic problems, like palindrome numbers/strings detection; printing of some patterns; selection, bubble and insertions sorting and some basic programs relating to use of structures. Some of the programs were given off as assignments, where any problem encountered was to be discussed during the next session.
During the 2nd day, I introduced the concepts of linked list. It took quite some time to get all the students to fully understand the concepts of pointers. The pupils mainly got confused with the concept of segmentation fault, and I had to explain it to them via different perspectives and examples. Once these basic concepts were done, the rest of the linked list was quite easy.
I started off with the basic operation performed on linked lists, viz. inserting, deleting a node and their various cases, splitting, merging the linked lists, and finally built up the method of using the linked lists as a stack and a queue, using those basic concepts.
I asked them to implement any one of the two (stack or queue ) using linked list before proceeding further, and to my surprise, almost all of them managed to get it right, with segmentation faults during the first couple of runs though. After that I gave them a little introduction of the binary search trees and finally closed off the day with an assignment to implement insertion sort on linked list.
The 3rd day was the longest and the most tiring too. The students took quite some time in getting used to the concept of binary search tree, especially the deletion of the node. The concept though was simple enough, but when it came to the implementation issues, the crowd started getting all confused. I had to make them write several pseudo codes themselves to tickle their grey matter a bit. The lab session that came next saw more of the confusion and wrong results and worst of all, segmentation faults. But, in the end many of them managed to get it right, and I marked the ending of the workshop by giving them the concepts of trie trees and their use in implementing a dictionary. Since they had managed to pull off the binary search trees, trie trees was easily understood by all.
That was all regarding the programming workshop. I, and the participants too, had a great time. There were a total of approximately 60-70 students who attended the activity.
The activity took place during the first week of April, and I am sorry to have broadcast about it after such a long time. I had also held a presentation competition at the campus, which I’ll be writing about soon enough.
-- Shubham Maheshwari
Opera Campus Crew Member (Bronze)