Obrigatória – 90 horas – 5 créditos
Pré-requisitos: nenhum
Professor Responsável: Jobson Luiz Massollar da Silva
Objetivos da Disciplina
Desenvolver metodicamente programas para implementar algoritmos básicos numa linguagem de programação procedimental.
Ementa
- O conceito de algoritmo
- Princípios de programação estruturada
- Conceitos básicos de uma linguagem de programação
- Recursividade
- Vetores e matrizes
- Algoritmos de ordenação
- Pesquisa sequencial e binária
Conteúdo Programático
- O conceito de algoritmo
- Computadores e programação
- Procedimentos e algoritmos
- Entrada e saída. Estruturas de dados
- Programas
- Resolução de problemas e programação
- Linguagens de programação
- Processamento de programas em linguagens de alto-nível
- Engenharia de software
- Conceitos básicos de uma linguagem de programação
- Comandos executáveis Sequencia de comandos
- Sintaxe. Semântica
- Literais, identificadores e palavras reservadas
- Tipos de dados e declarações
- Unidades compiláveis. Programas e bibliotecas
- Expressões. Operadores e operandos
- Depuração de programas
- Princípios de programação estruturada
- Fluxo de controle
- Desenvolvimento por refinamento sucessivo
- Procedimentos
- Funções
- Estruturas de seleção: if e case
- Expressões booleanas
- Verificação manual de um algoritmo
- Estruturas iterativas
- Projeto de algoritmos iterativos
- Depuração, testes e erros comuns em algoritmos iterativos
- Parametrização
- Escopo de identificadores
- Vetores e matrizes
- Tipos de dados simples: escalares (numéricos, lógico, caracteres)
- Tipos de dados definidos pelo programador: intervalos, enumerados e conjuntos
- Cadeias de caracteres
- Arquivos Texto
- Vetores
- Acesso sequencial
- Acesso randômico
- Análise de algoritmos
- Matrizes
- Tabelas
- Modularização de programas grandes: unidades
- Pesquisa sequencial e binária
- Algoritmos de ordenação
Metodologia
Aulas expositivas e em laboratório. Exercícios resolvidos pelos alunos.
Exposição de conteúdo: aulas presenciais terão exposição de conteúdo teórico e proposta de projetos para a prática destes conteúdos.
Aprendizagem colaborativa: a turma será dividida em grupos e alguns dos projetos propostos pelo professor serão resolvidos em sala. As soluções serão apresentadas pelos grupos para a turma visando emergir as dúvidas e também promover a integração dos alunos para a aprendizagem em grupo.
Aprendizagem baseada em projeto: a partir dos exemplos de projetos apresentados em sala o aluno deverá desenvolver um projeto para a solução de um problema a sua escolha.
Avaliação
Avaliação contínua: Ao longo da disciplina, o estudante entregará tarefas intermediárias aplicando e fixando individualmente o conteúdo da disciplina em exercícios propostos pelo professor. Em grupos, os estudantes respondem a um conjunto de questões propostas pelo professor.
Avaliação Somativa: Consiste de três notas: G1, G2 e G3. Cada uma delas podendo ser composta pela combinação de três instrumentos de avaliação, a saber: prova, trabalhos práticos de implementação e participação em sala de aula.
Cálculo da nota-final: A média final será igual a média da G1e a G2 se esta for maior que 7,0 senão esta será igual a ((média da G1 e a G2) + G3)/2.
Serão aprovados apenas os alunos com média final igual ou superior a 5,0.
Bibliografia
- Celes, W.; Cerqueira, R. F. de G.; Rangel, J. L. M.. Introdução à Estruturas de Dados: com técnicas de programação em C. Rio de Janeiro: CAMPUS, 2004.
- Samuel P. Harbison III e Guy L. Steel Jr, C – A Reference Manual. Prentice Hall, 2002.