oldpages‎ > ‎

EXA 801 - Algoritmos e Programação I

AVISOS:
Resultados

Prova Final: 10/Fev (quarta-feira), 10h, sala PAT-50.

Universidade Estadual de Feira de Santana
Departamento de Ciências Exatas
Período Letivo 2009.1

Plano de Ensino do Componente Curricular
EXA 801 – ALGORITMOS E PROGRAMAÇÃO I

Professores: Angelo Loula, Nilton Dantas, Maurício Escarpinati, Michele Angelo

Material das Aulas

Tutoriais (Alunos e Tutores)

Carga Horária
    60 horas
   
Pré-requisitos
    Não tem

Ementa

Classificação  de  linguagens  de  programação.  Compiladores  e  interpretadores.  Noção  de  algoritmo,  dado, variável,  instrução  e  programa.  Tipos  e  estruturas  elementares  de  dados.  Operadores.  Funções  embutidas  e expressões.  Instruções  condicionais,  incondicionais  e  de  repetição.  Tipos  definidos  pelo  programador  e  tipos abstratos  de  dados.  Estruturas  compostas  de  dados:  vetores,  matrizes  e  registros.  Noções  de  estruturas dinâmicas de dados. Subprogramas: funções, procedimentos e recursão. Noções de arquivos em programação. Algoritmos e aplicações.

Apresentação

Algoritmos e Programação I auxilia  no  processo  de  formação  de  um  estudante  mais  criativo,  autônomo,  capaz  de resolver problemas e de tomar suas próprias decisões. O seu conteúdo programático é alicerçado na lógica de programação que auxilia no exercício do raciocínio lógico, estimulando o estudante a encontrar soluções para os problemas computacionais propostos.

Objetivos, Habilidades e Competências

Geral:
•   Ser capaz de resolver problemas através da interpretação de cenários do mundo real, modelando soluções através de algoritmos e estruturas de dados básicas e implementando as soluções através de programas de computador escritos em uma linguagem de programação estruturada.
 
Específicos:
•   Compreender as estruturas dos algoritmos usados nas linguagens de programação modernas e aplicar estas estruturas para projetar a solução de problemas;
•   Ser capaz de escrever, compilar, depurar e testar programas em uma linguagem de programação estruturada (C);
•   Utilizar software de edição de texto, compilação e depuração para o desenvolvimento de programas simples em linguagem C;
•   Aplicar estruturas de dados homogêneas e heterogêneas para modelar dados simples e complexos a partir de problemas reais, bem como lidar com questões de gerenciamento de memória que surgem a partir do uso destas estruturas de dados;
•   Analisar problemas, decompondo-os em partes através de técnicas de projeto e desenvolvimento bottom-up ou  top-down  e  projetar  soluções  integrando  as  partes  através  de  estruturas  modulares  como  funções  e procedimentos;
•   Ser capaz de armazenar, acessar, alterar ou eliminar informação persistente em arquivos seqüenciais e de acesso aleatório, utilizando bibliotecas de funções e procedimentos em linguagem C.

O aluno dessa disciplina deverá ser capaz de:
•   Identificar problemas de informação  e, na medida do possível, solucioná-los para atingir os objetivos esperados;
•   Analisar  e  solucionar  problemas,  através  do  uso  sistemático  de  algoritmos  (desenvolver  o  raciocínio lógico);
•   Entender a lógica de programação, tendo em vista as técnicas de programação e a linguagem C;
•   Dominar comandos básicos, estruturas de dados simples e compostas da Linguagem C;
•   Implementar Sistemas de Computação conforme as especificações dos mesmos.

Conteúdo Programático

1)  Algoritmos e Linguagens de programação
•   Principais linguagens de programação e suas características
•   Compiladores e Interpretadores
•   Principais paradigmas de linguagens de programação
•   Noção  de  algoritmo,  dado, variável,  instrução  e  programa
2)  Introdução à linguagem C
•   Estrutura de um programa em C
•   Tipos de dados  (char, int, float, double, etc.)
•   Modificadores (unsigned, long, short, etc.)
•   Constantes e variáveis
•   Entrada e saída de dados (funções printf e scanf)
•   Operadores aritméticos e de atribuição
•   Operadores relacionais e lógicos
3)  Estruturas de controle
•   Expressões lógicas
•   Comando if...else
•   Comando switch...case
•   Comandos while e do...while
•   Comando for
•   Comandos break e continue
4)  Funções e procedimentos
•   Técnicas de modularização
•   Funções e procedimentos
•   Protótipos
•   Passagem de parâmetros (por referência e valor)
•   Uso de bibliotecas e exemplos de funções embutidas (math.h, stdlib.h, etc.) •   Recursividade
5)  Vetores e Matrizes
•   Vetores e matrizes: declaração e indexação de elementos
•   Cadeias de caracteres
•   Exemplos de funções embutidas (string.h)
•   Aplicações
6)  Ponteiros e Alocação Dinâmica
•   Aritmética com ponteiros
•   Alocação e desalocação de memória
•   Aplicações
7)  Estruturas de dados definidas pelo usuário
•   Estruturas: declaração de tipos e de variáveis
•   Vetores e ponteiros de estruturas
•   Noções de classes e objetos em programação orientada a objetos
8)  Arquivos
•   Tipos de arquivo
•   Abertura, leitura, escrita e fechamento de arquivo
•   Operações sobre arquivos de registros: inserção, consulta, alteração e exclusão
•   Aplicações

Metodologia

A metodologia será um híbrido de Grupos Tutoriais (GT), Consultorias  Individuais (CI) e Coletivas (CC) e Aulas Expositivas (AE).

A seguir apresentamos os alcances de cada uma destas estratégias metodológicas:
•   Durante todo o curso serão realizadas atividades seguindo a metodologia PBL (Aprendizagem Baseada em Problemas), a qual consistirá basicamente de grupos tutoriais (GT) que objetivam solucionar os problemas e/ou projetos que serão propostos. Esses problemas devem ser resolvidos conforme critérios determinados em documento anexo a cada problema;
•   Os  GTs,    baseados  na  estratégia  de  PBL  (Aprendizagem  baseada  em  problemas),  permitirão  ao  aluno chegar  ao  conhecimento  através  do  processo  de  reflexão  consigo  mesmo  e  das  relações  com  os  outros alunos do grupo;
•   As  CIs  e  CCs  permitirão  ao  aluno  estabelecer  diferentes  canais  de  diálogo  no  processo  de  resolução  de problemas.
•   As AEs serão aulas expositivas dialogadas com o objetivo de introduzir assuntos que serão tratados mais detalhadamente nos problemas, complementar o processo de aprendizagem após o final de um problema ou até mesmo discutir outros assuntos que não serão abordados no GT.

Material Utilizado

Para os GTs:
•  Salas acondicionadas para PBL, com quadro branco, kit para  escrever no quadro, cadeiras e mesa de reunião.
Para as AEs e CCs:
•  Salas tradicionais de aula, com quadro negro ou branco, kit para escrever nos quadros, retro-projetor, computador e canhão multimídia.
Para as CIs:
•   Sala  do  professor  com  quadro  branco,  kit  para  escrever  nos  quadros,  computador,  impressora, cadeiras e mesa.

Avaliação

O módulo será dividido em três unidades, para que o estudante possa refletir sobre sua situação em momentos distintos do curso e, caso necessário, realizar correções de rumo no processo de aprendizagem.
 
O conceito de cada uma das unidades será  calculado a partir de uma média ponderada (MP) de  produtos de grupos tutoriais (PGT), avaliações de conteúdo do módulo (AC) e do desempenho nos grupos tutoriais (DGT), dada a seguir:

MP= 0,4 PGT + 0,4 AC + 0,2 DGT
 
•   Ao  final  de  cada  problema,  os  alunos  deverão,  individualmente  ou  em  grupo,  gerar  um  produto  ou apresentação conforme designado para cada problema;
•   A média PGT será calculada a partir de uma ponderação das notas obtidas nos produtos ou apresentações gerados;
•   As avaliações de conteúdo (AC) tratarão dos conteúdos abordados no módulo e poderão ser provas escritas, listas de exercícios e demais instrumentos de avaliação de conteúdo. 
•   Durante os grupos tutoriais, os alunos serão avaliados por seu desempenho (DGT), sendo consideradas as dimensões de participação, contribuição efetiva, criatividade, entrosamento e respeito mútuo em cada um dos passos do ciclo PBL;
•   A média para aprovação deste módulo é 7.0, assim como institucionalmente é definido;
•   As datas para entrega dos produtos da resolução dos problemas serão definidas ao longo do curso. 

Provas Finais:
•   Não obtendo conceito suficiente na avaliação do módulo, o estudante poderá fazer prova final, e o conceito final será de acordo com o sistema de avaliação vigente na UEFS.
 
Aprovação no módulo:
Para ser aprovado no estudo integrado, o estudante precisa cumprir os seguintes requisitos:
•   Ter  frequência  igual  ou  superior  a  75%  da  carga  horária  efetiva  ministrada  no  módulo  isolado,  caso contrário haverá reprovação por freqüência e o módulo completo deverá ser cursado novamente;
•   Ser aprovado na avaliação do módulo, caso contrário haverá reprovação por conceito;

Calendário (tentativa)

Aula Data Assunto

SET
1 30 (qua) SIECOMP

OUT
2 2 (sex) Tutorial (Problema PBL)
3 7 (qua) Introdução / Programas e Operadores, Saída de Dados
4 9 (sex) Tutorial (Problema 1)
5
14(qua) Constantes e Variáveis, Entrada de Dados / Estruturas Condicionais (sem aula turma prof. Angelo)
5 15(qui) reposição turma prof. Angelo (8h-10h MT55)
6 16(sex) Tutorial (Problema 1)
7 21(qua) Estruturas de Repetição / Contadores e Acumuladores
8 23(sex) Tutorial (Problema 1)
9 28(qua) Simulação de Programas
- 30(sex) feriado – dia do servidor

NOV
10 4(qua) Simulação de Programas. Vetores
11 6(sex) Tutorial (Problema 1)
12 11(qua) Dúvidas e Exercícios
13 13(sex) Tutorial (Problema 2)
14 18(qua) Prova 1. 
15 20(sex) Tutorial (Problema 2)
16 25(qua) Vetores e Matrizes. 
17 27(sex) Tutorial (Problema 2)

DEZ
18 2(qua) Procedimentos e Funções 
19 4(sex) Tutorial (Problema 2)
20 9(qua) Cadeias de Caracteres / Registros
21 11(sex) Tutorial (Problema 2)
22 16(qua) Recursão / Exercícios
23 18(sex) fechamento relatório
24 23(qua)
- 25(sex) recesso
- 30(qua) recesso

JAN
- 1(sex) recesso
25 6(qua) Prova 2
26 8(sex) Tutorial (Problema 3)
27 13(qua)  Ponteiros e Alocação Dinâmica
28 15(sex) Tutorial (Problema 3)
29 20(qua) Arquivos
30 22(sex) Tutorial (Problema 3)
31 27(qua) Dúvidas e Exercícios
32 29(sex) Tutorial (Problema 3)

FEV
33 3(qua) Prova 3

Fim Aulas

05(sex)

10(qua) Prova Final
- 12(sex) Carnaval




Referências

LIVROS-TEXTO
 
MANZANO, J. A. N. G., OLIVEIRA, J. F. Algoritmos : Lógica para Desenvolvimento de Programação. São Paulo: Érica, 1996.
MANZANO, J. A. N. G. Estudo Dirigido de Linguagem C. São Paulo: Érica: 1997.
FORBELLONE, A. V. L., EBERSPACHER, H. F. Lógica de Programação : A Construção de Algoritmos e Estrutura de Dados. 2. ed. São Paulo: Makron Books, 2000.
MIZRAHI, V. V. Treinamento em Linguagem C : Módulo 1. São Paulo : Makron Books, 1990. 
MIZRAHI, V. V. Treinamento em Linguagem C : Módulo 2. São Paulo : Makron Books, 1990.
SCHILDT, H. C Completo e Total. 3. Ed. São Paulo: Makron Books, 1996. 
 
LEITURA COMPLEMENTAR
 
ZIVIANI, N. Projeto de Algoritmos com Implementação em Pascal e C. 4. ed. São Paulo: Pioneira, 1999.
NORTON, P. Introdução à Informática. São Paulo: Makron Books, 1997.
FARRER, H., et al. Algoritmos Estruturados. 3. ed. Rio de Janeiro: LTC, 1999.
FARRER, H. et al. Pascal Estruturado. 3. ed. Rio de Janeiro: LTC, 1999.
CORMEN, T.H., LEISERSON, R.L., RIVEST, R.L. e STEIN, C. Introduction to Algorithms, 2. ed., MIT Press, 2001.
AHO, A., HOPCROFT, J. e ULLMAN, J. Data Structures and Algorithms, Addison-Wesley Pub Co, 1983.
KNUTH, D. The Art of Computer Programming, vol. I e III, Addison-Wesley Pub Co, 1998.
HORSTMANN, C. e CORNELL, G. Core Java 2, V.1: Fundamentos, Makron, 2000.
DEITEL, H.M. e DEITEL, P.J. Java: Como Programar, Bookman Companhia Editora, 2003.
KERNIGHAN,  B.  W.,  RITCHIE,  D.  M.  C:  A  Linguagem  de  Programação  padrão  ANSI.  Ed.  Campus, 1990.
TENENBAUM, A. M., LANGSAM, Y., AUGENSTEIN, M. J. Estruturas de Dados Usando C. São Paulo: Makron Books, 1995.
DAHL, O. –J, DIJKSTRA, E. W., HOARE, C. A. R. Structured Programming. Academic Press, 1972.
DIJKSTRA, E. W. A Discipline of Programming. New Jersey : Englewood Cliffs, 1976.
KERNIGHAN, B. W., PIKE, R. The Practice of Programming. Addison-Wesley, 1999.



Comments