Algorithms

Algorithms was one of the more challenging courses in the second year. It was quite demanding in that the students were required to understand and memorize codes for various algorithms such as searching, sorting and graph algorithms such as Dijkstra's and Prim's algorithm. In addition to code, we also had to memorize the complexities in the best, average and worst case and also know how to derive them.

The major problem I faced in this course was understanding the best worst and average case analysis of algorithms. Despite going through various YouTube videos and online resources, I was unable to solve the questions asked in the course. Despite my best efforts and solving all the tutorials and past papers twice before the exam, I could not do it well. But I made sure not to be weighed down by it and worked all the more hard for the other parts of the course such as lab work.

We had lab presentations in groups every two weeks which required extensive coding to solve one of the questions given and present our solution code as well as analysis of running time change with change in input size. We were needed to make a PowerPoint presentation stating our rationale for using the chosen algorithm, how our solution implements it and show a live demo.

This group work is an example of a situation where I was faced with a difficult group member. Without revealing too much, this group member was a final year student who I was hoping to get some advice from regarding course matters, considering I was his junior. However, the situation completely reversed itself as I was put in the position of helping him understand the coding we did for the lab and directing his every move in the project including writing his speaker notes for the presentations. There was also a point where all the group members were looking to me for confirmation and validation of their work which was also very stressful for me to manage. However, despite the extra work, I took it as a learning experience and took up the responsibility as the "unofficial team leader". In the end we did well in the group presentations and scored an A grade for lab work.

One major thing I learnt from my experience is that in group projects, someone always has to go the extra mile to ensure everything is in order and that one member always has to have a hand in all parts of the project. Having personally experienced that, I realized that it is not an easy job but it does have a rewarding satisfaction to know that I am perceived to be responsible enough for the team to put me in that position. This group experience also disillusioned me on the fact that I will not be as lucky as DSAI in every group project. I am now prepared to face more group projects and confident to do better in the future!

Keywords
  • Searching
  • Sorting
  • Dijkstra's Algorithm
  • Group Project Experience