Skip to main content

CS3216 "The Last Lecture"

· 5 min read

A few years ago, I chanced upon the video "The Last Lecture" given by Randy Pausch. Randy, a computer science professor at Carnegie Mellon University, delivered a lecture titled "Really Achieving Your Childhood Dreams" in which he talked about his life lessons. The one thing that I took away from his talk was his point on failure and setbacks. In particular, I printed a photo of a brick wall and taped it on the wall right in front of my desk to remind me that:

"Brick walls are there for a reason: they let us prove how badly we want things". I was, therefore, excited to enroll in CS3216, a module modeled after a course taught by Randy. Now it's over => finally time to review and reflect! If you don't know what this module is about, see here for the official course website and assignment details. Below I use "A1", "A2" etc to denote the four major module assignments (again, full and official details are available here).


The assignment required us to find a problem worth solving and design a solution for it. Even though we do not have to implement the solution, it was not a breeze. In a short amount of time, we have to (as a team) decide on a probable idea and validate it with the target audience. I have never done so many user interviews before and I have to say that the whole experience drives home the point that users matter. Defining a problem that needs to be solved and having potential customers that are ready to give advice and feedback are not that easy. But, they are truly valuable. Taking our team's project on improving the module registration workflow as an example, our testers pointed out various blind spots in our design, where we thought that a certain feature would be useful to the target audience but none of them actually noticed it during testing. These 'talk to your users" practices made me realize that when we build products for other human beings, it makes no sense to not listen to them attentively. I may have overlooked the users way too often in pet projects or assignments of school modules. A1 was a much-needed reminder.


In this assignment, we had to identify an innovation on the market and make a presentation for it. The added challenge is to do it the Pecha Kucha way (20 slides, auto-advance every 20 seconds). While this is certainly a test of our presentation skills, the technologies that we discussed and heard from our peers were what I found to be interesting. Our team gave a presentation on Neuralink, a "mind-blowing" piece of technology that aimed to create a human-computer interface to drastically improve the lives of paralyzed patients. During the research, I realized that even though the idea of an implant that inserts threads into areas of the brain can deter many of us, the methodical approach with the help of precision surgical robots gave me great confidence that the future may be wild. It was refreshing to look at the current work done by others in the industry and ponder about what counts as innovative today.

A3 & A4

A3 is an assignment that required us to build a progressive web application, from "front" to "back". Not only do we have to think fast, but we also need to act even faster. In retrospect, I think this assignment is all about execution. Within the short 2-3 weeks, the team needs to produce an application that works with a database and handles authentication, among other things. Personally, I got to work on the backend and played around with Django REST Framework. Knowing web development and being familiar with the relevant tools beforehand are going to be helpful.

Following the end of A3, we moved on to our final project phase. A4 is an open-ended challenge to solve a problem with a (creative) solution. I may have hinted in my previous paragraphs that finding the right problem to solve is hard, but an innovative solution is equally hard to come by. I am not going into the details about these two assignments because, at this time in the semester, the fatigue and the workload started to drain all my energy. Jokes aside, I think my experience may not generalize well. Of course, I learned about how to work in a team and deliver a product. But, more importantly, I learned that life is more than CS3216/School/things at hand.

Guest Lectures & Writing assignments

The weekly lectures and writing assignments turned out to be rather enjoyable. I learned many things from the various guest speakers. One notable aspect of it is how "CS" or technical people view problems and optimize for a solution. I joined in the lament that "people problem" is the harder problem to solve. On writing assignments, it was fun to try, over the semester, to appeal to Uncle Soo's taste and get that coveted full marks for each writing.

Final thoughts

Just like the last lecture given by Randy, CS3216 is all about head fakes. What you will learn will be drastically different from the intended outcome. Coming into this module, many people, myself included, were looking forward to practicing and gaining technical skills in a team setting. In the end, this module may have disguised itself as a project module, but it is not all about the projects you build, it is all about YOU.

P.S This essay was written as part of my final writing assignment. All I can say is...What a module!