ELC117 - Paradigmas de Programação
Segundo semestre de 2010
Professora: Juliana Kaizer Vizzotto
Carga horária: 60h
Horários: Terças-feiras, das 8:30 às 10:30, e quartas-feiras, das 8:30 às 10:30
Sala: laboratório 334, CT
Plano de ensino
O plano de ensino (em formato PDF) contém informações sobre objetivos, programa, calendário, metodologia, avaliação e bibliografia relativos a esta disciplina.
Material de Apoio
- Programação Funcional
Slides introduzindo o paradigma de programação funcional
- Introdução ao Haskell
Slides introduzindo a Linguagem Funcional Haskell - Listas em Haskell
Slides sobre listas em Haskell
- Mais listas em Haskell
Slides sobre Compreensão de listas e funções de alta ordem em Haskell - Tipos de Dados Algébricos
Material de Apoio - Entrada e Saída em Haskell
Material de Apoio - Programação em Lógica
Slides introduzindo o paradigma de programação lógico - Sistema de Execução do Prolog
Slides sobre o Sistema de Execução do Prolog - Problema de lógica em Prolog Descrição e Solução do Problema
- Introdução ao Paradigma Orientado a Objetos
Slides - Aula Prática:1 de Orientação a Objetos
- Programação Concorrente em Java(02/12)
Slides contendo material e enunciado do Trabalho Final
Exercícios
- Lista 1
Listas em Haskell - Lista 2
Mais Exercícios de Haskell - Exercícios sobre grafos
Use o Template - Artigo sobre FP
Aula do dia 16/09 - Exercícios de prática de Prolog.
- Exercícios: prática de Classes Abstratas/Java.
Notas
- Planilha com as Notas Finais
Planilha atualizada em 24/12 às 16:00 (Notas dos Exames)
Avaliações
- Crédito extra: é possível obter até 1,0 ponto extra em um dos bimestres, com atividades aprovadas pela professora. Formas de obtenção: exercícios e pesquisas realizados por iniciativa própria, resumos de conteúdo, leitura e resumo de artigos relacionados à disciplina, desenvolvimento de código para a disciplina, etc. Converse com a professora antes de realizar atividades para crédito extra!
Trabalhos
- Trabalho 1
Implementando uma Agenda Telefônica em Haskell - Trabalho Final Haskell
Implementando funções de utilidade Unix em Haskell
Data de entrega: 19/10/2010 - Trabalho 1 - POO
Implementando um sorteadorgenérico
em Java
Data de entrega: 27/11/2010
Avaliação dos trabalhos
- A avaliação dos trabalhos levará em conta a funcionalidade e a legibilidade dos programas desenvolvidos, bem como a pontualidade na entrega.
- Atenção: Havendo suspeita de plágio (cópia) de trabalhos, os alunos envolvidos poderão ser submetidos a outra avaliação. A penalização para casos de plágio será de redução da nota de uma ou mais avaliações.
Links
Curiosidades
- The C Family of Languages: Interview with Dennis Ritchie, Bjarne Stroustrup, and James Gosling
Entrevista com os criadores das linguagens C, C++ e Java. Imperdível. - Mother Tongues of Computer Languages
Poster com a genealogia das principais linguagens de programação. - 99 Bottles of Beer
Um programa em mais de 700 linguagens diferentes. - The Computer Language Benchmarks Game
Benchmarks para comparação de várias linguagens e suas implementações. Você pode submeter seu próprio programa! - Ray tracer language comparison
Um gerador de imagens escrito em diversas linguagens. - The Encyclopedia of Computer Languages
Enciclopédia com a história de mais de 8000 linguagens de programação.
Linguagem Haskell
- Real World Haskell Versão online do livro do livro Real World Haskell de Bryan O'Sullivan, Don Stewart, and John Goerzen
- haskell.org
Coleção de recursos sobre a linguagem Haskell. - Programação Funcional com a Linguagem Haskell Tutorial em Português do Prof. André Rauber Du Bois.
- Glasgow Haskell Compiler Compilador Haskell
- Haskell Tutorial for C Programmers - Introduction Livro on-line sobre programação em Haskell para programadores familializados com C
- Why Functional Programming Matters
Artigo descrevendo porque é interessante utilizar linguagens funcionais
Linguagem C++
- Thinking in C++
E-book de Bruce Eckel sobre programação em C++. Neste endereço encontra-se a versão oficial para download (formato HTML compactado). - C++ FAQ Lite
Compilação de perguntas (e respostas) freqüentes sobre C++. - Standard Template Library Programmer's Guide
Guia de referência sobre a STL. É bastante completo e inclui exemplos. - Introdução à Programação em C++
Material de apoio a um curso de extensão ministrado pelo professor Marcelo Johann, da UFRGS.
Linguagem Java
- The Java Tutorial
Tutorial da Sun sobre Java. - Introduction to Programming Using Java
Livro sobre Java de David J. Eck. Todos os exemplos do livro têm código-fonte disponível. - Creating a GUI with JFC/Swing
Tutorial sobre criação de interfaces gráficas em Java. - Thinking in Java
E-book de Bruce Eckel sobre programação em Java, originalmente em inglês. Neste endereço encontra-se a versão oficial para download (formato HTML compactado). Este livro está sendo traduzido para português.
Linguagem Prolog
- P-99: Ninety-Nine Prolog Problems
Coleção de problemas e suas soluções em linguagem Prolog. - SWI-Prolog Reference Manual
Manual de referência do SWI Prolog.
Linguagem Scheme
- An introduction to Scheme for C programmers
O título diz tudo :-) Sugestão do Vinícius Gottin (inf2007). - schemers.org
Coleção de recursos sobre a linguagem Scheme. - How to Design Programs
Livro on-line sobre algoritmos e programação em linguagem Scheme. - Introdução à linguagem Scheme
Apostila em português. - DrScheme
Ambiente de programação para a linguagem Scheme. - Revised^5 Report on the Algorithmic Language Scheme
Descrição de referência da linguagem Scheme. - PLT MzScheme: Language Manual
Manual do MzScheme. - PLT Scheme
Família de implementações da linguagem Scheme que inclui o interpretador MzScheme.