MINISTÉRIO DA EDUCAÇÃO

UNIVERSIDADE FEDERAL DE SANTA CATARINA

CENTRO TECNOLÓGICO

DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA

PROGRAMA DE ENSINO

1. Identificação

Disciplina:INE5416 - Paradigmas de Programação
Nível:Graduação
Carga Horária:90 horas-aula (Teórica: 30; Prática: 60)
Vigência:De 2020-1 até a presente data

2. Ementa

Caracterização e classificações dos paradigmas. Problemas tratáveis pelos paradigmas. Definição e caracterização dos principais paradigmas declarativos e imperativos. Programação em Lógica. Programação Funcional. Prática de programação com os principais paradigmas apresentados.

3. Cursos Relacionados

4. Objetivos

4.1 Objetivo Geral:

Capacitar o aluno a compreender os principais aspectos inerentes ao projeto de linguagens de programação e suas principais construções, as características inerentes aos paradigmas de construção de linguagens de programação e a desenvolver programas utilizando o Paradigma de Programação em Lógica e o Paradigma de Programação Funcional.

4.2 Objetivos Específicos:

  1. Descrever os aspectos históricos das principais linguagens de programação.
  2. Compreender o processo de descrição formal de linguagens de programação.
  3. Identificar as características do Paradigma de Programação Imperativo.
  4. Descrever os principais aspectos associados à implementação de linguagens de programação.
  5. Compreender o uso de funções matemáticas como base de programação.
  6. Compreender o cálculo de predicados e sua utilização como base de programação.
  7. Utilizar o paradigma de Programação Funcional.
  8. Utilizar o paradigma de Programação em Lógica

5. Conteúdo Programático

  1. Descrever os aspectos históricos das principais linguagens de programação [6 horas-aula]
  2. Descrição formal de linguagens de programação: sintaxe e semântica [6 horas-aula]
  3. O paradigma imperativo [18 horas-aula]
    1. Nomes, tipos, escopos
    2. Expressões e atribuição
    3. Estruturas e subprogramas
  4. Funçoes e Cálculo Lâmbda [6 horas-aula]
  5. Cálculo de Predicados [6 horas-aula]
  6. Linguagens Funcionais [10 horas-aula]
    1. Lisp
    2. Scheme
    3. ML
    4. Haskel
  7. Linguagem em Lógica [8 horas-aula]
    1. Prolog
  8. Prática de programação Funcional [15 horas-aula]
  9. Prática de programação em Lógica [15 horas-aula]

6. Bibliografia Básica

  1. FLACH, Peter. Simply Logical: Intelligent Reasoning by Example. Nova Jersey: John Wiley & Sons, 1998.
  2. NILSSON, Ulf; MALUSZYNSKI, Jan. Logic, Programming and Prolog. 2a ed. Nova Jersey: John Wiley & Sons, 1995.
  3. LIPOVACA Miran. Learn You a Haskell for Great Good! A Beginner's Guide. San Francisco: No Starch Press. 2011. ISBN-13: 9781593272838.
  4. SHAPIRO, Stuart C. COMMON LISP: An Interactive Approach. New York: W. H. Freeman, 1992.
  5. DYBVIG, R. Kent. The Scheme Programming Language. 4a. Ed. Cambridge: The MIT Press, 2009. ISBN 978-0-262-51298-5.
  6. SEBESTA, Robert W. Conceitos de Linguagens de Programação. 5a. Ed. Porto Alegre: Bookman, 2003.
  7. HUDAK, Paul. The Haskell School of Expression: Learning Functional Programming through Multimedia, Cambridge University Press, New York, 2000, 416 pp, ISBN 0521644089, ISBN 0521643384.

7. Bibliografia Complementar

  1. BRATKO, Ivan. Prolog programming for Artificial Intelligence. Glasgow: Berkeley, 1986.
  2. DE SÁ, Claudio Cesar, DA SILVA, Marcio Ferreira. Haskell: Uma Abordagem Prática, Novatec Editora Ltda., 2006, 296 pages, ISBN 85-7522-095-0.
  3. DERSHEM, H. & JIPPING, M. Programming languages: Structures and Models. Belmont: Wadsworth Publishing Company, 1990.
  4. GHEZZI, Carlo; JAZAYERI, Mehdi. Conceitos de Linguagens de Programação. Rio de Janeiro: Campus, 1991.
  5. FRIEDEMAN, Daniel P., WAND, Mitchell, HAYNES, Chistopher T. Fundamentos de linguagem de programação. São Paulo: Berkeley, 2001.ISBN: 85-7251-605-0
  6. STERLING, Leon, SHAPIRO, Ehud. The Art of Prolog. MIT Press. Cambridge, 1999.
  7. CURRY, Haskell B. Foundations of mathematical logic. New York: Dover, c1977. 407p ISBN 0486634620
  8. MEIRA, Silvio Romero de Lemos. Introdução a programação funcional. Campinas: UNICAMP, 1988.
  9. BARENDREGT, Hendrik Pieter. The lambda calculus: its syntax and semantics Rev. ed.- Amsterdam: North-Holland, 1984, ISBN 0 444 87508 5.