Are Project-Oriented Classes Beneficial?

13 May 2025

In recent times, there have been serious discussions about the importance of obtaining a college degree and whether a degree is worth the potential debt and time spent to get it. Additionally, in the Computer Science field, there are some real issues with oversaturation of recent grads in the tech market, giving what seems to be no guarantee of a job for those who come out of university with purely a degree. It seems that education alone can not ensure securing a good tech position. However, an asset that can aid one’s portfolio is real-world experience in a relevant field. Thus, I was pleasantly surprised when I took an upper-level software engineering course at University of Hawaii at Manoa this spring and the class’s focus was to provide said experience. The majority of the class had students placed in teams working with a real client to create a proof of concept project for a financial firm. The course was very different from any previous course I had taken and provided essential skills and experience into the software development field. That being said, I believe there were also some missed opportunities in the course which would have better utilized the fact that this project was being facilitated in a class format.

Before diving into the core of the class, being project-oriented, it is helpful to break down some of the concepts and skills that were taught in the beginning portion of the course. First, the concept of requirements elicitation. I found learning about user stories was helpful in analyzing client input and converting it into technical issues. However, I felt that in this section the class could have provided tips on how to more effectively interact socially with the client, such as asking good questions. This, though, may speak more to my social commentary on the lack of social skills among computer science students and be less of a gripe with this course. The next helpful skill taught was IDPM project management. This skill was essential to maintaining progress on the project. I do think that better guidelines could have been established though. Working on the project required a lot of initiative to the point of someone practically having to step up into a project manager role. This expectation could have been better communicated in the course. Finally, the concept of review and acceptance testing. Incorporating these concepts into regular assignments was a smart idea. Knowing how to review code is boring but very practical for people wanting to go into the software industry.

Now, I will analyze the core structure of the course: the fact that it focused primarily on a single project for a real client. To begin with, there were quite a few negatives that came with this class structure. The class was not really a class. Hardly anything was actually required to be learned in the entire semester. Additionally, class-periods were dry and didn’t really provide any incentive to go to class unless you wanted to meet with your team. I think this was a missed opportunity, because one of the great things about computer science lectures is that a person who has worked in the field can provide insight and facilitate relevant discussion to help students gain context into the tech field. Another negative of the project-oriented course was that it was easy for students to slack off and hardly communicate, but do alright in the class. Other students’ commitment levels could greatly affect (harm) you in the class and it was all out of your control. I was lucky that most of my team members stayed in the class and consistently contributed to our project, but that is not always the case.

On the other hand, the project-oriented nature of the course also provided many benefits. The benefit of providing real-world experience with a client can not be overstated. This was also very helpful in the fact that the client was non-technical. This allowed students the opportunity to develop a strategic plan to create a technical product for a client based on non-technical explanations. As this can be a struggle for many people going into the field, giving an early opportunity to encounter and address this issue was helpful. Additionally, the fact that almost the entire semester was dedicated to working on the project was also beneficial. This timeframe allowed teams to have time to design and create a solid project that they could be proud of and confidently place in their technical portfolio. Working with a team and managing a GitHub project board was also a very productive skill to learn. I was glad that the project board was regularly assessed so that this skill was really cemented in the course. All these skills provided by this course are helpful for students to experience the software engineering field in a low-stakes environment.

Ultimately, I think that the real-world, project-oriented software engineering course provided many unique benefits as well as some drawbacks. I think that the course missed opportunities to teach students how to plan, instead throwing them in with little context. However, this is something that may be unique to me. This class has taught me that I like context and am a big-picture thinker, which is why I rely on communication. This self-knowledge will help me navigate my future endeavors and careers. Therefore, this course has been very enlightening to me and I’m grateful to have had the opportunity to gain experience while also filling up college degree requirements.