|Course:||BSc in Computer Science and Computer Engineering|
|Curricular Unit (UC)||
Web Application Development
|Year: 3rd||Semester: 2nd||ECTS: 6||Total Hours: 160|
|Contact Hours||T:||TP: 67.5||PL:||S:||OT:|
|Professor in charge||
Pedro Miguel Henriques dos Santos Félix
T - Theoretical; TP - Theory and practice; PL - Laboratory; S - Seminar; OT - Tutorial.
- Intended learning outcomes
Students who successfully complete this course unit be able to:
1. Design, implement and test Web APIs that expose an information system functionality subset, addressing aspects such as API evolvability, ease of use by multiple client types (e.g. native mobile applications) and security.
2. Design, implement and test, over the browser platform, medium to high complexity applications, using Web APIs and Single Page Application (SPA) frameworks.
3. Deploy and operate Web applications and APIs over cloud platforms, namely PaaS (Platform as a
Service) or IaaS (Infrastructure as a Service), including horizontal scalability and load balancing aspects.
4. Identity and solve performance issues in Web applications and APIs.
5. Create technical documentation about the developed systems.
- Web API design, including the selection and creation of media-types and the use of hypermedia controls.
- Study of a library or framework for the development of Web APIs (e.g. ASP.NET or similar).
- Design and implementation of applications over the browser platform, namely using the Single Page Application (SPA) model.
- HTML 5 APIs as a platform for the development of browser based rich Web applications.
- Bidirectional communication techniques between client and server.
- Asset composition and minimization.
- Optimization techniques based on CDNs (content delivery network) and load balancing.
- Unitary, integration and performance testing.
- Application logging production and analysis.
- Application hosting and operation on cloud-based platforms.
- Evidence of the syllabus coherence with the curricular unit’s intended learning outcomes
This course unit complements and consolidates the "Internet Programming" unit goals, providing learning outcomes in three areas of Web application development: Web Application Programing Interfaces (API) development, rich browser-based application development, and deploy and operation over cloud-based platforms.
Syllabus items (1) and (2) contribute to the first learning outcome.
The second learning outcome is based on the syllabus items (3) to (5).
Finally, the syllabus items (7), (9) and (10) address the third learning outcome.
This course unit has two additional secondary learning outcomes: performance optimization and technical documentation production. The syllabus items (6) to (8) are used for this first goal. The second secondary goal is achieved transversally via all the syllabus items.
- Teaching methodologies (including evaluation)
Theoretical and practical teaching is planned during the semester in 30 lectures that correspond to 67.5 of contact hours (15 lessons of 3 hours and 15 1.5 hours). The total student working hours is 160. The lectures are intended for presentation and explanation of the topics and their practical application demonstration. The main topics are further explored by developing a one or more web application throughout the semester, in groups of 2 or 3 students.
Learning outcomes (1) to (5) and (7) are evaluated individually through the written test conducted at the end of the semester, and through the evaluation of the practical work delivered during the semester. During follow-up of group work performed in practical lectures, the learning outcomes (6), (8) e (10) are also assessed. All learning outcomes are also evaluated in a final work discussion.
The final grade is the average of the written test and practical work and discussion.
- Evidence of the teaching methodologies coherence with the curricular unit’s intended learning outcomes
The theoretical-practical lectures are used to present the theoretical bases of the syllabus contents, with a focus on the understanding learning outcomes and using interactive presentation strategies. These lectures are also used to design and develop small examples and address case studies. The remaining extra-lecture work is guided by the project work, with the goal of complementing the conceptual understanding and providing the design and development learning outcomes.
- Main Bibliography
G. Block, P. Cibraro, P. Felix, H. Dierking, D. Miller, Designing Evolvable Web APIs with ASP.NET, O’Reilly, 2014. ISBN 9781449337919
Links to multiple public information, dependent on the adopted frameworks, available at the public course repository (e.g. https://github.com/isel-leic-daw/1718v-public/wiki/calendar ).