Curricular Unit:Code:
Web Applications Project834PAWB
Year:Level:Course:Credits:
1MasterComputer Systems Engineering (Mobile Computation)6 ects
Learning Period:Language of Instruction:Total Hours:
Portuguese/English78
Learning Outcomes of the Curricular Unit:
This course aims to deepen the knowledge of web programming using an approach with frontend and backend implementations in two distinct components. These tools will be approached to support project development in this course.
Upon successful completion of this course unit students should be able to:
1. Ability to define the architecture of a web application and its components.
2. Ability to define and choose technologies for each application component.
3. Know code analysis methods, application performance.
4. Have knowledge of programming techniques adapted to large projects.
5. Ability to include accessibility, internationalization, and localization techniques.
Syllabus:
0. Presentation, Framework and Objectives, Methodology and Evaluation System, Program Content and Bibliography
1. Introduction
2. The HTTP Protocol: Introduction and Operation
3. Basic Architecture of an Application
4. MVC Architecture Standard
5. REST API
6. Web Security: OWASP Recommendations
7- Service-based architectures
8- Frameworks
Demonstration of the Syllabus Coherence with the Curricular Unit's Objectives:
The syllabus covers the intended objectives, being organized in units that allow studying the main areas that characterize web development. Initially, a presentation is made about the Docker tool. Then we will cover the framework concepts for front end and back end development. Learning objectives are achieved by complementing these concepts with concrete examples performed in a laboratory environment using brief presentations/seminars and hands-on exercises. The practical implementation of a web project allows students to apply and validate acquired knowledge, and develop the skills provided.
Teaching Methodologies (Including Evaluation):
The transmission of knowledge in this course will be done using the expository and demonstrative methodology, wherein practical classes are presented the fundamental concepts to the understanding of the program themes. In these classes, students are faced with real problems that they have to solve. The assessment will be calculated according to the following formula:
Final grade = 50% Delivery and Presentation of Proposed Exercises + 50% Project
Demonstration of the Coherence between the Teaching Methodologies and the Learning Outcomes:
The teaching/learning methodology applied in this course as well as its assessment system is perfectly aligned with the objectives to be achieved by the students at the end of the school term. The concepts are presented, discussed, applied and evaluated in the context of the classes. This provides students with a solid foundation of fundamental knowledge to understand in depth the challenges facing this area of knowledge. On the other hand, so that the study is not restricted to conceptual models, in practical classes are presented concrete case studies and implemented solutions to real problems using the appropriate tools. This combination provides students with training that enables them to know the scientific foundations essential to a good understanding of the subject as well as their ability to adapt to constant technological change. The goal is to train professionals who are knowledgeable in techniques, tools, and the state of the art. In this course, the learning objectives are focused on the ability to define and organize a web application project. Through the development of the project itself, students acquire the skills necessary to meet the objectives.
Reading:
Docker: Up & Running: Shipping Reliable Containers in Production, Sean P. Kane & Karl Matthias, 2018. O'Reilly.
Mastering Go: Create Golang production applications using network libraries, concurrency, machine learning, and advanced data structures, 2nd Edition, Mihalis Tsoukalos, 2019. Expert Insight.
React Cookbook: Recipes for Mastering the React Framework, David Griffiths & Dawn Griffiths, 2021. O'Reilly.
Introdução ao desenvolvimento moderno para a web - do front-end ao back-end: uma visão global! / Filipe Portela, FCA, 2018. ISBN: 978-972-722-897-3.
Typescript - o javascript moderno para criação de aplicações / Luís Abreu, FCA, 2017. ISBN: 978-972-722-864-5
Marty Hall and Larry Brown, Core Servlets and JavaServer Pages, Available free at http://pdf.coreservlets.com/
Microsoft, Web Application Architecture Guide, 2008.
Andrea Del Bene, Wicket user guide, 2013
Robin Nixon, Learning PHP, MySQL & JavaScript, 2014