If you'd asked me at the start of the semester what I thought of the "Computing for Design" course, I'd have said it was a distraction—just another thing I had to work on that pulled me away from what I really cared about. I knew what I wanted to do: I wanted to become an industrial designer, the type that uses pen, paper, and CAD software. I couldn't see how this course would help me achieve that.
Fourteen weeks later, have my views on the "Computing for Design" course changed? Yes and no. I still want to be an industrial designer, not a creative technologist or a Python expert. That's the "no." But I now have a better appreciation for what computational thinking means and how it could be useful in my journey to becoming an industrial designer.
Design, for me, is a process that heavily relies on sketching, ideating, and prototyping. It's driven by what people call the "designer's eye," that intuition you develop after spending time in the field. This process emphasizes aesthetics, usability, and human-centered design. But sometimes it can lack structure, with a lot of back-and-forth that, while not inherently bad for creativity, doesn't offer a clear path to solving problems.
That's where computational thinking comes in. When you approach highly technical design projects, computational thinking offers a systematic way to break down challenges into smaller, more manageable pieces and then tackle them step-by-step. This approach complements the traditional creative design process, especially at the start when you're figuring out the "why" and "how." It adds a sense of structure, helping to ensure that the solutions you arrive at are well-thought-out and grounded in a solid understanding of the problem.
If I look back to the very first exercise, it showed the importance and benefits of thinking and, more importantly, communicating in a clear, systematic way that people understand. Shared at the very start of the first class, the concepts of decomposition, pattern recognition, abstraction, and algorithmic thinking are highly adaptable to our field of studies. They seemed so foreign at first, but reflecting on them now, I see their value:
Like every student advancing into a new level, I asked my seniors what this module is really about. Was it tough? A waste of time? Something to just get through? I received a range of responses. Some seniors said it was fun; others had less favorable things to say. Here's what I'd tell my juniors: yes, this module can be challenging and demanding at first, especially when learning a new language like JavaScript. But try to apply computational thinking at every step, whether it's for assignments within this module or towards other projects. If you find it helpful, great; if not, you can always revert to your usual workflow.
I didn't apply much of it at the start of the semester because I was used to my usual approach to problem-solving. But towards the end, especially during the second assignment when time was running out, this systematic way of doing things actually helped me save a lot of time by breaking down tasks and finding the best way to do them. My new workflow involved breaking down problems, tinkering with code, and using ChatGPT to check my work. It was a huge help.
In fact, explaining what you want to ChatGPT is a form of decomposition and abstraction. So it's valuable to approach this module with a mindset that it's not a waste of time but something that can sharpen your skills and improve your processes.