Why do you think is this activity so important that it is worth spending all this time, and why it is required as part of the degree program?
The answer is that the knowledge is both a theoretical and empirical, hands on discipline, and there are many skills that cannot be taught in the classroom. They can only be learned through practical experience-that is working on a large project that exposes you to some of these important ideas such as:
For your project you work in teams. You divide up the tasks, monitor the work of each person, and integrate these individual efforts into a single package. In the “real world” a project is rarely, if ever, developed alone, so learning to be an effective part of a development team is an important learning experience.
With most classroom projects you are given a problem and told to solve it. In the real world, however, problem statements are not given out in a finished form. Your team must develop the problem statement through meetings and discussions with potential users of your system in case you are developing a real time project.
In your academic classes you would have learned formal methods for representing specification and design documents. However, code developed in class is usually too small to demonstrate their real benefits. That is not the case with the final-year project. It involves the development of a large, complex package that requires the effective use of software development tools. Without these formal design and implementation methods, the scale of the project will quickly overwhelm you.
Building prototypes is a common task in a development project. Users are often unable to express their needs without seeing a working model. In class there is rarely enough time to develop both a prototype and a fully functional program. However, for the final year project you will build a working prototype of your proposed project.
Two fundamentally important parts of the project are the written documents you produce and the oral presentations you give. In the mid semester, you usually will deliver an Interim Report and demonstrate your prototype. At the end of the semester, you would produce a Final Report and give a presentation of the finished system.
As you can see, there is much more to a final year project than simply “writing lots of code and documentation”. Instead, it is a chance to put into practice the concepts that, until now, have only been studied formally. By the end of the project you will have developed a set of practical skills that will serve you well throughout your professional career. That is why the hours put into this course considered hours are well spent.