|
UNIVERSIDADE ESTADUAL
PAULISTA
"JÚLIO DE MESQUITA FILHO"
Câmpus de Presidente Prudente
DMC - Departamento de Matemática e
Computação
Bacharelado em Ciência da Computação
|
Rogério Eduardo Garcia
Professor Assistente Doutor
Latteso
Jogar para ganhar ou jogar para não
perder?
by Rogério
|
Contato:
email: rogerio at fct dot unesp dot br
Email: rogerio dot garcia
at gmail dot com
Fone: 55 18 3229-5606
Fax: 55 18 3229-5353
|
Conceitos
de Linguagens de Programação – 2017
“Smooth seas do not make
skillful sailors.”
Objetivos
- Conhecer os aspectos históricos
da evolução das linguagens de programação e os principais conceitos
associados aos diferentes paradigmas existentes de programação (imperativa, orientação a objeto, funcional e lógico);
- Introduzir a sintaxe e
semântica de linguagens e seus controles internos;
- Estudar aspectos de implementação de uma LP.
Conteúdo Programático
- Histórico da Evolução
das Linguagens de Programação: tradução (interpretação e compilação);
Paradigma Imperativo, Orientado a Objeto, Funcional e Lógico; principais
representantes de cada um dos paradigmas; Revisão do Processo de
Compilação (Compilação versus Interpretação); Programação Imperativa:
Vantagens e desvantagens da programação imperativa;
- Linguagens de
Programação Lógicas: Apresentação de uma linguagem lógica; cálculo de
predicados; resolução de problemas e aplicações usando programação lógica;
análise de independência e reusabilidade de
programas lógicos.
3. Aspectos Sintáticos e Semânticos:
Descrição Sintática, Métodos Formais, Descrição Semântica;
4.
Tipos de Dados:
Definição de dados; Representação Interna; Escopo de Definições; Bindings
5. Expressões e instruções de atribuição;
operadores sobrecarregados; conversões de tipo; Expressões Relacionais e
Booleanas;
6. Estruturas de Controle; Instrução de
Seleção; Instruções Iterativas;
7. Subprogramas; Questões de Projeto;
Ambientes de Referência; Métodos de Passagem de Parâmetros; Compilação
Separada;
8. Alocação Dinâmica: Gerenciamento de Memória
- Suporte à Programação
Orientada a Objetos: Aspectos sintáticos e semânticos de objetos e
classes, classes derivadas e heranças, polimorfismo, controles de acesso;
funções membros e sobrecarga.
- Linguagens de
Programação Funcionais: Apresentação de uma linguagem funcional; funções
como valores de primeira ordem; recursão simples e recursão de cauda
usando programação funcional; Resolução de problemas e aplicações usando
programação funcional; análise da independência e reusabilidade
de programas funcionais.
Bibliografia Básica
SEBESTA,
R. W. Conceitos de Linguagens de Programação, 5ª ed., Bookman,
2003.
GHEZZI, C. e JAZEYERI, M. Conceitos de linguagens de programação, Campus, 1987.
VAREJÃO, F. M. Linguagem de Programação: conceitos e técnicas, Rio de Janeiro: Elsevier (Campus), 2004.
Critério de Avaliação
- As notas de todas as
atividades – entre 0 (zero) e 10,0 (dez) – serão
atribuídas individualmente, mesmo em atividades em grupo;
- A
média final será calculada da seguinte maneira:
MP = (NP1 + 2*NP2)/3
Mt = (NT1 +
NT2 +...+ NTn) / n
MT = (7 * NPJ + 3 * Mt)
Média Final:
MF = (MP + MT)/2 SE E
SOMENTE SE (MP>=5 E MT>=5)
Caso contrário (MP<5 OU MT<5)
MF = Menor Nota (MP ou MT)
Sendo:
MF = Média Final.
MP = Média de Provas
Mt = Média de Trabalho
(Listas de Exercícios)
NPJ = Nota Projeto (Seminário)
MT = Média final dos trabalhos (parte prática)
- Conforme o artigo 81 do Regimento Geral, será oferecido
ao estudante que não tenha alcançado a nota 5 (cinco)
ao o exame final. Uma vez aplicando-se o exame, a nota final do aluno (A)
será obtida pelo cálculo da média aritmética simples entre a nota do
semestre e a nota do exame final, que deverá ser igual ou maior que 5 (cinco) para aprovação. Esta avaliação deverá
ser aplicada no período especificado no calendário escolar da FCT/UNESP.
Trabalhos e Exercícios
Projeto: Simpletron
|
25/04
|
Descrição aqui (C:
Como Programar; Deitel & Deitel;
Ed. Pearson)
|
Lista de Exercícios
|
18/05
|
Lista
|
Lista para HOJE –
06/07/2017
|
06/07
|
Lista 2
|
Lista para próxima aula
(18/07/2017)
|
13/07
|
Lista 3
|
Avisos
25/04 – Notas Finais!(dica: no seu dia as
médias finais foram lançadas)
25/04 – Exercícios de Fixação!
25/04 – Assistir este vídeo
25/04 – Assistir
este vídeo
25/04 – Assistir
este vídeo
25/04 – Veja o planejamento de atividades da disciplina aqui
25/04 – Links interessantes (leitura recomendada):
Computer Languages History
ACM Review Classification System
Comparação:
C# versus Java
Notas de Aulas
Data da Publicação
|
Aula
|
Comentário
|
25 de Abril
|
Aula 1
|
Apresentação da disciplina, revisão de Compiladores e
introdução.
|
04 de Maio
|
Aula 2
|
Sintaxe e Semântica
|
18 de Maio
|
Aula 3
|
Variáveis – Bindings, etc
|
25 de Maio
|
Aula 4
|
Tipos de Variáveis – representações, etc
|
04 de Julho
|
Aula 5
|
Ler capítulo do livro texto - Expressões
|
04 de Julho
|
Aula 6
|
Subprogramas
|
11 de Julho
|
Aula 7
|
Implementação de Subprogramas
|
24 de Julho
|
Aula 8
|
Implementação de Subprogramas
|
27 de Julho
|
Aula 9
|
Funcional e Lógico (Prolog)
|
|
|
|
|
|
|
Atenção:
CUIDADO!!! Materiais
sujeitos a alterações...
Os materiais, por serem publicados
antes das aulas conforme solicitado pelos alunos, podem:
a) conter erros em suas primeiras
versões;
b) ser modificados em seqüência e conteúdo (adequações à aula);
c) os links identificados como
"Aula N" (por exemplo, Aula 2,
Aula 3, etc) referem-se a tópicos que podem
ser abordados em mais de uma aula (encontro semanal)
última alteração: 08/03/2016