Microprocessors was the most difficult course in second year. The main concepts were not very heavy, but the labs and tutorials were extremely challenging. It was hard even to understand the tutorial questions, much less solve them. As for labs, the questions were clear but we were given very few hints on how to solve them. However there was some reference code for each lab which was quite helpful.
I did most of the labs beforehand with my peers as we found the stipulated 3 hours insufficient to complete the labs, as did most others. Almost all of my free afternoons were spent doing Microprocessor labs or deciphering the reference codes. Essentially, the labs involved building up the functionality of a robot, until at the final lab it could move in all four directions, use a tachometer to show the distance to a nearby object, use an IR sensor to detect the presence of a line under it and a few more. Each functionality was its own lab. We had to read the lab manual for instructions and reference the sample code to build the actual code needed to implement the function needed. When we had questions, the supervisor would only give us vague theoretical hints which we did not find very helpful. I did understand that the reason they did that was to encourage us to figure it out ourselves, a mindset which would benefit us in the long-run; however, at that point when we were focused on solving the labs, these were not our thoughts. But one thing I enjoyed about these labs, is that despite all the challenges we faced, the satisfaction of having the robot do what we want it to do was immense. At the last lab, when I saw the robot working properly I felt proud of the efforts I put in through the semester.
This is the actual robot I worked on during the course:
The tutorials were also quite challenging as the theory lectures did not provide any practical or numerical examples on how to use the concepts. In addition, the subject syllabus had been changed and my batch was the first to experience it. This rendered our only preparation resource, previous exam papers, useless. So we could only rely on tutorials which were challenging and insufficient.
The labs, though challenging, really helped me bond with my peers. We spent a lot of time doing the labs together and helping each other do the tutorials. The course was quite enriching in that I learnt many things as well as bonded a lot with my peers and friends.
An important lesson this course helped me learn is the need for constant effort. Though the labs were difficult, we never stopped trying to solve them, partly because we had no choice, but also because we knew we would need the knowledge some day in the future. The reason we felt the satisfaction and pride at the end of the course was mostly because of all the effort than went into it. I think this is a very valuable lesson especially in college where everyone has a tendency to lose hope. This course helped me understand and feel the importance of continuous effort and learn that sincere effort will always yield good results.