Categoria: Nuclear Horário Semanal



Baixar 22.83 Kb.
Encontro06.08.2016
Tamanho22.83 Kb.


Docentes:

José Manuel de Castro Torres (parte teórica)

José Vasconcelos (parte prática)
Disciplina:

Paradigmas da Programação


Curso - Ano:

Engenharia Informática - 4º ano


Regime:

Semestral – S2


Categoria:

Nuclear
Horário Semanal:

2h teóricas + 3h práticas
Enquadramento e objectivos da disciplina:

Durante muito tempo o desenvolvimento de software seguia regras ad-hoc que dependiam essencialmente da experiência e intuição da equipa de desenvolvimento de software. À medida que as aplicações e as arquitecturas dos sistemas informáticos se tornaram cada vez mais complexas, estruturadas e sofisticadas e os requisitos impostos se assumiram cada vez mais exigentes, os programadores e designers de sistemas tiveram que se adaptar e desenvolver metodologias e abordagens mais eficientes. Actualmente os engenheiros de software adoptam diferentes tipos de abordagens de acordo com a área de aplicação e com a necessidade específica do sistema a implementar. A abordagem seguida no desenvolvimento de sistemas depende não só da formação específica do programador mas também da área específica da aplicação. A disciplina de paradigmas da programação pretende dar a conhecer os alunos algumas das diferentes abordagens ou paradigmas existentes para o desenvolvimento de aplicações de software, nomeadamente: o paradigma declarativo (e.g. linguagens funcionais - Lisp) e o paradigma imperativo (e.g. linguagens orientadas-objectos - Java).


Sistema de avaliação:

Os conhecimentos dos alunos serão certificados por avaliação contínua em duas componentes com igual peso na nota final:



  • Teórica/Teórica-Prática (TEO): é constituída por uma prova de avaliação realizada no decorrer das aulas. Nesta componente, é exigida uma classificação mínima igual a sete (7) valores. Como referido atrás, a nota da teórica irá ponderar com a nota da componente prática para efeitos do cálculo da nota final. A falta a um momento de avaliação ou a falta de um elemento de avaliação será convertida numa nota 0 (zero) para efeitos de cálculo da classificação. Em caso de “não aprovação”, o aluno será remetido para exame de recurso ou especial (seja trabalhador ou finalista), desde que o aluno tenha obtido a aprovação na componente prática da disciplina e cumprido o regime de assistência às aulas. Nesta aulas, a presença é obrigatória em, pelo menos, 40% das aulas dadas.

  • Prática (PRANL): a avaliação desta componente será efectuada ao longo do semestre através de 2 trabalhos práticos que serão realizados na aula e/ou em casa. Os trabalhos específicos e individuais serão entregues ao docente nos prazos previstos no programa, e dentro do período lectivo do semestre. A falta a um momento de avaliação ou a falta de um elemento de avaliação será convertida numa nota 0 (zero) para efeitos de cálculo da classificação. O resultado da avaliação correspondente à componente prática será dado pela média aritmética dos trabalhos. Os alunos com classificação inferior a 10 valores na componente prática são declarados “não aprovados” à disciplina, independentemente do resultado da avaliação da componente teórica. Nesta aulas, a presença é obrigatória em, pelo menos, 70% das aulas dadas.

A classificação final da disciplina e as diversas classificações dos outros elementos, traduzidas numa escala de 0 a 20 valores, deverão ser publicadas em pauta elaborada pelo docente e afixada no placar do curso, até ao encerramento do período lectivo da disciplina.
Sistema de avaliação para alunos com estatuto de estudante-trabalhador

No caso de alunos com o estatuto de trabalhador-estudante e com impossibilidade de presença nas aulas práticas não laboratoriais, a componente prática da avaliação será substituída por 1 trabalho com apresentação em sala de aula (o aluno deverá reunir com o docente ao longo do semestre para que possa ser acompanhada a evolução dos trabalhos e garantir a autoria do mesmo) e 1 teste prático a realizar na última aula prática não laboratorial versando toda a matéria leccionada nessas aulas práticas não laboratoriais. A classificação da componente prática será dada pela média aritmética das classificações obtidas nestes dois momentos de avaliação e está sujeita às regras acima definidas para esta componente da avaliação.


NB: Os alunos com estatuto de trabalhador-estudante que optem por esta última modalidade de avaliação da componente prática devem comunicar isso ao docente, por escrito, até ao prazo máximo de 3 semanas depois do início das aulas. No caso de não haver qualquer comunicação em contrário, todos os alunos, incluindo outros trabalhadores-estudantes, estão sujeitos à avaliação prática em sala de aula.

Sistema de avaliação na época de recurso/época especial


Os conhecimentos dos alunos serão certificados por avaliação em duas componentes com igual peso na nota final:

  • Teórica/Teórica-Prática (TEO): é constituída por um exame versando toda a matéria leccionada na disciplina, com a duração máxima, incluindo tolerância, de 1h30min. O aluno só se poderá submeter a este exame se tiver sido aprovado na componente prática desta disciplina e tenha cumprido as assiduidades mínimas estabelecidas no regulamento pedagógico. É exigida uma classificação mínima igual a sete (7) valores nesta componente teórica da avaliação para que se possa ponderar com a nota da componente prática para efeitos do cálculo da nota final.

  • Prática (PRANL): não está prevista nenhuma avaliação de recurso para a componente prática da disciplina.

A classificação final da disciplina e as diversas classificações dos outros elementos, traduzidas numa escala de 0 a 20 valores, deverão ser publicadas em pauta elaborada pelo docente e afixada no placar do curso.
Programa da disciplina:

  1. Apresentação

    1. Enquadramento e Objectivos

    2. Metodologia e Sistema de Avaliação

    3. Conteúdo Programático e Bibliografia

  2. Conceitos Gerais sobre Linguagens de Programação

    1. Linguagem Natural

      1. Sintaxe e Semântica

    2. Linguagens Naturais e Linguagens de Programação

    3. Normalização das Linguagens

    4. Linguagens de Programação

      1. Arquitectura e Princípios das Linguagens

      2. Classificação das Linguagens

      3. Elementos das Linguagens

      4. Elementos Metalinguisticos

      5. Descrição Formal de uma Linguagem

        1. Sintaxe (EBNF e Diagramas Sintácticos)

        2. Semântica (Máquina Abstracta e Lambda Calculos)

  3. Modelo de Programação Orientada aos Objectos

    1. Metodologias Orientadas aos Objectos

    2. Modelização Gráfica UML

    3. Caso Prático (Java)

      1. Descrição e Instalação do JDK

      2. Introdução ao Java

      3. Identificadores, Palavras-Chave e Tipos de Dados

      4. Expressões de Controlo de Fluxo

      5. Arrays

      6. Objectos e Classes

      7. Interfaces Gráficas

  4. Modelo de Programação Funcional

    1. Linguagens Funcionais

    2. Princípios das Linguagens Funcionais

    3. Caso Prático (Lisp)

      1. Descrição e Instalação do ambiente de desenvolvimento

      2. Introdução e Princípios Básicos do Lisp

      3. Variáveis

      4. Hierarquia de Elementos

      5. Definição de Funções

      6. Ordem de Avaliação de Expressões-S

      7. Variáveis Locais

      8. Listas

      9. Estruturas de Controlo e Recursividade

      10. Operadores Booleanos

      11. Listas de Associação


Bibliografia principal:

  1. Fischer, Alice, Grodzinsky, Frances, “The Anatomy of Programming Languages”,

Prentice-Hall, 1993

  1. Appleby, Doris, “Programming Languages, Paradigm and Practices”,

McGraw-Hill, 1991

  1. Eckel, Bruce, “Thinking in Java”,

President, MindView Inc., 1997, www.eckelobjects.com.

  1. Steel, Guy L. Jr., “Common Lisp”, 2nd Ed. (HTML Version), http://www.cs.cmu.edu/Groups/AI/html/repository.html or http://www.cs.virginia.edu/~vision/cltl2/clm/node1.html.


Bibliografia complementar:

  1. Friedman, Daniel, Wand, Mitchell, “Essentials of Programming Languages”,

MIT Press, 1992

  1. Sethi, Ravi, “Programming Languages: Concepts and Constructs”,

Addison-Wesley, Reading, Massachusetts, 1989
Distribuição dos tempos lectivos e da bibliografia:

  1. Apresentação

Horas previstas: 1

Bibliografia:-



  1. Conceitos Gerais sobre Linguagens de Programação

Horas previstas: 20

Bibliografia: [1, 2]



  1. Modelo de Programação Orientada aos Objectos

Horas previstas: 28

Bibliografia: [2, 3]



  1. Modelo de Programação Funcional

Horas previstas: 20

Bibliografia: [2, 4]


O tempo restante será dedicado à resolução de exercícios.
Horário de atendimento ao aluno:

O horário de atendimento será definido com os alunos.


Resumo:

Conceitos Gerais sobre as Linguagens: linguagem natural, sintaxe e semântica, linguagens naturais e linguagens de programação, normalização das linguagens. Linguagens de programação: arquitectura e princípios das linguagens, classificação das linguagens, elementos das linguagens, elementos metalinguisticos, descrição formal de uma Linguagem. Modelo de Programação Orientada aos Objectos: metodologias orientadas aos objectos, modelização gráfica UML, caso prático (Java). Modelo de Programação Funcional: linguagens funcionais, princípios das linguagens funcionais, caso prático (Lisp).


Abstract:

General concepts about languages: natural languages, syntax and semantic, natural languages and programming languages, language normalization. Programming languages: evaluation principals of language designs, language classification, language elements, meta-language elements, and languages formal description. Object-Oriented programming model: object oriented methodologies, graphical notation UML, practical study case (Java). Functional programming model: functional languages, functional language principles, practical study case (Lisp).





©principo.org 2016
enviar mensagem

    Página principal