CPSC 319: Software Engineering Project
Instructor: Jerry Jim
Even though this is a software engineering class, development consists of ~30% of the course whereas the rest of the course is mainly documentation. Be prepared for a whole lot of documentation-writing and business-related topics. On the positive side, I became exposed to how working as a project manager and business analyst is like.
Grading is as follows*:
1. Terms of Reference: 3%
2. Project Plans: 5%
3. Requirements: 5%
4. Design: 10%
5. Test Plan: 20%
6. Release & User Documents: 5%
7. Project Status Meeting: 15%
8. System Delivery / Demo: 30%
Items 1 - 6 are all documentation.
* The percentage breakdown above does not add up to 100% because there were changes to the grading scheme throughout the term. I do not have the last revision of the grading scheme because it was not distributed to the students nor were the changes explicitly announced.
There were 12 teams, and each team is assigned a project based on the team’s preferences. Each group consisted of 6 - 7 team members, and I highly advise that you choose your group members carefully because this decision is crucial to determining your performance in this course. More than any other course I have taken, this course is dependent on teamwork. 100% of your grade is based on group effort so having a lacklustre team will undermine all your efforts, regardless of how much effort you put into the course.
Each team was assigned a project, and each project had a maximum of 3 teams competing for the best system delivery (although you don’t get bonus marks if your team does deliver the best system). In the very first lecture, the professor shared descriptions of each project and each team ranked their preferences on which project they’d like to work on. Most teams received their first choice, although a few teams received their second choice based on random lottery.
Lectures were once a week on Tuesday for an hour and a half. Then on Thursdays, we met up with the stakeholders for half an hour. We were graded on our attendance. During the stakeholder meeting, we met up with our TA every week, although we met up with our industry sponsor (from the company that commissioned the project) a few times. The industry sponsors also attended the demos which were held at the very last class. These industry sponsors had some say in the evaluation of your system, which determined your grade.
For all the documentation deliverables, there were only briefly discussed in class. Thus, a large part of my time was invested in doing research to find online examples of what these documents are supposed to consist of. In large part, I think the reason why we spend so much time on documentation (and based on the topics we covered in class) is because a primary goal of this course is to develop your business acumen.
Items 7 - 8 have some documentation, but you also get to implement the system. That is where I find the documentation from items 3 - 4 to be of use, because we implemented the system that we discussed.
Lectures go through some of the deliverable requirements, but only briefly. They cover topics such as Agile vs. Waterfall, stages of a team (forming, storming, norming, performing) and high-level topics on virtualization vs. containers, different types of testing, DevOps, etc. Basically, if you enjoyed the business and project-related topics in CPSC 310, you will enjoy this course. Otherwise, you might find the lecture topics to be dry because there wasn’t any coding - you learn technical concepts you might encounter once you work in the industry at a very high-level.
As for the amount of overlap between CPSC 410, there was only a little. CPSC 319 delved more into the business side of software development whereas CPSC 410, though still at a high-level, was more about the actual software development from the software developer’s perspective.
In the last part of the course, there were several rounds of alpha testing which consisted of all the stakeholders (the professor, TA, and the industry sponsors) to give feedback on your system (what are the bugs, what are the things you can improve on, etc.). There is also 3-week warranty period once classes are over that will require your team to address any questions your stakeholders might have. Fortunately, we did not have very many questions to deal with and we were able to focus on our finals. During the warranty period, there was also an opportunity to receive some bonus marks if we were able to deliver improvements to our system that were requested by the stakeholders.
Although CPSC 319 is a 4-credit course, I didn’t think it was too much work (especially compared to CPSC 410), especially because we did not have any exams. We may not have brought the project to a 100% completion, but that is because some of the requirements were time-consuming. We did, however, complete a significant portion of the requirements and received high grades for doing so. The class average for 319 is ~85%, which is the same as the previous years’. So it is easy to do well in this course as long as you do the work. I was also fortunate enough to have teammates who all have industry experience through co-op and were technically competent people. Having teammates you could count on was the most significant factor in being successful in this course.















