Web Systems 2017/2018
- 6 ECTS
- Taught in Portuguese
- Both continuous and final Assessment
- relevant skillset
Once this course is finished, the student ought to be able to:
- Design web projects, following software development methodologies/process, since requirement analysis, to web application release.
This course helps prepare the students for the programmer career path.
Knowledge acquired in the curricular unit:
Algoritmia e Programação, namely: logical conditions, loops and arrays.
Matemática Discreta: logic, boolean expressions and sets.
Programação Orientada a Objetos: information hiding, refactoring.
Redes de Computadores: TCP/IP, HTTP.
Exposition, demonstrations, experimental. Concepts are explained in theory, canonical examples are demonstrated, students experiment by applying concepts to practical problems.
Body of Work
Tools and Protocols
- Web Storage
Structured Data Formats
- Web services
Abreu, Luís (2015); HTML5 - 4a edição; FCA, Lisboa; ISBN: 978-972-722-821-8
Remoaldo, Pedro (2011); CSS3; FCA, Lisboa, ISBN: 978-972-722-731-0
HTML5 specification, W3C Candidate Recommendation 6 August 2013 http://www.w3.org/TR/html5/
CSS standards and drafts, http://www.w3.org/Style/CSS/
ECMAScript specification, Standard ECMA-262 http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
Mozilla Developer Network - https://developer.mozilla.org/pt-PT/
Abreu, Luis (2016); NODE.JS- CONSTRUÇÃO DE APLICAÇÕES WEB; FCA, Lisboa; ISBN: 978-972-722-860-7
HTTP, properties, verbs, return codes, headers.
HTML5, editors, resources. New elements and attributes.
CSS 3, what changed? Cascade revisions. Specificity rules. Best and worst practices.
CSS Expressions. Content generation. CSS3 resources.
HTML5/CSS3 demonstration covering: Input types, Form validation, Rounded borders, Shadows, Content-generation, Pseudo-classes, Transitions.
Browser as a development tool. Analysis of pre-defined CSS styles. Classes, selectors, positioning, display, pseudo-classes, units.
Strongly versus loosely typed languagens.
Control Structures. Variable scoping. Global e function variable scope. Variable hoisting.
Arrays, indices, length, for...in.
Objects, manipulation, criation, definition. This.
Automatic execution and code promiscuity demonstration.
Adder dpplication demonstration: number type INPUT (HTML5), DOM traversal, getElementById, Number or String? Multiplication, parseInt, valueAsNumber. innerHTML. Element events, Event listeners: (onclick, onload). Feature detection. myfirstlibrary/framework. Anonymous functions.
Dynamic button creation demonstration. this keyword. Resolve script collisions through the module pattern. Module communication.
JSON as a structured data transfer format between applications in a client-server architecture. JSON as alternative to XML. Problems of XML in this context.
JSON syntax. Parse e Stringify. Creating dynamic content through data stored in JSON format.
Using data in two JSON files, creating an application that dynamically changes its content through the data and user interaction.
Classic web model versus AJAX. Birth of AJAX and the use of XML. Differences in efficiency between JSON and XML for AJAX responses. Problems with the AJAX model. Same-Origin Policy. Reasons and restrictions. DDOS attacks.
Server-side programming language (PHP) to overcome the Same-Origin Policy restrictions on AJAX requests to external resources.
CORS as HTML5 technology to avoid the use of a intermediate server.
XAMPP, Apache, PHP. Syntax and some PHP functions.
Installing and configuring a local server through XAMPP.
Demonstration of two frameworks: Bootstrap and jQuery in one aplicação.
Webservices. Definition, two major types: SOAP, REST. Motivation. SOAP architecture description: producer, consumer, service directory, service description. Canonical examples.
RSS feeds as web services.
Web application state. Cookies as first solution. Problems, headers, etc. Explanation of the HTML5 web storage technology as current solution to store client-side state. LocalStorage and SessionStorage. Note taking application demonstration.
Apache server + PHP. Criation of RESTful web services using PHP with reading and writing information on file.
PHP Web services with reading and writing information on MySQL relational databases.
Demonstration of the syllabus coherence with the curricular unit's objectives
Demonstration of the teaching methodologies coherence with the curricular unit's objectives
The three methologies chosen encompass the technological possibilities students have with web programming. Canonical examples serve to propose quick problems the student can assimilate and understand the workflow. By experimenting, students will be allowed to roam free in their solutions while still focusing on each problem’s end goal. In these sessions, students will need to think not only of how might can achieve their goal but also test their ideas against the ideas of their peers. These potentially contradictory views will breed an optimal solution.
|relevant generic skill||improved?||assessed?|
|Achieving practical application of theoretical knowledge||Yes||Yes|
|Adapting to new situations||Yes|
|Analytical and synthetic skills|
|Commitment to effectiveness||Yes||Yes|
|Commitment to quality||Yes||Yes|
|Ethical and responsible behaviour||Yes|
|Foreign language proficiency||Yes|
|Information and learning management|
|Initiative and entrepreneurship capability|
|IT and technology proficiency||Yes||Yes|
|Problem Analysis and Assessment||Yes|