|
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Av. João Naves de Ávila, 2121, Bloco 3N - Bairro Santa Mônica, Uberlândia-MG, CEP 38400-902 |
|
Plano de Ensino
IDENTIFICAÇÃO
Componente Curricular: |
|||||||||
Unidade Ofertante: |
|||||||||
Código: |
Período/Série: |
Turma: |
|||||||
Carga Horária: |
Natureza: |
||||||||
Teórica: |
Prática: |
Total: |
Obrigatória: |
Optativa: |
|||||
Professor(A): |
Ano/Semestre: |
||||||||
Observações: |
EMENTA
Métodos e técnicas de programação sob o paradigma da programação estruturada, ambiente de desenvolvimento integrado (IDE), revisão (comandos de decisão, comandos de controle, laços, arrays e matrizes, funções, passagem por valor, passagem por referência), estruturas, ponteiros, arquivos, programação visual.
JUSTIFICATIVA
Esta disciplina é uma continuação de Introdução a Técnicas de Programação (ITC) do 1º período. Assim, seu princípio básico está fundamentado no fato do estudante de engenharia ter noções de Informática. Porém, esta continuação possui um cunho de desenvolvimento mais profissional, guiando o estudante a criar sistemas computacionais que trabalham com arquivos numa plataforma mais visual. Este cenário aproxima o estudante de uma atual realidade mercadológica.
OBJETIVO
Objetivo Geral: |
Capacitar o estudante a pensar e implementar aplicações de engenharia sob o paradigma de programação compilada de propósito geral, estruturada, imperativa e procedural. |
Objetivos Específicos: |
Ao final do curso o estudante deverá ser capaz de: 1. Identificar conceitos e características importantes relativos a linguagens de programação em diversos paradigmas, em especial, a linguagens procedimentais e orientadas a objetos; 2. Desenvolver aplicações de engenharia sob o paradigma de programação estruturada e de orientação a objetos; 3. Demonstrar capacidade de dedução, raciocínio lógico e de promover abstrações. |
PROGRAMA
1.1. Paradigmas de linguagens de programação
1.2. Valores e tipos de dados
1.3. Variáveis e constantes
1.4. Expressões e comandos
1.5. Modularização
1.6. Exceções
2.1. Elementos básicos
2.2. Estruturas de ramificação e projetos de programas
2.3. Estruturas de repetição
2.4. Matrizes, acesso a arquivos e elaboração de gráficos
2.5. Exceções, destaques em E/S de arquivos e multidimensionalidade
2.6. Introdução a gráficos
2.7. Interfaces gráficas básicas do usuário
2.8. Componentes adicionais da GUI
2.9. Estudo de caso na engenharia: simulação de ruídos
3.1. Criando novos tipos de dados
3.2. Inicializando estruturas
3.3. Atribuições entre estruturas
3.4. Operações entre estruturas
3.5. Estruturas aninhadas
3.6. Estudo de caso na engenharia: simulador de vôo e velocidade do vento; processamento de imagem
4.1. O que são ponteiros?
4.2. Ponteiros variáveis e os operadores de endereço & e *
4.3. Passando argumentos como ponteiros (referência)
4.4. Operações com ponteiros
4.5. Ponteiros e strings
4.6. Estudo de caso na engenharia: exploração de óleo e gás e simulação de abalos sísmicos
5.1. Definição de arquivos
5.2. Arquivo texto e arquivo binário
5.3. Abertura de arquivos para leitura e gravação
5.4. Gravação de dados formatados
5.5. Funções para manipulação de buffers
5.6. Estudo de caso na engenharia: construção de arquivos de manutenção de equipamentos elétricos.
METODOLOGIA
A disciplina será ministrada com encontros síncronos virtuais e atividades assíncronas, que complementarão a carga horária e permitirão que os alunos pratiquem o conteúdo apresentado.
Para os encontros síncronos serão utilizadas ferramentas amplamente difundidas e testadas, como o Google Meet, Microsoft Teams ou Zoom.
As aulas síncronas serão gravadas e disponibilizadas usando o Youtube, Google Drive ou Moodle, para que o estudante possa assistir caso tenha perdido o encontro síncrono por conta de algum impedimento.
Aulas complementares serão gravadas e disponibilizadas como atividades assíncronas. Além disso, em todas as semanas do curso, serão passadas atividades para serem feitas em casa, visando fixar o contudo ministrado e avaliar o desempenho dos estudantes.
Para complementar e aumentar a eficácia da aprendizagem, os alunos poderão tirar dúvidas através de e-mail e aplicativos de conversação.
O semestre de 2020/1 acontecerá em um período de 15 semanas. A carga horária semanal será distribuída em atividades síncronas (12h por semana – teóricas e práticas) e assíncronas (8h por semana – teóricas e práticas).
Os encontros síncronos serão agendados em conformidade com os horários das aulas teóricas e práticas, conforme previsto para a disciplina no calendário normal divulgado pela FEELT.
O cronograma de atividades síncronas está na tabela abaixo.
Conteúdo |
|
Semana I |
Fundamentação e apresentação do curso, Breve histórico, compiladores, apresentação de mensagens e captura de dados, Características básicas da linguagem C: sequência, decisão e iteração. |
Semana II |
Bases numéricas, primitivas e tipos de dados, ponteiros, vetores e strings. |
Semana III |
Manipulação de matrizes numéricas e alfanuméricas. |
Semana IV |
Estruturas, definição de novos tipos, vetores de estruturas. |
Semana V |
Funções, parâmetros (valor, referência), escopo e recursão. |
Semana VI |
Primeira Avaliação. |
Semana VII |
Ponteiros e suas aplicações. |
Semana VIII |
Memória estática, memória dinâmica. |
Semana IX |
Alocação dinâmica de matrizes. |
Semana X |
Segunda Avaliação |
Semana XI |
Arquivos de texto. Entrada e saída de dados (arquivos). |
Semana XII |
Arquivos binários. Entrada e saída de dados (arquivos). |
Seaman XIII |
Aplicações: Construção de aplicações em Forms. |
Semana XIV |
Terceira Avaliação |
Semana XV |
Entrega do trabalho final, e divulgação do resultado final. |
AVALIAÇÃO
Serão três tipos de avaliações:
1 - Trabalhos que os estudantes deverão entregar todas as semanas. Estes trabalhos serão passados nas aulas síncronas práticas (40 pontos).
2 - Duas avaliações que serão aplicadas nos horários das aulas síncronas teóricas (40 pontos).
3 - Trabalho Final: os alunos terão que entregar um documento em PDF, contendo o último e mais completo trabalho do curso (20 pontos).
BIBLIOGRAFIA
Básica
1. ASCENCIO, Ana Fernanda e de CAMPOS, Edilene Aparecida; Fundamentos da programação de computadores – Algoritmos, Pascal, C/C++ e Java, 2ª. Edição, São Paulo:Pearson Prentice Hall, 2007.
2. SCHILDT, Herbert; C Completo e Total, 3a. Edição, São Paulo:Pearson Prentice Hall, 2007.
3. MIZRAHI, Victorine Viviane; Treinamento em Linguagem C, 2ª. Edição, São Paulo:Pearson Prentice Hall, 2008.
Complementar
1. VAREJÃO, F. M.; Linguagens de programação – Conceitos e técnicas, Elsevier, Rio de Janeiro, 2004.
2. SEBESTA, R. W.; Conceitos de linguagens de programação , Bookman, Porto Alegre, 2003.
3. BARNES, D. J; KÖLLING, M. Programação orientada a objeto com JAVA, São Paulo, 2004.
4. KRENIGHAN, B. W.; RITCHIE, D. M.; C: a Linguagem de programação - padrão ANSI, Editora Campus, Rio de Janeiro, 1990.
5. MIZRAHI, Victorine Viviane; Treinamento em Linguagem C++, Módulo 1, 2ª. Edição, São Paulo:Pearson Prentice Hall, 2006.
APROVAÇÃO
Aprovado em reunião do Colegiado realizada em: ____/____/______
Coordenação do Curso de Graduação: _________________________
Documento assinado eletronicamente por Augusto Wohlgemuth Fleury Veloso da Silveira, Professor(a) do Magistério Superior, em 10/02/2021, às 09:35, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015. |
Documento assinado eletronicamente por Alexandre Coutinho Mateus, Membro de Comissão, em 10/02/2021, às 17:55, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015. |
A autenticidade deste documento pode ser conferida no site https://www.sei.ufu.br/sei/controlador_externo.php?acao=documento_conferir&id_orgao_acesso_externo=0, informando o código verificador 2557979 e o código CRC DE8D10CF. |
Referência: Processo nº 23117.005413/2021-10 | SEI nº 2557979 |