Bachelor's student in Technical Computer Science
In the new educational system at Twente, every Technical Computer Science module is finished off with a project. In the projects, you learn to apply the knowledge you acquired during lectures to a relevant project. It is very edifying, but also a lot of fun. For example, it is super cool to be able to send messages and files through an application you made yourself, using a network you made yourself. That is actually the project we were assigned at the end of our third module. We had to work in with a group of four people. The assignment, to be precise, was to make a chat application that would work on a network set up between our laptops, so without a server. We were given a week and a half to do it, and we were allowed to manage the time ourselves.
We built our application on the basis of the model-view-controller principle. This means that the interface, the view, and the protocol (the model), don't communicate with each other, but that the controller takes care of the communication. We made every project component ourselves, using Java for most of the programming. We had had lectures on this programming language during the previous module. So the project was made up of different parts: the user interface (the view), the controller, the protocol and the network layer. We didn't cover all these different areas in the third module – we had already applied the model-view-controller principle during our project in the second module. The other components and how they work was covered during the third module's lectures and tutorials. Every Thursday, for example, we had a practical in which we simulated a part of the protocol layer that makes up the Internet. So we had already written protocols. But what made the project challenging was that we had to come up with everything from scratch. That was the fun of it, too. Nothing was been laid out for us; there were only a few requirements we had to stick to.
In our group, we first decided on the protocol. That way we knew how each of the different parts would communicate with each other. This approach enabled us to work individually on different parts, with each team member focusing on the part that best suited him, or that appealed the most.
Completing each module with a project means you learn how to apply the theory in practice, but it also improves your skills in team work, planning, setting goals and handling changes that come up during a project. Once you have finished a project, you feel you have really understood the theory presented in that module and you can be proud of the product you have delivered.