1. Information
  2. Course Plan and Contents
  3. Acknowledgement
  4. Special guidelines for the COVID-19 pandemic (PLEASE READ!)
    1. General Rules
    2. Recording attendance
    3. Classes: Remote or in person?
    4. Theoretical classes
    5. Practical classes
      1. Asking and answering doubts and questions in class
      2. Designated exercises and homework
    6. How can the situation change?
    7. References and official recommendations
  5. Questions answering schedule


Course Plan and Contents

Week Dates Theory Class Practical Class
1 21-25 Sept. Course Presentation: Introduction to the web and databases
UML Class Diagrams: Classes and Associations

Slides: Presentation | UML Class Diagrams

Alternatives: UML Class Diagrams by André Restivo | Alt. UML Slides 1 Alt.UML Slides 2 by Carla Lopes
No practical class
2 28 Sept-02 Oct. Relational Model: Relations, tuples, attributes and constraints. Conversion from the UML model.
Slides: Relational Model | Conversion from UML to Relational by Carla Lopes
3 5-9 Out. SQL: Table creation. Data types and constraints. SQLite.
Slides: SQL Definition
Relational Model
Exercises | Delivery Project Topics and Group Formation
4 12-16 Oct. SQL: Database queries. Selecting, filtering, set operations and joins.
Slides: SQL Query
Exercises on Schema Design using SQL | SQLite3 Guide | Solutions
5 19-23 Oct. SQL: Inserting, deleting and updating
Slides: SQL Manipulation
SQL Query writing exercises
6 26-30 Oct. HTML 5: Introduction, basic tags, tables, text formatting, common attributes and generic blocks. Forms, the semantic web, metadata and media tags.
Slides: HTML 5
SQL Query writing exercises
Exercises | Solutions
7 3-9 Nov. CSS 3: Introduction, basic selectors, properties. Positioning, specificity, inheritance.CSS 3
Slides: CSS 3
HTML Exercises
8 9-13 Nov. No classes (FEUP Week)  
9 10-16 Nov. PHP: Variables, loops, arrays and functions. Receiving values from HTML pages. Classes and objects. Database connections.
Slides: PHP

Examples: HTML & CSS | Listing
CSS Exercises | Solutions | Live Coding (News website exercise) | Delivery UML and Relational Model for the Project
10 17-23 Nov. PHP: Code organization, forms, actions and register.

Examples: Organization & Register
Project Information
Accessing the Server | Working locally using Docker |
Other PHP Exercises | Set up Apache+PHP+SQlite3 (Windows 10 Linux Subsystem)
11 24-30 Nov. PHP: Error handling and file uploads
Examples: Login, Logout and Shopping Cart
Exercises | Other PHP Exercises
12 1-7 Dec. PHP Examples

Examples: Messages, Search and Pagination
Project | Other PHP Exercises
13 8-14 Dec. PHP Examples
Examples: Orders
Project | Other PHP Exercises | PHP FAQ’s / Common Mistakes
14 15-20 Dec. Q&A (preparation for the final exam) Delivery Project Presentation


Prof. André Restivo is the original author of many of the materials made available at this website.

Special guidelines for the COVID-19 pandemic (PLEASE READ!)

As you know, the COVID-19 pandemic will affect the classes for the school year of 2020/2021.

To comply with the regulations specified by the University of Porto and the Direction of FEUP, I have prepared a few rules that students and professors should follow to ensure the well-being and academic success of everyone involved.

Please read these guidelines carefully and email me if you still have any questions. I will update this guide for everyone to see.

General Rules

  • All persons are required to wear appropriate masks whenever they are within FEUP premises.
  • Desinfection materials will be provided for students to clean their keyboard and mouse when using a FEUP computer in class.
    • Besides the personal protection materials that will be offered at FEUP, students are free to bring their own pocket desinfectants as well.

Recording attendance

All attendance will be recorded via moodle. Students should log into the course unit and record their presence, even those that are attending remotely.

Classes: Remote or in person?

The FEUP Direction has specified the following rules:

In Portuguese:

As atividades letivas irão assim decorrer em ambiente misto, com aulas a distância (tipo A) e aulas presenciais (tipo B), modos já previstos na elaboração dos horários:

· Aulas do tipo A (em geral, as teóricas) vão funcionar integralmente a distância, devendo ser em modo síncrono a partir da FEUP.

· Aulas do tipo B (em geral, as práticas), presenciais. Nestes casos, as aulas podem ocorrer com toda a turma presente, se a sala atribuída permitir um distanciamento entre estudantes adequado, ou podem ter de ser separadas em dois grupos que terão aulas presenciais em semanas alternadas.

In English:

Teaching activities will thus take place in a mixed environment, with distance classes (type A) and face-to-face classes (type B), as already provided for in the preparation of timetables:

· Type A classes (in general, theoretical) will work completely remotely, and should be in synchronous mode from FEUP.

· Type B classes (in general, the practical ones), face-to-face. In these cases, classes can take place with the entire class present, if the assigned room allows for adequate distance between students, or they may have to be separated into two groups that will have face-to-face classes on alternate weeks.

Theoretical classes

We will have theoretical classes exclusively via remote connection on Zoom (see the moodle course page for the Room link and Password).

Practical classes

We will start the practical classes in the alternate attendance mode. This means that, every week, only half of each class will will be present in classroom.

Check at the course plan page to see which classes you need to attend in person.

Even though only half will attend in person, the remaining students at that class will be able to attend remotely, via Zoom. Rooms will be set up for the practical class and the professors will do their best to share the contents, so that everyone can follow:

  • Transmitting what is written on the board or drawing on the computer screen, whenever necessary
  • Live coding by sharing their screen

All students, including the ones physically present in class, should join the Zoom classroom for that particular class. This will be necessary for asking questions, as explained below.

Asking and answering doubts and questions in class

During the practical classes, students ask questions that require the professor to come close to the student to answer the question. In order to reduce the risk of virus transmission, we will try to implement the following measures:

  • When there is a question involving theoretical exercises, involving drawing, the question scenario will be replicated on the board or in the computer screen by the professor and solved there.

  • When there is a question involving code present the student’s computer, that student will be asked to present their screen using Zoom’s “Share Screen” feature. The professors will then request control of the student’s computer to solve the issue from their seat, without having to come close to the student.

    • Students are advised to turn off all messaging apps and other non-work related applications during class, as their screen will be shared with the entire class while the doubt is being cleared.

    • If you use your personal laptop in class, I suggest creating a separate user account that you only use during practical classes. This way, you will have a clean Desktop and Documents folder, and no personal information can be shared by accident when you share your screen. At the end of the semester, you can delete that account and keep your computer clean.

Designated exercises and homework

Every week, there will be a list of exercises that the professors will designate as the tasks for the practical class and others that will be homework for the students that attend the practical class in person.

Everyone is encouraged to solve these exercises on their own and compare with the solutions that will also be made available. If any doubts arise, students should send an email to the professor of the practical classes.

How can the situation change?

  • If, as the semester progresses, we believe that there is no need for the splitting of students in the practical class, we will ask all students to attend in person. For example, if the class is large enough to keep the required social distancing of 2 meters between students.
  • There may be an additional doubts clearing schedule in the future on Mondays/Tuesdays if the professors and the students decide that the alternate practical classes are not enough.
  • If the Portuguese Government decides to return to confinement, the classes will change to fully remote. This is a serious situation and will certainly be communicated to all students via email by the Direction of FEUP.

References and official recommendations

Questions answering schedule

Institutional e-mail: jrsilva@fe.up.pt

If you have any questions or doubts, you can find me on Fridays from 5pm to 6pm via Zoom, using a Room URL + Room Password that you can find on Moodle, after authenticating and accessing the page of the course unit.

  • If you have questions regarding an exercise or project-related issue, please contact the professor of your practical class, as they will have most knowledge regarding your work.
  • Student/Worker students are encouraged to show up at this schedule and present the progress of their work and the practice exercises that they should do at home.