Project Description

 

 

The major concern of today’s software engineering education is to provide students with the skills necessary to integrate theory and practice; to have them recognize the importance of modeling and appreciate the value of a good software design; and to provide them with ability to acquire special domain knowledge beyond the computing discipline for the purposes of supporting software development in specific domain areas. In addition, it is essential that students learn how to exploit previous successful experiences and knowledge of other people in solving similar problems. This knowledge about successful solutions to recurring problems in software design is also known as software design patterns (DPs).
Apart from learning individual DPs and the principles behind them, students should learn how to understand and apply patterns they have not seen before, how to integrate different DPs, and how to use this knowledge in real-life situations.
This indicates a rising need for the social constructivist approach in software engineering education. In particular, an active learning paradigm is needed which recognizes that student activity is critical to the learning process. The basic philosophy of active learning paradigm is to foster deep understanding of subject matter by engaging students in learning activities, not letting them be passive recipients of knowledge. Moreover, the students are involved in the knowledge construction and sharing through social interactions in the given learning context.
Following this paradigm, we identified several requirements that a learning environment for software DPs needs to meet:

  • Enable students to learn at the pace and in a place that best suits them.
  • Integrate software development tools that would enable students to experience patterns-based software development in the context of real-world problems.
  • Include collaborative tools such as discussion forums, chat, and tools for software artifacts exchange.
  • Enable seamless access to online repositories of software DPs and communities of practice that will provide students with right-in-time access to the relevant online resources, that is, to the resources on software DPs relevant for the problem at hand.
  • Provide tools for informing teachers about students learning activities, their usage of learning content and other valuable information that could help them improve the learning content and/or the chosen teaching approach.

Even though the above mentioned kinds of tools do exist today, they are not used in an integrated way. Instead, current approaches to learning software patterns are based on individual use of these tools. The major problem with this ‘fragmented’ approach is in its lack of means for enabling exchange of data about the activities that students performed within individual learning tools and learning artifacts they have produced during those activities. Besides, with such an approach it is very hard to provide support for context-aware learning services and offer personalized learning experience to students.
In this paper we describe an integrated learning environment for software DPs called DEPTHS (Design Patterns Teaching Help System). DEPTHS integrates an existing Learning Management System (LMS), a software modeling tool, diverse collaboration tools and relevant online repositories of software DPs. The integration of these different learning systems and tools into a common learning environment is achieved by using the Semantic Web technologies, ontologies in particular. Specifically, ontologies enabled us to formally represent and merge data about students interactions with the systems and tools integrated in DEPTHS. On top of that data, we have built context-aware educational services that are available throughout the DEPTHS environment. These services enrich and foster learning processes in DEPTHS in two main ways:

  • recommendation of appropriate learning content (i.e., Web page(s), lessons or discussion forum threads describing software DP).
  • We can recommend fine-grained learning resources, and make the recommendations aware of the recognized learning needs.
fostering informal learning activities by bringing together students and experts that are dealing with the same software problem or have experience in solving similar problems.