Computação 1 – 2016.2

Algoritmos e Programação de Computadores
CEUPI – Centro de Ensino Unificado do Piauí
Professor Teorica: Alexandre Tolstenko
Segundo semestre de 2016

Informações sobre a disciplina

Aulas e atendimento:

Aulas Noturnas: Segunda 19h00m – 22h30m;
Aulas Vespertinas: Terças 14H40m – 16h20m e Quintas 16h30m – 18h10m;
Atendimento: Terças 16h30m – 18h10m e Quintas 14h40 – 16h20m, no laboratório de pesquisa (Sala ??).
Contato:

Ementa

Introdução à computação: organização básica de processador, memória e periféricos; Noções de correção e eficiência de algoritmos; Variáveis e Atribuições; Comandos condicionais; Comandos de Entrada e Saída; Comandos de repetição; Algoritmos e resolução de problemas; Procedimentos e funções; Recursão; Vetores; Busca sequencial e binária (intuição de eficiência); Algoritmos básicos de ordenação; Cadeias de caracteres; Matrizes; Representação de matrizes por linearização de índices; Registros; Arquivos.

Linguagens de Programação

Oficialmente usaremos a linguagem de programação C nas aulas e questões, contudo as questões de laboratório podem ser respondidas em praticamente qualquer linguagem.

Laboratórios

Aproximadamente a cada 2 semanas teremos um laboratório valendo nota. Cada laboratório terá prazo de 1 semana para ser entregue, com exceção de alguns dos laboratórios que poderão ser maiores, e poderão ter prazo de 2 semanas. Para a correção dos laboratórios, usaremos o sistema de submissão automática URI desenvolvido pelo professor Neilor Tonin. Cada programa desenvolvido pelo aluno para um laboratório específico será testado por este sistema automaticamente em vários testes. O programa terá nota 10.0 (dez) se passar corretamente por todos os testes. Caso contrário o laboratório terá nota 0.0 (zero). Como há um prazo de pelo menos uma semana para cada laboratório, e o aluno sabe após a submissão sobre a corretude do seu programa, não haverá notas intermediárias. Cada laboratório terá tempo de início e término bem estabelecido através do sistema de horário dos computadores. Para fazer um laboratório, você deverá desenvolver o algoritmo e a forma como você irá resolver o problema. Implemente seu programa e teste ele exaustivamente. Só então submeta a versão final de seu programa para o sistema URI. O prazo de entrega para um laboratório ser submetido deve ser bem utilizado. Nunca deixe para fazer o programa nos últimos dias. Lembre-se, esta disciplina é de 60h e exige bastante dedicação.

Referências

O professor não seguirá um livro texto específico. Mas os seguintes livros cobrem o que será visto em aula:

Bibliografia Básica

ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da programação de computadores: algoritmos, Pascal, C/C++ e Java.2. ed.  São Paulo: Pearson Prentice Hall, 2007.
FEDELI, R. D.; PERES, F. E.; POLONI, E. G. F. Introdução à ciência da computação. 2. ed São Paulo: Cengage, 2010.
FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lógica de programação: a construção de algoritmos e estruturas de dados.3. ed. São Paulo: Makron Books, 2005.

Bibliografia Complementar

ALVES, William Pereira. Lógica de programação de computadores. São Paulo: Érica, 2010.
GUIMARÃES, Ângelo de Moura e LAGES, Newton A. C. Algoritmos e estruturas de dados. Rio de Janeiro: LTC, 1994.
HOLLOWAY, J. P. Introdução à programação para engenharia: resolvendo problemas com algoritmos. Rio de Janeiro: LTC, 2006.
MANZANO, José Augusto N. G. e OLIVEIRA, Jayr Figueiredo. Estudo dirigido de algoritmos. São Paulo: Érica, 2001.
NORTON, P. Introdução à informática. Makron Books: São Paulo, 1997.
VELLOSO, F. C. Informática: Conceitos Básicos. Rio de Janeiro: Campus, 2004.
B. W. Kernighan and D. M. Ritchie. C: A Linguagem de Programação. Campus, 1986.
E. Horowitz, S. Sahni, and S. Anderson-Freed. Fundamentals of Data Structures in C. Computer Science Press, 1993.
E. S. Roberts. The Art and Science of C : A Library Based Introduction to Computer Science. Addison Wesley, 1995.
R. Sedgewick. Algorithms in C. Addison-Weley, 1990.
A. M. Tanembaum. Estruturas de Dados Usando C. Makron Books, 1995.
H. M. Deitel, P. J. Deitel. C: How to Program, Prentice Hall, 2009.
P. Feofiloff. Algoritmos em Linguagem C, Campus, 2009.
D. Harel, Y. Feldman, Algorithmics – The Spirit of Computing, Addison Wesley, 2004.
A. Kelley, I. Pohl. A Book on C, Addison Wesley, 1998.
B. W. Kernighan, D. M. Ritchie. The C Programming Language, Prentice Hall, 1988.
J. A. N. G. Manzano, J. F. de Oliveira. Algoritmos, Érica, 2000.
M. Medina, C. Fertig. Algoritmos e Programação – Teoria e Prática, Novatec, 2005.
F. Mokarze, N. Soma. Introdução à Ciência da Computação, Campus, 2008.
N. Ziviani. Projeto de Algoritmos, Thomson, 2004.

Avaliação

Serão duas notas, N1 e N2 que irão condensar as notas relativas a notas de provas e atividades de cada bimestre que serão calculadas da seguinte maneira:

N1 = (1.50.5*Media(P1,Labs1)/10)*Media(P1,Labs1)
N2 = (1.50.5*Media(P2,Labs2)/10)*Media(P2,Labs2)

Exemplo de Nota:
P=5.0; Labs=0.0 -> N=3.4
P=10.0; Labs=0.0 -> N=6.3
P=0.0; Labs=10.0 -> N=6.3
P=5.0; Labs=5.0 -> N=6.3
P=5.0; Labs=10.0 -> N=8.4
P=7.0; Labs=10.0 -> N=9.1
P=10.0; Labs=10.0 -> N=10.0

Obs.: As notas serão aproximadas sempre para cima em múltiplos de 0.5 pontos.

A Média Final Antes de Exame será:

MFAE = Media(N1,N2)

Caso MFAE seja maior ou igual a 7, o aluno aprovou-se com Média Final igual a MFAE, caso contrário terá a oportunidade de se submeter a um exame, tendo assim sua Média Final calculada como:

MF = Media(Exame, MFAE);

Observações

Qualquer tentativa de fraude, plágio ou cola implicará em nota 0.0 (zero), para todos os envolvidos, na disciplina. Leia sobre a Disciplina Consciente.

Agenda

Espelhos do material online

Videos

Noite Tarde Assunto Material
01  e 02 15/08/16 18/08/16 Introdução à programação de computadores

Hardware e software, organização de um ambiente computacional, algoritmos e linguagem C

Slides | Slides para impressão

Slides | Slides para impressão

03 e 04 22/08/16 23/08/16 e 25/08/16 Variáveis, atribuição e estrutura da linguagem C

Escrita, leitura e operações aritméticas

Slides | Slides para impressão

Slides | Slides para impressão

05 e 06 29/08/16 30/08/16 e 01/09/16 Expressões relacionais, lógicas, comandos condicionais, e o comando switch

Simulação de códigos, comandos repetitivos (while e do-while) e comandos continue e break

Slides | Slides para impressão

Slides | Slides para impressão

07 e 08 05/09/16 06/09/16 e 08/09/16 Maior número, soma de n números, fatorial, números primos, números de fibonacci e decimal – binário

Vetores (com exemplos), Strings (com exemplos), e informações extras

Slides | Slides para impressão

Slides | Slides para impressão.

09 e 10 12/09/16 13/09/16 e 15/09/16 Matrizes e exemplos

Matrizes (mais exemplos), inicializando Matrizes e Vetores e Representação de Matrizes por Linearização

Revisão

Slides | Slides para impressão. Exemplos: Mostra IndiceProdutoSomaTranspostaTriangular Completo;

Slides | Slides para impressão. Exemplos: InicializaçãoLinearização;

19/09/16 20/09/16 e 22/09/16 Provas
11 e 12 26/10/16 27/09/16 e 29/09/16 Funções, o tipo void, função main e protótipo de funções

Escopo de Variáveis, vetores em funções, vetores multi-dimensionais e funções e arquivos cabeçalhos

Slides | Slides para impressão.

Slides | Slides para impressão. Exemplos:  É parCabeçalho .hMultiplica 2oqImprimeProg PrincipalSoma 2Vetor FunçãoVetor Função 2

13 e 14 03/10/16 04/10/16 e 06/10/16 Ponteiros, Parâmetros (por Valor e por referência), Ponteiros e Vetores;

O problema de ordenação e Selection Sort

Slides | Slides para impressão;

Slides | Slides para impressão. Exemplos: Selection Sort 1, Selection Sort 2;

15 e 16 10/10/16 11/10/16 e 13/10/16 Ordenação: BubblSort e InsertionSort;

Tipos enumerados, registros e redefinição de tipos

Slides | Slides para impressão. Exemplos: BubbleSort, BubblSort-time, InsertonSort, InsertonSort-time e selectionSort-time;

Slides | Slides para impressão. Exemplos: exeEnum, exeStruct2, exeStruct3, exeStruct1, exeStruct4 e redefienTipo;

17 e 18 17/10/16 18/10/16 e 20/10/16 Ponteiros para Registros/Estruturas (Exemplos com registros);

Problema da Busca (busca Sequencial e binária) e Questões de eficiência;

Slides | Slides para impressão. Exemplos: Ponteiro, Ponteiro 1 e Cadastro de Frutas;

Slides | Slides para impressão. Exemplos: Busca-Binária e Busca-Sequencial;

19 e 20 24/10/16 25/10/16 e 27/10/16 Introdução a arquivos, Lendo e escrevendo em arquivos e exemplos;

Arquivos Binários

Slides | Slides de impressão. Exemplos: Altera Arquivo, Copia Arquivo, Mostra Arquivo, PegaSetInt1 e PegaSetInt2;

Slides | Slides para impressão Exemplos: Alunos, Escreve Item, Escreve Vetor, Escreve Vetor 2 e Escreve Vetor 3;

21 e 22 31/10/16 01/11/16 e 03/11/16 Recursão, Fatorial, O que acontece na memória, Recursão x Iteração, Soma em um Vetor e Números de Fibonacci

Recursão – Relembrando, Cálculo de Potências e Soma de um Vetor

 Slides | Slies para impressão Exemplos: Fatorial, Fibonacci, Imprime e Soma Vetor;

Slides | Slides para impressão Exemplos: Potencia1, Potencia2 e SomaVetor;

23 e 24 07/11/16 08/11/16 e 10/11/16 Recursão – QuickSort

Revisão (Exemplos de recursão)

 Slides | Slides para impressão. Exemplos: QuickSort e Random QuickSort.

Slides | Slides para impressão.

14/11/16 17/11/16 Provas
28/11/16 29/11/16 Substitutiva
12/12/16 13/12/16 Prova Final

Slides Laboratório

Lista de Exercícios

OBS.: Para fazer as os laboratórios no URI, primeiro se cadastre no sistema e avise ao professor qual é seu ID (depois de logado no URI, clique em perfil e seu ID é o último número que aparece na url do site)

Outras Fontes de Informação
%d blogueiros gostam disto: