Paradigmas de Programação
Curso: Sistemas de Informação, DOURADOS, Noturno (2017) - 2a Série
Professor: CLEBER VALGAS GOMES MIRA
Disciplina: Paradigmas de Programação
Carga Horária: 68 h Período Letivo: 02/2017 a 12/2017
Ementa:
Programação Lógica. Programação Funcional. Programação Orientada a Objetos.
Objetivos:
Promover uma visão dos princípios e das técnicas de programação nos 3 (três) paradigmas.
Conteúdo:
Programação LISP:
- Manipulação simbólica e estrutura da linguagem.
- Símbolos, átomos e listas (s-expressões).
- Funções pré-definidas básicas.
- Definição de funções e recursão.
- Aritmética.
- Macros e condicionais.
- Arrays.
- Abstração de dados e mapeamentos.
- Notação lambda e cálculo lambda.
- Common Lisp Object System (CLOS).
- Aplicações da linguagem.
Programação lógica PROLOG:
- Estrutura de linguagem.
- Dados e símbolos.
- Fatos, regras, perguntas e variáveis.
- Sintaxe, unificação, aritmética.
- Estruturas, funtores, aridade, listas.
- Recursão.
- Ressatisfação (Backtracking) e corte.
- Entrada e saída de dados e arquivos.
- Procedimentos pré-definidos.
- Aplicações da linguagem.
Programação orientada a objetos JAVA:
- Estrutura da linguagem.
- Abstração de dados.
- Objetos.
- Classes e tipos.
- Herança.
- Hierarquias de generalização/especialização.
- Hierarquias de agregação/decomposição.
- Polimorfismo.
- Classes abstratas.
- Interfaces.
- Pacotes/módulos.
- Tratamento de exceções.
- Threads.
- Aplicações da linguagem.
Metodologia:
As aulas serão ministradas em salas com o uso do datashow, giz e quadro negro. Serão realizadas visitas ao laboratório para a implementação de soluções propostas em listas de exercícios.
Serão efetuadas 3 provas e 3 trabalhos. As prováveis datas das provas e de entrega dos trabalhos são:
- P1: 1/06
- P2: 21/09
- P3: 23/11
SUBSTITUTIVA 30/11
EXAME 07/12
Materiais e links:
Linguagem Java
- Tutorial: "A Linguagem de Programação JAVA" Orientação a Objetos, por André Augusto Cesta e Profª Drª Cecília Mary F. Rubira
- The Java SE Tutorials (Oracle Java Documentation)
- Free Electronic Book: Thinking in Java, 3rd Edition, Bruce Eckel
- Java Tutorial (Tutorials Point)
Linguagem Lisp
- Gnu CLISP (Common Lisp Interpreter/Compiler)
- Practical Common Lisp, by Peter Seibel
- Learning Lisp Tutorial, by Philip Fong
- Successful Lisp: How to Understand and Use Common Lisp, by David B. Lamkins
- CLiki is a Common Lisp wiki.
- Common Lisp: A Gentle Introduction to Symbolic Computation, by David S. Touretzky
- Common Lisp the Language, 2nd edition, by Guy L. Steele, Thinking Machines, Inc.
- On Lisp, by Paul Graham
- A Brief Guide to CLOS, by Jeff Dalton
- The Common Lisp Cookbook, by Marco Antoniotti et al.
- Lisp in Small Parts, by David Johnson-Davies
- Common Lisp Net (Portal)
- Common Lisp HyperSpec (Especificação do Common Lisp)
- Common Lisp Quick Reference (Guia de referência rápida para o Common Lisp)
Linguagem Prolog
- Learn Prolog Now! by Patrick Blackburn, Johan Bos, and Kristina Striegnitz
- Logic Programming A Courseware by Vishma Shah
- Prolog Programming A First Course by Paul Brna
- Prolog by Loiseleur Michel and Vigier Nicolas
- Prolog at WikiBooks
- Execute Prolog Online at Tutorials Point
Bibliografia:
BRATKO, I. Prolog Programming for Artificial Intelligence. 2. ed. Readings, MA: Addison-Wesley, 1986.
CLOKSIN, W. F. Programming in prolog. 5. ed. New York: Springer, 2003.
GRAHAM, P. ANSI Common Lisp. New York: Prentice Hall, 1996.
WINSTON, P. H.; HORN, B. LISP, 3. ed. Addison-Wesley, 1989.
MEYER, B. Object-Oriented Software Construction. New York: Prentice-Hall, 1988.
Bibliografia Complementar:
ARNOLD, K.; GOSLING, J. The Java Programming Language. 2. ed. Cambridge: Addison-Wesley, 1997.
______.; ______.; HOLMES, D. The Java Programming Language. 4. ed. Cambridge: Addison-Wesley Professional, 2005.
DEITEL, H. M.; DEITEL, P. J. C++ Como Programar. 5. ed. São Paulo: Prentice-Hall, 2006.
JAMSA, K.; KLANDER, L. Programando em C/C++ - A Bíblia - O Melhor Guia Para a Programação em C/C++. São Paulo: Makron Books, 1999.
Critérios de Avaliação:
Serão efetuadas 3 provas e 3 trabalhos. A média final será computada pela fórmula :
MF = (N1 + N2 + N3) / 3, onde
P1, P2 e P3 são as notas das respectivas provas com valor entre 0 e 10.
T1, T2 e T3 são as notas dos respectivos trabalhos com valor entre 0 e 2.
Nx = min(Px+Tx, 10), ou seja, não é possível ter uma nota superior a 10 para cada linguagem de programação. As notas N1, N2 e N3 irão constar no sistema SAU.
A prova substitutiva substitui a prova com menor nota. A substitutiva tem valor entre 0 e 10,0 e o conteúdo é referente a toda a matéria.
A Nota Final (F) é calculada da seguinte maneira:
Caso o valor de MF do aluno for igual ou superior a 6,0, então a nota final é F = MF.
Caso o valor de MF do aluno for entre 3,0 e 6,0, o aluno terá direito a fazer o Exame Final (E) com valor entre 0 e 10 e a nota final será F = (MF + E)/2.
O aluno com nota de MF inferior a 3,0 é automaticamente reprovado.
O Exame Final cobrará o conteúdo de toda a matéria
Será aprovado o aluno cuja nota final F for igual ou superior a 5,0.