As we approach the end of the semester, it is now appropriate to reflect on everything we’ve done and learned in ICS 314, or at the very least, reflect on my key takeaways from it.
There’s been lots of ups and downs, like the in-class WODs (timed exams) being graded all or nothing, putting a lot of stress on us on a weekly basis, or the constant barrage of homework, not at all to mention the dozens of essays we’ve written in this class (seriously, I did not expect there to be so much writing). Needless to say, it’s been a stressful time.
However, it can also be said that it’s been a rather fulfilling time spent learning. The course was constructed to help us learn certain key concepts within the span of the semester, and I don’t think anyone can really argue that they haven’t been given a certain degree of experience with these concepts as long as they’ve been keeping up the coursework.
One of the assignments in the course, for example, included working together with a group of people and putting all the knowledge we’ve learned regarding web application development to construct a website meant to fulfill some purpose. For example, the website my group worked on was a Lost and Found site meant to help students locate their missing items. You can learn more about it here, if you want. In doing so, we all engaged in some of the key concepts the course wished to teach us about.
One of these concepts, open source software development, is in regards to learning about how to develop something in conjunction with several other people, all putting in their own individual efforts to work out problems, add features, and enhance its functionality. Another, coding standards, is about writing your code in such a way that it’s easily understood what your code is doing, so that anyone who looks at your code is not as confused, which is important for cohesion. Design patterns are a structured approach to addressing standard problems that developers will encounter, and it serves as a sort of template that allows anyone reading their code to understand what they’re trying to do.
As you can probably see, these concepts all involve making it as easy as possible for the smooth, efficient development of software or web applications. Teamwork is a complicated process, especially when everyone likely has some different approach to addressing the problems they face, and by sorting out these kinks and reducing the chances of misunderstandings, this process of cooperation can be made so much easier.
Considering how the work we will encounter in our future careers will most likely involve some degree of cooperation and teamwork, these are crucial skills for us to be developing, and it makes sense why so much emphasis is being placed on these concepts.
Even outside of the context of software development or web application design, these concepts can be used to ensure that we engage in good, efficient teamwork in any group setting that we might find ourselves in. After all, life is full of opportunities to meet and cooperate with others, whether it be in the form of work, family, or friends.