21
Plano da Unidade Curricular Documento com o PUC desta unidade curricular. Sítio: Elearning UAb Unidade curricular: Linguagens de Programação Meta Disciplina 2015 Livro: Plano da Unidade Curricular Impresso por: Hugo Santos Data: Quinta, 8 Outubro 2015, 14:35

Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

Plano da Unidade Curricular

Documento com o PUC desta unidade curricular.

Sítio: Elearning UAbUnidade curricular:Linguagens de Programação ­ Meta Disciplina 2015Livro: Plano da Unidade CurricularImpresso por: Hugo SantosData: Quinta, 8 Outubro 2015, 14:35

Page 2: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

Índice

PUC­ Plano da Unidade Curricular

PUC

1. A Unidade Curricular

2. Competências

3. Roteiro

4. Metodologia

5. Recursos

6. Avaliação6.1. Cartão de Aprendizagem6.2. Calendário de avaliação contínua6.3. Exame

7. Plano de Trabalho7.1. Primeiro mês7.2. Segundo mês7.3. Terceiro mês7.4. Quarto mês

Page 3: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

PUC­ Plano da Unidade Curricular

UNIDADE CURRICULAR 21077

Linguagens de Programação

Docente: Jorge Morais

Ano Lectivo: 2015/2016

Page 4: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

PUC

O que é o PUC?

O PUC constitui um documento que visa orientar o processo de aprendizagemdo estudante ao longo da Unidade Curricular a que se refere. É por isso um guiãoque requer uma leitura atenta e que lhe será útil ao longo de todo o percurso deaprendizagem. Aqui encontrará informação sobre as temáticas a estudar, ascompetências a desenvolver, informações sobre como se organiza o processo deaprendizagem, como utilizar e tirar partido do espaço virtual relativo a estaUnidade Curricular, o que se espera de si, como é avaliado, entre outros aspectosfundamentais para realizar da melhor forma este percurso.

Page 5: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

1. A Unidade Curricular

Apresentação da Unidade CurricularMais do que o estudo de uma única linguagem de programação, a cadeira deLinguagens de Programação da Universidade Aberta vai­se centrar sobre oestudo comparado dos diversos paradigmas e características das linguagens deprogramação. Assim os alunos vão conhecer os diversos conceitos e técnicas deprogramação associados aos principais tipos de linguagens de programação(nomeadamente linguagens imperativas, linguagens funcionais, linguagensorientadas por objetos e linguagens lógicas). Na exposição da matériaapresentada, assume­se conhecimento de uma linguagem imperativa,nomeadamente o C (estudada na cadeira de Programação). O conhecimento deuma linguagem orientada por objetos como o C++ (estudada na cadeira deProgramação por Objetos) é também fortemente aconselhado. Como nestemomento já deve ser claro para um estudante de informática, a componenteprática é indispensável no estudo de qualquer linguagem de Programação. Maisdo que uma visão superficial e meramente teórica dos vários paradigmas daprogramação pretende­se uma visão essencialmente prática. Esta visão só épossível se em vez de se estudarem superficialmente as principais linguagens,nos centrarmos num pequeno conjunto de linguagens modernas, que incorporemtodos os paradigmas em estudo. O paradigma funcional será abordado através doestudo da linguagem OCaml. O estudo da linguagem Prolog será utilizado parailustrar o paradigma lógico, Com o Java (uma linguagem orientada por objetos),será possível o estudo de uma outra linguagem para além do C++, que recorre àprogramação orientada por objetos.

Page 6: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

2. Competências

Competências a DesenvolverPretende­se que, no final desta Unidade Curricular, o estudante tenha adquirido as seguintescompetências:

Complemente os seus conhecimentos do paradigma de programação orientada aosobjetos;

Domine de forma confortável a linguagem de programação Java.

Saiba desenvolver programas numa linguagem de programação em lógica (Prolog);

Domine o paradigma da programação em lógica;

Saiba desenvolver programas numa linguagem de programação funcional (O'Caml);

Domine o paradigma de programação funcional.

Page 7: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

3. Roteiro

Roteiro de conteúdos a trabalharNesta Unidade Curricular serão trabalhadas as seguintes temáticas :

1. Paradigmas de Programação1.1. Programação orientada por objetos1.2. Programação em lógica1.3. Programação funcional

2. Estudo da linguagem Java2.1. Introdução à linguagem Java. Introdução à plataforma Java. 2.2. Tipos primitivos e tipos referência em Java. Tipos­array. Assinaturas, protocolos e tipos­objeto. Tipos­objeto sintáticos (interfaces). Tipos­objeto semânticos (classes). 2.3. Tipos genéricos em Java. 2.4. Herança, subclasse, superclasse, sub­interface, super­interface. Classes abstratas. 2.5. Construção de sistemas de interfaces e classes em Java. 2.6. Exceções em Java. 2.7. Input/Output em Java. Streams. O package java.io e as suas classes embrulho ("wrapperclasses"). 2.8. Estudo detalhado do mecanismo de herança em Java. Variáveis herdadas ocultas. "this",ou a reinterpretação dos métodos herdados nas subclasses. "super", ou o acesso a componentesescondidas. Packages, classes e construtores.

3. Estudo da linguagem Prolog3.1. Factos e regras 3.2. Programas e perguntas 3.3. Semântica declarativa e operacional 3.4. Mecanismo de retrocesso (backtracking)3.5. Programação de predicados sobre variáveis simples 3.6. Programação de predicados sobre listas

4. Estudo da linguagem OCaml4.1. Conceitos básicos da linguagem ML. Funções como "valores de primeira classe". 4.2. Tipos básicos e tipos estruturados. Sistema de tipos e inferência de tipos. Funçõesmonomórficas e funções polimórficas. 4.3. Formas curried e não­curried de funções com múltiplos parâmetros. Aplicação parcial. 4.4. Padrões. Emparelhamento de padrões. Padrões disjuntos. 4.5. O método indutivo. 4.6. Listas em ML. Funções sobre listas programadas usando o método indutivo. 4.7. Tipos produto e tipos soma em ML. 4.8. Árvores binárias em ML. O método indutivo aplicado à escrita de funções sobre árvorebinárias.

Page 8: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

4. Metodologia

Como vamos trabalhar?A metodologia de trabalho utilizada nesta Unidade Curricular compreende a leitura e reflexãoindividuais (a), assim como também o esclarecimento de dúvidas nos fóruns e a realização deatividades propostas pelo professor (b).

a) A leitura e a reflexão individuais acontecem ao longo de todo o processo de aprendizagem.Sem a leitura e a reflexão individuais, o discente fica muito limitado na resolução dosexercícios propostos.

b) Integram a leitura e a reflexão individuais um conjunto problemas propostos peloprofessor em função da cada módulo, e que o estudante deve tentar resolver.

c) A aprendizagem está estruturada por (3) temas. Para cada tema foi programado um fórumnão moderado pelo professor (Fórum alunos) que permanecerá aberta ao longo da unidadecurricular, proporcionando assim, uma interação ativa entre os estudantes.

Page 9: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

5. Recursos

Bibliografia e outros recursosNesta unidade curricular será estimulado uso de informação online, podendo os estudantesadquirir os livros referidos na bibliografia opcional.

Bibliografia opcional:

Leon Sterling and Ehud Shapiro, The Art of Prolog (2nd Edition), MIT Press, 1994F. Mário Martins, Java 6 e Programação orientada pelos objectos, FCAJason Hickey, "Introduction to the Objective Caml Programming Language", 2004

Page 10: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

6. Avaliação

Como vai ser a avaliação?

A avaliação assume o regime de avaliação contínua. Os estudantes que não possam seguir estamodalidade de avaliação podem optar pela realização de um Exame Final presencial.

A opção pelo regime de avaliação (contínua ou final) será feita pelo estudante até ao final da3ª semana letiva, não podendo ser alterada no decurso do semestre.

Os estudantes que optem pela avaliação contínua disporão de um Cartão de Aprendizagem,pessoal, onde será creditada a avaliação que forem efetuando ao longo do semestre. O Cartãode Aprendizagem é um instrumento personalizado e cada estudante tem acesso apenas ao seucartão.

Os estudantes que optem pela realização de um Exame Final terão acesso a todas asorientações dadas na plataforma e às Atividades Formativas disponibilizadas ao longo dopercurso de aprendizagem, mas não aos instrumentos de avaliação utilizados no regime deavaliação contínua ­ E­fólios e P­fólio. Estes estarão disponíveis apenas para os estudantes queoptem pela modalidade de avaliação contínua.

Page 11: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

6.1. Cartão de Aprendizagem

Avaliação Contínua

Os estudantes que optarem pela avaliação contínua creditam no seu Cartão de Aprendizagem –CAP – as classificações que obtiveram com a realização de vários trabalhos ao longo dosemestre e a classificação obtida numa prova presencial, no final do semestre.

Ao longo do semestre ser­lhes­á proposto que elaborem pequenos trabalhos, designados e­fólios. A realização do conjunto dos e­fólios poderá levar à creditação do seu cartão (CAP) deum máximo de 8 valores.

À classificação obtida nos e­fólios juntam­se os valores obtidos na prova presencial, designadap­fólio, tendo esta a duração máxima de 90min. Esta prova, p­fólio, terá a cotação global de 12valores.

No sistema de avaliação contínua, a classificação final na unidade curricular corresponde aosomatório das classificações obtidas em cada e­fólio e no p­fólio.

Um e­fólio é um pequeno documento digital elaborado de forma pessoal e incidindo sobre umasecção dos temas trabalhados.

O p­fólio consiste num documento escrito a realizar presencialmente, que complementa os e­fólios realizados electronicamente.

As indicações para a realização quer dos E­fólios, quer do P­fólio serão fornecidas no decursoda 4ª semana de actividades letivas.

A aprovação na Unidade Curricular implica que o estudante obtenha um mínimo de 4 valoresno conjunto dos E­fólios e um mínimo de 6 valores no P­fólio.

Page 12: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

6.2. Calendário de avaliação contínua

Calendário de avaliação contínua[O quadro seguinte deverá ser preenchido de acordo com o planeamento efectuado; ter emconta o número de e­fólios previstos e a valorização máxima de cada um ao preencher oquadro e as datas correspondentes ao semestre em questão.]

Outubro Novembro Dezembro ou Maio Janeiro ou Junho

E­fólio A 4 valores

Data da

especificação do

trabalho a realizar

no E­fólio A e dos

respetivos critérios

de avaliação

23

Envio do E­fólio Aao professor

9

Indicação da

classificação do E­fólio A

23

E­fólio B 4 valores

Data da

especificação do

trabalho a realizar

no E­fólio B e dos

respetivos critérios

de avaliação

27

Envio do E­fólio Bao professor

14

Indicação da

classificação do E­fólio B

4

P­fólio 12 valores

Realização presencial Ver calendário de

exames

Page 13: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

6.3. Exame

Opção pelo Exame

O Exame Final traduz­se numa única prova escrita realizada presencialmente eclassificada numa escala de 0 (zero) a 20 (vinte) valores.Esta prova tem um caráter somativo, reportando­se à totalidade dos conteúdosabordados na unidade curricular e é realizada no final do semestre lectivo, tendoa duração de 2h e 30min.O estudante que optar pela modalidade de exame final, terá de obter neste ummínimo de 10 valores.

Page 14: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

7. Plano de Trabalho

Calendário e plano de trabalhoEste Plano apresenta a previsão da distribuição temporal das várias Temáticasde estudo, das atividades e respectivas orientações de trabalho, de modo a quepossa planear, organizar e desenvolver o seu estudo. Esta informação écomplementada por orientações que deverá consultar com regularidade nestaSala de Aula Virtual.Apresenta­se o exemplo de um possível Plano de Trabalho, distribuído pelosdiversos meses (entradas seguintes). A coluna – O que se espera do Estudante– tem como objectivo fornecer todas as orientações específicas que o docenteentenda como pertinentes para orientar o estudo e o trabalho dos seus alunos nodesenvolvimento das temáticas propostas. O exemplo é apresentado a títulomeramente indicativo. Apague este último parágrafo, por favor, quando terminarde elaborar o seu PUC:

Page 15: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

7.1. Primeiro mês

Mês 1

Outubro O que se espera doestudante

1ª Semana

5 a 11Início do módulo ­ programação

funcional, onde vai ser estudada

a linguagem OCaml.

Instale no seu computador o

interpretador da linguagem.

No fórum apropriado, tendo em

conta o roteiro do PUC,

proponha materiais online sobre

programação funcional e sobre

linguagem OCaml, e tenha em

atenção a opinião dos seus

colegas e do docente

responsável. Pode ainda optar

por ler o livro recomendado na

bibliografia opcional (neste caso,

recomendam­se os capítulos 1 a

6).

Este módulo tem a duração de 5

semanas e inclui o estudo da

matéria correspondente e a

resolução de um e­fólio que

incidirá sobre este tema. Deve

programar o seu estudo tendo

em conta este calendário,

resolver os exercícios e colocá­

los no fórum respectivo para

discussão com os seus colegas.

2ª Semana

12 a 18

Continuação do módulo 1.

Troque ideias com os seus colegas

no fórum respectivo.

3ª Semana

19 a 25

Continuação do módulo 1.

Troque ideias com os seus colegas

no fórum respectivo.

Faça a sua escolha doregime de avaliação quepretende (avaliação

Page 16: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

contínua ou exame final)até à data indicada. Casonão efectue nenhumaescolha, será colocado noregime de avaliaçãocontínua.

Lançamento do e­fólio A,logo após o fecho da escolhado regime de avaliação.

4ª Semana

26 a 1 de Novembro

Continuação do módulo 1.

Troque ideias com os seus colegas

no fórum respectivo.

Page 17: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

7.2. Segundo mês

Mês 2

Novembro O que se espera doestudante

1ª Semana

2 a 8

Fim do módulo 1.

Troque ideias com os seus colegas

no fórum respectivo.

Entregue o e­fólio A até aodia 9, às 23h55m.

2ª Semana

9 a 15

Início do módulo ­ programação em

lógica, onde vai ser estuadada a

linguagem Prolog.

Instale no seu computador um dos

ambientes de desenvolvimento de

Prolog ­ aconselha­se o Yap ou o

SWIProlog.

No fórum apropriado, tendo em

conta o roteiro do PUC, proponha

materiais online sobre programação

em lógica e sobre linguagem Prolog,

e tenha em atenção a opinião dos

seus colegas e do docente

responsável. Pode ainda optar por

ler o livro recomendado na

bibliografia opcional ou ainda o

manual em português indicado.

Este módulo tem a duração de 5

semanas e inclui o estudo da matéria

correspondente e a resolução de um

e­fólio que incidirá sobre este tema.

Deve programar o seu estudo tendo

em conta este calendário, resolver

os exercícios e colocá­los no fórum

respectivo para discussão com os

seus colegas.

3ª Semana

16 a 22

Continuação do módulo 2.

Troque ideias com os seus colegas

no fórum respectivo.

Page 18: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

4ª Semana

23 a 29

Continuação do módulo 2.

Troque ideias com os seus colegas

no fórum respectivo.

Lançamento do e­fólio B, no dia

27.

Page 19: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

7.3. Terceiro mês

Mês 3

Dezembro O que se espera doestudante

1ª Semana

30 de Novembro a 6Continuação do módulo 2.

Troque ideias com os seus

colegas no fórum respectivo.

2ª Semana

7 a 13Fim do módulo 2.

Troque ideias com os seus

colegas no fórum respectivo.

Entregue o e­fólio B até ao dia

14, às 23h55m.

3ª Semana

14 a 20Início do módulo ­ programação

orientada por objectos, onde vai

ser estuadada a linguagem

Java.

Instale no seu computador a

última versão do JDK (Java

Development Kit) e de um IDE

(Integrated Development

Environment). Aconselha­se a

instalação do Netbeans, mas

podem também usar, por

exemplo, o Eclipse.

No fórum apropriado, tendo em

conta o roteiro do PUC,

proponha materiais online sobre

programação orientada por

objectos e sobre linguagem

Java, e tenha em atenção a

opinião dos seus colegas e do

docente responsável. Pode

ainda optar por ler o livro

recomendado na bibliografia

opcional (neste caso,

recomendam­se os capítulos 1 a

5 e o capítulo 8).

Este módulo tem a duração de 4

semanas e inclui o estudo da

matéria correspondente. Deve

Page 20: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

programar o seu estudo tendo

em conta este calendário,

resolver os exercícios e colocá­

los no fórum respectivo para

discussão com os seus colegas.

Page 21: Plano da Unidade Curricular - Wiki UAb · 2015-10-08 · Saiba desenvolver programas numa linguagem de programação funcional (O'Caml); Domine o paradigma de programação funcional

7.4. Quarto mês

Mês 4

Janeiro O que se espera doestudante

1ª Semana

4 a 10

Continuação do módulo 3.

Troque ideias com os seus colegas

no fórum respectivo.

2ª Semana

11 a 17

Continuação do módulo 3.

Troque ideias com os seus colegas

no fórum respectivo.

3ª Semana

18 a 24

Fim do módulo 3.

Troque ideias com os seus colegas

no fórum respectivo.