Teaching
WSS502 - Web Engineering
The aim of this course is to provide students with critical understanding on how to productively engineer Web Applications. The course addresses the concepts, methods, technologies and tools for developing Web applications. Topics covered include evolution of the Internet and the Web, Web technologies and the basic models and architectures in a Web environment. It kicks-off with a theoretical examination of web engineering and its phases. It proceeds to introduce client-side technologies and server-side technologies that support the development of static web sites, dynamic web applications and rich internet applications. It concludes with an overview of cutting-edge concepts, technologies and frameworks that support full stack web development. The course has a theoretical underpinning, but focuses mostly on practical examples on how to engineer Web applications using the introduced implementation methods, techniques and tools.
WSS523 - Software Reuse
The aim of this course is to provide students with critical understanding of the technology, issues and challenges of software reuse at various levels. Specific focus in the course is dedicated to software reuse in web-based systems accessible via mobile devices. The course will enable students to practice software reuse at various levels, with different programming languages and on different platforms. In specific, the use of Java and HTML5 technologies will provide the capability to experience and practice software reuse on both desktop and mobile platforms, as well as at different levels such as object-oriented programming, component-based software development, middleware-based development, WS*-stack services, REST services and model-driven engineering. Finally, management of code repositories is introduced at the last week. In overall, the objective of the course is to enhance critical awareness, promote practical thinking and reasoning to solve practical problems through the reuse of software systems. Upon successful completion of the course, students will be able to:
Understand the concepts, principles and methods of software reuse.
Familiarise and understand the different levels of software reuse.
Make proper use of ready-made software components in practice.
Gain theoretical knowledge and analytical skills to develop applications by employing reuse methods at code, component, design and models levels.
Learn how to reuse Java and Web components.
Distribute effectively the results of their work to other developers using software repositories.
WSS551 - Interactive Design for Web Systems
The aim of this course is to provide an overview of concepts on Human Computer Interfaces design in making more comprehensive and user-friendly computer-based systems. The course will allow students to understand the theoretical dimension of human factors in the acceptance of computer interfaces and identify the impact of usable interfaces in the performance of Mobile and Web systems. The course enables students to identify techniques and practice in various platforms and toolkits for interface design, analysis and evaluation as well as develop creative skills in designing competitive user interfaces in web and mobile systems. Particular emphasis is given to extend students critical awareness of the issues and challenges associated to ubiquitous computing and augmented reality.