Apresentação da disciplina - Programa de Pós
Download
Report
Transcript Apresentação da disciplina - Programa de Pós
Conceitos de Linguagens de
Programação
Apresentação da Disciplina
Prof. Dr. Rogério Vargas
UESC
2013.2
O professor
• Rogério R. de Vargas
– Bacharel em Informática (URCAMP)
– Mestre em Ciência da Computação (UCPel)
– Doutor em Ciência da Computação (UFRN)
• Gaúcho
– Sotaque do Sul
– Grêmio
Contato
• Pavilhão Jorge Amado
– Módulo “33” (em frente aos banheiros, no térreo,
próximo a torre administrativa)
• Site
– http://rogerio.in
– Conteúdo programático
– Avisos
– Cronograma
– Todas as informações referentes à disciplina
CLP
• Conceitos de Linguagens de Programação [CET
087]
• Aulas
– segunda-feira
– quinta-feira
• Formato
– 1 aula teórica
– 1 aula prática (dentro do possível)
Ementa
• Caracterização das linguagens de
programação de computadores e seus
diferentes paradigmas de programação
(lógico, procedimental, funcional, orientação a
objetos, orientação a aspectos, etc.).
Ambiente. Estudo dos conceitos básicos de
cada paradigma. Modelos computacionais.
Semântica. Outros paradigmas de
programação.
Objetivos
• Proporcionar ao aluno uma visão geral dos
conceitos envolvidos no projeto e no uso dos
diversos paradigmas de linguagens de
programação.
Conteúdo Programático (1)
• 1. Características e objetivos das Linguagens de Programação.
Abstração de Dados. Polimorfismo. Ambiente e escopo de variáveis.
• 2. Tipos. Linguagens fortemente e fracamente tipadas. Linguagens
não-tipadas. Inferência de tipos. Linguagens com tipo estático
(Haskell) e dinâmico (Scheme).
• 3. Semântica: conceitos das semânticas operacional, denotacional,
axiomática, algébrica e de ações.
• 4. Linguagens Imperativas:
–
–
–
–
Variáveis e atribuição;
Efeitos colaterais;
Desvios e execução sequencial de comandos;
Programação estruturada.
Conteúdo Programático (2)
•
5. Linguagens Lógicas:
–
–
–
–
–
•
Cláusulas de Horn;
Implicação lógica;
Sistema de inferência lógica;
Variáveis lógicas;
Diferença entre Prolog e programação lógica.
6. Linguagens Funcionais:
– O cálculo lambda;
– Ordem de avaliação de expressões: cálculo preguiçoso (lazy evaluation) e cálculo guloso (eager
evaluation);
– Avaliação parcial;
– Casamento de padrões;
– Transparência referencial;
– Transformação de programas.
•
•
7. Linguagens Orientadas a Objetos: tipos abstratos de dados, encapsulamento de
dados e operações, herança e outros conceitos de orientação a objetos.
8. Outros paradigmas: programação concorrente, modelo de dados relacional
(SQL), Redes de Petri, orientação a aspectos, etc.
Créditos
• 3 Créditos
– 2 Teórico
– 1 Prática
• Ou seja, 2 provas e 1 prática. Faremos:
– 2 Avaliações
– 1 Prática
• Seminário (70% da nota)
• Lista de exercícios (30% da nota)
• Presença
– Assinar a folha de presença, conferir no portal o
andamento das presenças/faltas
Provas
• Aproximadamente 10 questões
• 4 ou 5 questões do estilo “check box”
– Dada 4 alternativas, assinalar o que é verdadeiro e
deixar em branco o que é falso.
– As questões poderão ser todas assinaladas ou todas
em branco.
• Questões dissertativas
• Segunda chamada
– Final do semestre
– Mediante pedido no protocolo geral
Seminário (1)
• Individual
• Formato
– 2 aulas teórica
– 2 aulas prática
• Duração
– 2 horas/aula para cada formato
Seminário (2)
• Discutir com o professor os slides/atividade a
serem apresentados uma aula antes da
apresentação
• Entregar os slides/atividade ao professor antes
da apresentação
• A ausência na apresentação acarretará nota
ZERO ao aluno, não será prorrogado a
apresentação para data posterior (salvo
apresentando atestado médico ao professor)
Lista de exercícios
• Individual
• Trabalhos similares, será atribuído nota zero
aos trabalhos
• A entrega será em dia de aula,
presencialmente, não será aceito a entrega
por e-mail ou fora do horário de aula da data
estabelecida no cronograma
Pontos para o seminário
1. Características e objetivos das LP
8. Prolog
2. Tipos
9. Linguagens Funcionais
3. Haskell
10. POO
4. Scheme
11. POO (prática em Java/C++)
5. Semântica
12. SQL
6. Linguagens Imperativas
13. Redes de Petri
7. Programação Lógica / Programação
Concorrente
14. POA