Linguagens de Programação – 2015/1
Ementa: definição de linguagens: sintaxe e semântica. Paradigmas de programação. Modelos de implementação: compilação e interpretação. Visibilidade de nomes. Comunicação entre unidades. Alocação estática e dinâmica de memória. Subprogramas. Tipos abstratos de dados. Unidades genéricas. Tratamento de exceções. Noções de programação em linguagens funcionais e lógicas. Estudo comparativo de linguagens.
Objetivo: proporcionar uma visão geral sobre os conceitos definidos em várias linguagens de programação em diferentes paradigmas. Possibilitar que o aluno tenha contato com diversas linguagens de programação modernas. Capacitar o aluno para que ele possa analisar e escolher linguagens de programação.
Metodologia: aulas expositivas e exercícios em sala de aula, seminários.
Dia/horário das aulas: segundas-feiras das 13h às 15h, quintas-feiras das 17h às 19h.
Local: CT-9, sala 207 – Ufes (Av. Fernando Ferrari, 514 – Goiabeiras – Vitória, ES).
Carga horária semestral: 60 horas.
Mais informações:
- Programa detalhado;
- Sistema de avaliação;
- Bibliografia;
- Cronograma / datas importantes;
- Download de material do curso (slides, exercícios, etc.);
- Seminário e trabalho prático;
- Agende um horário para atendimento.
Programa detalhado
- Propriedades, paradigmas e evolução de linguagens de programação;
- Amarrações, identificadores, definições e declarações;
- Valores e tipos de dados: tipos primitivos, tipos compostos;
- Variáveis e constantes, gerência de memória principal e secundária;
- Tipos de comandos e expressões, avaliação de expressões;
- Modularização, subprogramas, tipos abstratos de dados, compilação separada;
- Sistemas de tipos, polimorfismo: coerção, sobrecarga, paramétrico e inclusão;
- Exceções: especificação, tratamento, propagação;
- Concorrência: motivação, problemas, suporte das linguagens de programação;
- Avaliação de LPs: critérios gerais e específicos, exemplo de comparação;
- Seminários sobre linguagens de programação.
Sistema de avaliação
A avaliação será constituída de 2 provas individuais (P1 e P2) valendo 10 cada, 1 seminário em grupo (S) valendo 10, um trabalho prático em grupo (T) valendo 1 e registros de presença durante os seminários (PS) valendo 10. A nota parcial será obtida com a seguinte fórmula:
Alunos que obtiverem nota parcial igual ou superior a 7 não farão prova final, tendo sua nota final igual à nota parcial. Demais alunos terão sua nota final calculada pela média aritmética simples entre a nota parcial e a nota da prova final e deverão obter nota final igual ou superior a 5 para serem aprovados.
Observação: o aluno que tiver mais de 25% (vinte e cinco por cento) de faltas, contadas em relação ao número de horas-aulas previstas para a disciplina, será privado do direito de prestar exame final e estará, independentemente de qualquer outra condição, reprovado. (Art. 51 Regimento CT, art. 104 Regimento Geral Ufes). Além disso, a média final da disciplina será arredondada para valores inteiros ou fração de 0,5, de acordo com o art. 63, parágrafos 1º e 2º do Regimento CT).
Bibliografia
Livros:
- F. M. Varejão. Linguagens de Programação – Conceitos e Técnicas. Campus, 2004;
- A. B. Tucker, R. E. Noonan. Linguagens de Programação – Princípios e Paradigmas, 2a edição. McGraw Hill, 2009;
- R. W. Sebesta. Conceitos de Linguagens de Programação, 9a edição. Bookman, 2011.
Materiais disponíveis online:
- Livro “Linguagens de Programação – Conceitos e Técnicas” do prof. Flávio Varejão;
- The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!), by Joel Spolsky.
Cronograma / Datas importantes
O período 2015/1 inicia em 02/03/2015 e termina em 07/07/2015. A semana de provas finais 2015/1 vai de 08 a 14/07/2015. A tabela abaixo resume eventos importantes durante o curso. O programa de aulas com o cronograma completo do curso é exibido em seguida.
Data | Descrição |
---|---|
02/03/2015 | Primeira aula do curso. |
12/03/2015 | Prazo para definição dos grupos para seminários. |
30/03/2015 | Prova Parcial 01. |
13/04/2015 | Não haverá aula – Feriado de N. Sra. da Penha. |
20/04/2015 | Não haverá aula – Recesso Escolar para Feriado de Tiradentes. |
07/05/2015 | Prova Parcial 02. |
14/05/2015 | Início dos seminários. |
01/06/2015 | Não haverá aula – Licença paternidade. |
04/06/2015 | Não haverá aula – Feriado de Corpus Christi. |
25/06/2015 | Aula 30 (completando 60 horas-aula). |
07/07/2015 | Prazo para entrevistas sobre trabalho prático. |
09/07/2015 | Prova Final. |
Download de material
- Apresentação do curso;
- Parte 01: Introdução;
- Parte 02: Amarrações;
- Parte 03: Valores e Tipos de Dados;
- Parte 04: Variáveis e Constantes;
- Parte 05: Expressões e comandos;
- Parte 06: Modularização;
- Parte 07: Polimorfismo;
- Parte 08: Exceções;
- Parte 09: Concorrência;
- Parte 10: Avaliação de Linguagens.
Seminário e trabalho prático
Veja aqui a especificação completa do seminário e trabalho prático. Abaixo encontra-se a divisão dos grupos e suas respectivas linguagens e datas de apresentação.
# | Data | Linguagem | Alunos | Download |
---|---|---|---|---|
01 | 14/05/2015 | Python | Celso e Marcos Aurelio | Seminário / Trabalho |
02 | 18/05/2015 | PHP | Allan e Eduardo | Seminário / Trabalho |
03 | 21/05/2015 | C# | Rafael e Vanderlei | Seminário / Trabalho |
04 | 25/05/2015 | Groovy | (Apresentado pelo professor) | 2014/2, 2013/2 |
05 | 28/05/2015 | Shell Script | André Luiz e Giuliano | Seminário / Trabalho |
06 | 08/06/2015 | Haskell | Pamella e Vitor | Seminário |
07 | 11/06/2015 | Lua | Gabriel e Marcus Vinicius | Seminário / Trabalho |
08 | 15/06/2015 | Perl | Arthur e Gustavo | Seminário / Trabalho |
09 | 18/06/2015 | Scala | Gabriel e Gustavo | Seminário |
10 | 22/06/2015 | Go | César e João Mário | Seminário / Trabalho |
11 | 25/06/2015 | Ruby | Diego e Leonardo | Seminário |