Unidade Curricular:Código:
Laboratório de Programação831LAPR
Ano:Nível:Curso:Créditos:
3LicenciaturaEngenharia Informática5 ects
Período Lectivo:Língua de Instrução:Nº Horas:
Primeiro SemestrePortuguês/Inglês65
Objectivos de Aprendizagem:
Esta unidade curricular tem como objetivo aprofundar os conhecimentos de programação recorrendo a uma linguagem diferente das que foram anteriormente lecionadas. Serão também abordadas novas ferramentas para apoiar o desenvolvimento do projeto nesta unidade curricular. Pretende-se explorar a programação web aprofundando a utilização de uma Framework MVC. Esta aplicação será implementada usando uma abordagem full-stack.
Ao completar com sucesso esta unidade curricular os alunos devem ser capazes de:
-Estruturar e Planear uma nova aplicação web
-Elaborar um Mockup de uma nova aplicação web
-Entender e descrever quais são os princípios de programação full-stack, server-side e client-side
-Conhecer a organização do padrão de Arquitetura MVC
-Aptos a desenvolver uma aplicação web e/ou API Rest
-Aptos a trabalhar e desenvolver vistas que serão depois interpretadas pelos template engines
-Aptos a desenvolver Páginas web responsivas utilizando frameworks CSS / JS existentes
Conteúdos Programáticos:
0. Apresentação
0.1. Enquadramento e Objectivos
0.2. Metodologia e Sistema de Avaliação
0.3. Conteúdo Programático e Bibliografia
1. Introdução HTML / CSS
1.1. Markup Language
1.2. Responsive Framework
2. Introdução a Linguagem PHP
2.1. Tipos de dados
2.2. Operadores
2.3. Estruturas de controlo
2.4. Estruturas de repetição
2.5. Funções
3. Sintaxe de Programação PHP
3.1. Tratamento de exceções
3.2. Utilização de Arquivos (include, require)
3.3. Fundamentos de programação Orientada aos Objetos (OO)
3.3.1. Classes / Instâncias
3.3.2. Construtores / Destrutores
3.3.3. Encapsulamento
3.3.4. Herança
3.3.5. Interfaces
3.3.6. Classes e métodos abstratos
4. Aplicações Web
4.1. Formulários HTML
4.2. Requests
4.3. Sessões
4.4. Interação com uma base de dados - PDO
5. Framework MVC de Desenvolvimento Web
5.1 Rotas
5.2 Controladores
5.3 Views
5.4 ORM
Demonstração da Coerência dos Conteúdos Programáticos com os Objectivos da Unidade Curricular:
Os conteúdos programáticos cobrem os objetivos previstos, estando organizados em unidades que permitem estudar as principais áreas que caraterizam o desenvolvimento web. Inicialmente é feita uma introdução para permitir a elaboração de páginas estáticas. Depois serão abordados os conceitos da nova linguagem de programação web que será apresentada, sendo que é feito um paralelismo com as anteriores linguagens já ensinadas no curso (i.e., C e Java). Por fim, finaliza-se esta unidade curricular apresentando desenvolvimento web com a utilização de uma Framework MVC, e as suas particularidades/conceitos. Os objetivos da aprendizagem são atingidos complementando estes conceitos com exemplos concretos executados em ambiente de laboratório recorrendo a exercícios práticos.
Metodologias de Ensino (Avaliação Incluída):
A transmissão de conhecimentos nesta unidade curricular será efetuada recorrendo a aulas de cariz prático em ambiente laboratorial, onde são apresentados os conceitos fundamentais à compreensão dos temas do programa. Nessas aulas os alunos são confrontados com problemas reais que eles têm que resolver. A avaliação será calculada de acordo com a seguinte fórmula:
Nota final = 50% Frequência(s) + 40% Projeto + 10% Av. Contínua
As notas obtidas anteriormente devem ser positivas (>= 9,5) para serem consideradas para a determinação da nota final. Se alguma das componentes não for positiva a unidade curricular não será concluída (cf. regulamentos da UFP).
Demonstração da Coerência das Metodologias de Ensino com os Objectivos de Aprendizagem da Unidade Curricular:
A metodologia de ensino/aprendizagem aplicada nesta unidade curricular bem como o seu sistema de avaliação encontram-se perfeitamente alinhados com os objetivos a atingir pelos alunos no final do período letivo. Os conceitos são apresentados, discutidos, aplicados e avaliados no contexto das aulas. Isto garante aos alunos uma base sólida de conhecimentos fundamentais para entenderem de forma aprofundada os desafios que se colocam a esta área de conhecimento. Por outro lado, para que o estudo não fique restrito a modelos conceptuais, nas aulas práticas são apresentados casos de estudo concretos e implementadas soluções para problemas reais recorrendo as ferramentas apropriadas. Esta combinação garante uma formação aos alunos que lhes permite conhecer os fundamentos científicos essenciais a uma boa compreensão do tema bem como a capacidade de eles se adaptarem a mudanças tecnológicas constantes. O processo de avaliação constituído por frequência(s) e trabalho(s) prático(s) permitindo manter um equilíbrio entre o esforço dedicado a ambas as componentes. O objetivo é formar profissionais conhecedores das técnicas, ferramentas, e do estado da arte. Nesta unidade curricular os conceitos relacionados com a área de desenvolvimento web são apresentados e avaliados através de frequência(s) e posteriormente aplicados num projeto.
Bibliografia:
- Elisabeth Robson, Eric Freeman (2005), “Head First HTML with CSS & XHTML”, O'Reilly Media;
- Eric Freeman, Elisabeth Robson (2011), “Head First HTML5 Programming”, O'Reilly Media;
- Michael Morrison (2007), “Head First JavaScript”, O'Reilly Media;
- Rebecca M. Riordan (2008), “Head First Ajax”, O'Reilly Media;
- Ryan Benedetti, Ronan Cranley (2011), “Head First jQuery”, O'Reilly Media;
- Robin Nixon, (2014) "Learning PHP, MySQL & JavaScript"
- Lynn Beighley, Michael Morrison (2008), “Head First PHP & MySQL”, O'Reilly Media;
- Luís Abreu, “HTML5 - 2a Edição Atualizada e Aumentada”, FCA;
- Pedro Remoaldo, “CSS3”, FCA;
- Luís Abreu, João Paulo Carreiro, “JavaScript”, FCA;
- Carlos Serrão, Joaquim Marques, “Programação com PHP 5.3”, FCA.