Universidade Federal de Goiás Instituto de Informática - INF

Propaganda
Universidade Federal de Goiás
Instituto de Informática
Ciência da Computação
Código da Matriz 18P2IB
Plano de Disciplina
Ano Letivo: 2015 - 2º Semestre
Dados da Disciplina
Código Disc.
20
Nome
PROGRAMAÇÃO DE COMPUTADORES I
Carga Horária
Teórica
Prática
32
32
Prof(a): Gustavo Teodoro Laureano
Turma: A
Ementa
Lógica de programação; constantes; tipos de dados primitivos; variáveis; atribuição; expressões
aritméticas e lógicas; estruturas de decisão; estruturas de controle; estruturas de dados
homogêneas e heterogêneas: vetores (arrays) e matrizes; funções; recursão. Desenvolvimento de
algoritmos. Transcrição de algoritmos para uma linguagem de programação. Domínio de uma
linguagem de programação: sintaxe e semântica; estilo de codificação; ambiente de
desenvolvimento. Desenvolvimento de pequenos programas.
Objetivo Geral
Apresentar o estudo da lógica de programação e a construção e implementação de algoritmos
coerentes e válidos.
Objetivos Específicos
• Fornecer ao aluno elementos básicos sobre computação, em particular o estudo de algoritmos e
implementação de programas. Ao final do curso o aluno deve ser capaz de:
• Compreender a estrutura lógica de uma linguagem de programação;
• Elaborar algoritmos a partir da descrição textual de pequenos problemas;
• Desenvolver programas em uma linguagem de programação de alto nível;
• Selecionar estruturas de dados simples para a implementação dos programas;
• Elaborar algoritmos específicos para a solução de problemas numéricos e não numéricos;
• Utilizar ferramentas para o desenvolvimento de programas.
Relação com Outras Disciplinas
A disciplina de Programação de Computadores 1 fornece os elementos básicos sobre computação
e implementação de programas, sendo necessária principalmente na disciplina de Programação de
Computadores 2. Outras disciplinas como Estruturas de Dados 1 e 2, Programação Orientada a
Objetos, Linguagens de Programação, Análise e Projeto de Algoritmos entre outras, também
utilizam alguns tópicos abordados na disciplina de Programação de Computadores 1.
Programa
1. Introdução: Apresentação da disciplina, objetivos, ementa, conteúdo programático, bibliografia,
avaliações.
2. Conceitos Básicos da Computação e lógica de programação.
3. Tipos primitivos, contantes e variáveis.
4. Expressões aritméticas e lógicas
5. Comandos: atribuição, entrada e saída.
6. Estruturas de controle: Sequencial, seleção e repetição.
7. Estrutura de dados homogêneas Unidimensionais e Multidimensionais.
8. Estrutura de dados heterogêneas.
9. Funções
Procedimentos Didáticos
Legenda
AEX
Descrição
Objetivo
Aula teórica
Transmitir conhecimento utilizando quadro ou slides.
RE
Aula teórica com resolução de exercícios
Desenvolver o raciocínio lógico, criatividade e
capacidade de abstração e a capacidade de identificar,
analisar e projetar soluções de problemas.
TG
Trabalho em grupo
Desenvolver a capacidade de comunicação oral e escrita.
Capacidade de trabalhar em grupo.
AP
Aula prática
Proporcionar ao aluno a aplicação prática do conteúdo
ministrado em aula teórica.
ED
Estudo dirigido
Desenvolver a capacidade analítica, capacidade de
síntese, de avaliação crítica e de análise.
Seminários
Desenvolver o raciocínio lógico, criatividade, capacidade
de abstração, capacidade para identificar, analisar,
projetar soluções de problemas, a capacidade de
comunicação oral e a capacidade de trabalhar em grupo.
Outros
Transmitir conhecimento utilizando quadro ou slides.
SE
OTR
Conteúdo Programático / Cronograma
Inicio
Proc. Did.
03/08/2015
AEX
06/08/2015
AEX, RE, AP
10/08/2015
AEX, RE, AP
13/08/2015
AEX, RE, AP
17/08/2015
20/08/2015
RE, AP
RE, AP
24/08/2015
AEX, RE, AP
27/08/2015
31/08/2015
RE, AP
OTR
03/09/2015
AEX, RE, AP
07/09/2015
10/09/2015
14/09/2015
OTR
RE, AP
RE, AP
17/09/2015
AEX, RE, AP
21/09/2015
AEX, RE, AP
24/09/2015
RE, AP
28/09/2015
AEX, RE, AP
30/09/2015
AEX, RE, AP
Tópico
Introdução: apresentação da disciplina e do plano de
ensino;
Definição de algoritmos;
Programação de computadores;
Apresentação do sistema operacional Linux: Terminal,
comandos e aplicativos usados na disciplina.
Conceitos básicos: Estrutura básica de um programa em
C.
Compilação e execução via linha de comando.
Tipos de dados primitivos;
Declaração de variáveis de tipos primitivos;
Diretiva #define;
Atribuição e operações aritméticas;
Inclusão de bibliotecas (#include);
Saída de dados de tipos primitivos ( printf() );
Entrada de dados de tipos primitivos ( scanf() );
Entrada e saída de dados em Fluxogramas.
Exercícios.
Mais sobre printf() e scanf();
Estrutura Sequencial;
Resolução de exercícios com operadores aritméticos;
Exercícios.
Estrutura Sequencial (continuação);
Operações lógicas;
Estruturas de Seleção (IF/IF-ELSE, Switch);
Estruturas de Seleção em Fluxogramas;
Exercícios.
Estruturas de Seleção (Exercícios).
Estruturas de Seleção (Exercícios).
Geração de números aleatórios;
Estruturas de repetição (while);
Exercícios.
Estruturas de repetição (Exercícios).
Prova 1 (P1)
Estruturas de Repetição (do..while);
Estruturas de Repetição (for);
Exercícios.
Feriado
Estruturas de Repetição (Exercícios)
Estruturas de Repetição (Exercícios).
Estruturas de Dados Homogêneas:
Arrays Unidimensionais (Vetores) de tipos primitivos;
Exercícios.
Estruturas de Dados Homogêneas (Strings);
Exercícios.
Estruturas de Dados Homogêneas (Exercícios).
Estruturas de Dados Homogêneas: Arrays
Multidimensionais (Matrizes) de tipos primitivos;
Exercícios.
Estruturas de Dados Homogêneas: Arrays
Multidimensionais (Exercícios).
# Aul.
2
2
2
2
2
2
2
2
2
2
0
2
2
2
2
2
2
2
Inicio
Proc. Did.
05/10/2015
08/10/2015
12/10/2015
OTR
AEX, RE, AP
OTR
15/10/2015
AEX, RE, AP
19/10/2015
OTR
22/10/2015
AEX, RE, AP
26/10/2015
29/10/2015
02/11/2015
AEX, RE, AP
AEX, RE, AP
OTR
05/11/2015
AEX, RE, AP
09/11/2015
12/11/2015
16/11/2015
AEX, RE, AP
AEX, RE, AP
AEX, RE, AP
23/11/2015
AEX, RE, AP
26/11/2015
30/11/2015
03/12/2015
07/12/2015
AEX, RE, AP
AEX, RE, AP
OTR
OTR
Tópico
# Aul.
Prova 2 (P2)
Correção da Prova 2 (P2)
Feriado
Definição de tipos de dados (typedef);
Estruturas de Dados Heterogêneas (Structs);
Exercícios
COMPEX (Não haverá aula)
Estruturas de Dados Heterogêneas;
Arrays Unidimensionais e Multidimensionais de
estruturas (Vetores e Matrizes de Structs);
Exercícios.
Arrays de Estruturas de Dados Heterogêneas (Exercícios).
Arrays de Estruturas de Dados Heterogêneas (Exercícios).
Feriado
Funções:
Declaração de funções;
Passagem de parâmetros via valor;
Passagem de parâmetros (vetores e matrizes);
Retorno de funções;
Exercícios.
Funções (Exercícios).
Funções (Exercícios).
Funções (Exercícios).
Recursividade;
Exercícios.
Recursividade (Exercícios)
Recursividade (Exercícios).
Prova 3 (P3)
Entrega de Resultados
Total
2
2
0
2
0
2
2
2
0
2
2
2
2
2
2
2
2
2
64
Critério de Avaliação
A avaliação do desempenho do aluno na disciplina será realizada por meio de três provas que
resultarão em três notas (N1, N2 e N3).
Para cada uma das três notas há um Fator de Ganho, denominado FG1 para N1, FG2 para N2 e
FG3 para N3.
O fator FGx é calculado pela razão entre a quantidade de Exercícios *Resolvidos* e Entregues
(EEx) pelo aluno e a quantidade de Exercícios Disponibilizados (EDx) pelo professor em sala de
aula até a data da prova correspondente.
Após cada prova, inicia-se uma nova contagem dos EDx pelo professor e dos EEx pelo aluno. O
valor de FGx pode variar de 0,5 a 1,0 e estabelece o aproveitamento da pontuação obtida na prova
Px.
O aluno inicia o curso com direito a 50% da nota de cada prova e aumenta seu fator de ganho à
medida que resolve e entrega os exercícios disponibilizados pelo professor em sala de aula.
FGx é calculado pela seguinte equação:
FGx = EEx/EDx * 0.5 + 0.5
A média final será obtida pela equação:
MF = FG1*N1*0.3 + FG2*N2*0.3 + FG*N3*0.4.
onde:
• MF é a Média Final;
• Nx é a nota da prova Px;
• FGx é o fator de ganho da prova Px.
Observações:
• Para as provas será considerado todo o conteúdo ministrado até a data de sua aplicação;
• Será atribuída a nota 0 (zero) a qualquer prova não realizada ou trabalho não entregue na data
estipulada;
• Os alunos que se envolverem em “cola” (colando ou facilitando a cola) ou plágio receberão nota 0
(zero) para a atividade correspondente. O caso poderá ser levado ao conhecimento da
Coordenação e do Conselho Diretor do Instituto de Informática para as providências legais;
• O aluno que não comparecer a pelo menos 75% das aulas estará reprovado por falta;
• O aluno que não conseguir média final maior ou igual a 6,0 (seis) estará reprovado por média.
Data da Realização das Provas
Prova 1 - 01/09/2015
Prova 2 - 13/10/2015
Prova 3 - 01/12/2015
Bibliografia Básica
- Salvetti, D.D. e Barbosa, L.M., Algoritmos, Makron Books, São Paulo, 1998.
- Cormen T. H. et al., Introduction to Algorithms, 2nd edition, MIT Press, 2001.
- Cormen T. H. et al., Algoritmos: Teoria e Prática, Tradução da 2a Edição Ed. Campus, 2002
- Forbellone, A.L.V. e Eberspacher, H.F., Lógica de Programação - A construção de algoritmos e
estruturas de dados, 3a ed., Prentice Hall, São Paulo, 2005.
- Manzano, José Augusto N. G. e Oliveira, J. F., Algoritmos – Lógica para Desenvolvimento de
Programação de Computadores, Editora Érica, São Paulo, 2000.
Bibliografia Complementar
- Manber, Udi., Introduction to Algorithms: A Creative Approach, Pearson Education, 1989.
- Saliba, W.L.C., Técnicas de Programação - Uma abordagem estruturada, Makron Books, São
Paulo, 1993.
- Farrer, H. e outros, Programação Estruturada de Computadores - Algoritmos Estruturados, 3a
ed., LTC, RJ, 1989.
- Tremblay, J.-P Bunt, R.B., Ciência dos Computadores - Uma Abordagem .e Algorítmica, McGrawHill do Brasil, São Paulo, 1983.
Bibliografia Sugerida
Herbert, S., C Completo e Total, 3a ed., Makron Books, SP 1996.
Termo de Entrega
Apresentado à Coordenação no dia
Termo de Aprovação
Aprovado em Reunião de CD no dia
Prof(a) Gustavo Teodoro Laureano
Prof. Dr. Eduardo Simões de Albuquerque
Professor
Diretor do Instituto de Informática
Termo de Homologação
Data de Expedição: Goiânia, ____ de _________________ de ________.
Download