Software development requires a variety of technical knowledge and skills from different fields of computer science, software engineering and management. Beside having good coding skills, knowledge regarding the software development process is required from every software engineer. Furthermore, considering the complexity of problems at hand, it is absoultely necessary to have good understanding of different tools and technologies and ability to integrate them into own applications.
Project assignment is designed to represent a real-world software engineering project of rather small complexity which consists of a GUI, database, client-server communication over network etc. To successfully complete the project, students must use previously gained knowledge and skills from several different topics of computer science (databases, GUI, OS, networking...), actively build on top and combine them with the knowledge acquired in this course. Project development implies the use of generic development processes with the support for engineering approach to problem solving. Development environments, collaboration tools (CVS, IDE, CASE...) and component reuse are also needed in order to ensure a steady and timely project development.
The project implies team work which requires good management and organisational skills needed for oral and written communication inside and outside of the team. Timeliness and efficient team work are the key for successful project completion. The students are advised that it is in their best interest to solve any conflicts or misunderstandings which arise during the project development and may have a negative impact on end result, among the team members through discussion and reaching compromise. In the case of a serious conflict between group members or non-participation of one or more group members in project activities the group should come to the teaching assistant for help as soon as possible. Complaints about teamwork issues articulated at the end of the semester will be disregarded.
Project results will be monitored and graded on a regular basis by the TA assigned to each project team. Remarks about project development, current state and results in each phase of the project with recommendations for improvement should serve as a guideline for further project development. The knowledge and skills acquired through the process of project development will give students valuable experience and a starting point for future careers in industry.