Advanced Programming and Prototyping — Reflection

Chaitali Dhande
Design with code
Published in
5 min readFeb 6, 2019

‘Advanced Programming and Prototyping studio’ was a bit intimidating in the beginning, as we had to explain our A1s on the first and the second day itself. But as the classes progressed, everything started to fall in place. I liked how the first assignment was structured. As every group explained a set of p5js functions, it helped us to gain knowledge of most of the functions of p5js in a very limited time. This wouldn’t have been possible if everyone had to go through the p5js functions together.

Making everyone solve the p5js problems collectively helped to boost everyone’s confidence. It made the learning experience fun. The activity of solving 5 problems individually (as a homework), helped me to actually explore and try out different p5js functions. I would have loved it if this practice was continued further.

Our A2 was based on e-Governance services. Due to this assignment, I learnt a lot about different government schemes and the influence of these schemes on the people’s life. In the beginning, we were not sure about what topic to choose, as there were a lot of interesting areas and many of them could be improved. Finally we selected ‘DigiLocker’ as our topic, it is a comparatively new service. It has many loopholes in it, but it also has the potential to become a great service! And improving this service may create a significant impact on how people store and share important documents.

The session on OOP concepts was a very informative one. Even though I had some idea about OOP, my concepts weren’t clear, hence I never tried using it anywhere. But this lecture gave me a clear idea of OOP and how it could be used in coding. And now after using it in our project, I understand the importance of it and I am really glad that this studio covered this concept.

Studying in depth about the DigiLocker also helped us to understand the working, usage and the flaws of different schemes and programs associated with it (for example Aadhaar). It helped us to understand how different elements/ schemes play a role in the success/ failure of a particular scheme. Hence for making one initiative (scheme) fool proof, the schemes associated with it should also be fool proof.

Our A3 was to target a few problems from the area that we have selected and then rectify it. We tried to look more into the ‘login’, ‘validation of the DigiLocker documents’ and ‘sharing’, but as it is a new government scheme, we couldn’t find much information on the net. That’s why we chose the method of design fiction — a method where we change the fundamental elements of the system in order to make it better.

Design Fiction was a really exciting thing to work on. It is not just about designing a fictional service/ product but also about designing the whole world around that service. Thinking and designing a whole new world (parallel world), which is consistent and without any contradictions, was a difficult task to do. But I loved every second of it, it gave us the freedom to express our wildest imaginations and to make something meaningful out of it.

Even though we (our group) love the idea that we had come up with, we were not sure how we were going to make it work. We had absolutely no idea of how we were going to do the finger print scanner. But in the process of figuring out how that would work, we tried out Arduino. I had never worked with it before, and it was amazing — I totally enjoyed working (playing) with it.

The last day of the class was the most amazing day (the 12 hour hackathon). As we got ample time, we could do significant progress on our projects. Coding continuously without any disruption or any time constrain helped us to get in a zone — it helped us to code faster. At the end of the session, we were satisfied with what all we had achieved in those 12 hours.

  • Should designers code? And is it really relevant for a designer to learn advanced programming concepts?

I think that it is important for designers to code because it gives them an idea of what all they can do using this technology. The designers who know coding, can explore and use it in their designs. Knowing how the systems works (how it is coded) definitely helps a designer to understand the drawbacks better and to suggest effective solutions. It helps the designer to actually develop his idea and not just prototype it.

  • How should a designer learn programming when most of them really not accepting to learn the technical aspect of it?

I really don’t know. If a designer doesn’t want to learn the technical aspects of programming then I don’t think that he/she would be able to code.

The way in which the interview started gave a clear idea of how engineers and designers think differently. How their teaching affects the way they think (Engineers are structured, aim at solving the problem with a logically, follow rules. Whereas designers aim to address the bigger problem, their solutions are open ended, they take a creative leap and trust their intuition). The ‘Drunk Driving’ example that Kelley gave to explain the different approaches taken by the engineers and the designer was really good. Although I don’t think that all the designer and engineers could be categorized like this. Some engineers may follow a more open ended approach to a problem and some designers may follow a methodical pattern while solving the problem. The interview nicely explains how everyone has a creative side and how it fades as we grow up (because we are encouraged to think in one way as we grow up). It also touched upon, how humans become ‘lazy’ to gain knowledge of the subject they already know (which is a very bad practice/ habit). I think that this is a very good point put up by David Kelley, and I think that designers should consciously refrain from getting into such practices.

The interview also informed about the design process carried out in IDEO, which I found very interesting.

  • Relevance of object oriented paradigm in design, thinking and programming

OOP for designing and thinking:

The four main concepts used in OOP — Encapsulation, Abstraction, Inheritance and Polymorphism are widely used in our day to day life. Inheritance is largely used in designing, designers often get inspired from nature or other things in the world and inherit some aspects of it in their own designs. Concept of encapsulation is often used by us to group similar/ related things into one category for our own understanding. Abstraction, a method of showing just the important functions and hiding the rest, is also widely used by the designers. Machine interfaces are the best examples of it — a user only gets to know what happens externally with the machine but doesn’t know what all goes inside the machine to carry out a certain task.

OOP for programming:

OOP helps to reduce the complexity of the code, it reduces the length of the code drastically. We don’t have to write down same/ similar code again and again. Correcting a code also becomes easy, just making a change in the parent class would also make changes in the child classes. OOP also makes the code look tidier. And it becomes comparatively easier to spot errors in it as everything is categorized.

--

--