Programação
1. Componente Curricular:
Programação
2. Carga Horária:
60 horas
3. Objetivo:
Tendo como base a execução de atividades práticas e o desenvolvimento de produtos, desenvolver a capacidade de construir programas de pequeno e médio porte com a utilização de conceitos de programação estruturada.
4. Ementa Oficial:
Algoritmos. Representação e resolução de problemas em linguagem imperativa. Tipos primitivos de dados. Constantes e variáveis. Expressões Aritméticas e Lógicas. Estruturas de Controle. Recursividade. Vetores, Matrizes e Strings.
5. Conteúdo Programático:
Visão Geral 1: Algoritmos, dados, variáveis e programação sequencial.
Visão Geral 2: Estruturas básicas de programação e variáveis indexadas.
Algoritmos: Descrição Narrativa, Fluxograma, Pseudo-código.
Tipos Primitivos de Dados, Constantes e Variáveis.
Programas e Linguagens de Programação.
Representação Computacional de Expressões Aritméticas e Lógicas.
Concepção, Execução e Depuração de Programas.
Controle de Fluxo: Desvios Condicionais e Incondicionais.
Manipulação de Strings e Outros Tipos de Dados Indexados.
Procedimentos, Funções e Passagem de Parâmetros.
Recursividade: Características e Análise de Dados.
Interpretador, Compilador, Bibliotecas e Diretivas.
6. Abordagem Metodológica:
Aprender fazendo e fazer aprendendo. As ações implementadas têm como foco o aprendizado da Programação de Computadores pelo uso de recursos computacionais - privilegiando o projeto por simuladores e o desenvolvimento prático; seguido de exposições teóricas, apoiadas por: simulações, slides e vídeos. Em resumo, a metodologia tem como base a tríade Conteúdo, Atividade e Produto.
A avaliação final será dada pelas avaliações dos artefatos (relatório, apresentação oral, pôster, postagem, vídeo, ...) produzidos durante as aulas e entregues em cada uma das datas especificadas (peso 8). O aluno também será avaliado através de outros recursos (peso 2), como p.ex. a freqûencia e a apresentação de artefatos não obrigatórios - os quais poderão até ter pontuação extra.
Outras avaliações serão implementadas com o processamento das Leituras Complementares, onde os alunos serão conduzidos à leitura dos textos e deverão montar questionários sobre os mesmos. As perguntas de cada questionário devem estar relacionadas às dúvidas dos alunos, ou a alguma curiosidade sobre o assunto, ou seja, não devem ter resposta encontradas de forma direta no texto.
7. Plano de Aprendizado:
Aula 1
Conteúdo:
Visão Geral 1: Algoritmos, dados, variáveis e programação sequencial.
Atividades:
Sendo o computador e programando alunos.
Programando: Sequências; Uso de Dados e Variáveis; Entrada, Processamento e Saída.
Produtos:
Aprendizado de Programação com o Blockly Games.
Contando Histórias com o Tynker.
Aula 2
Conteúdo:
Visão Geral 2: Estruturas básicas de programação e variáveis indexadas.
Atividades:
Programando: Estrutura Condicional Simples; Estrutura Condicional Completa, Repetições.
Produtos:
Desafio: Ler números e listar apenas os primos.
Aula 3
Conteúdo:
Algoritmos: Descrição Narrativa, Fluxograma, Pseudo-código.
Atividades:
Produtos:
Desafio: Conversor Decimal para Hexadecimal.
Aula 4
Conteúdo:
Tipos de Dados, Constantes e Variáveis.
Contadores, Acumuladores e Sinalizadores.
Atividades:
Produtos:
Gerador de Bit de Paridade Par (7 bits e gera BP).
Desafio: Programa para Corrigir Erros em 8 Bits.
Aula 5
Conteúdo:
Revisão de conteúdos e 1ª Avaliação.
Atividades:
Dados, algoritmos e suas representações.
Produtos:
Relatório de Produto e/ou Prova Prática 1.
Aula 6
Conteúdo:
Programas e Linguagens de Programação.
Tradutores e Interpretadores.
Atividades:
Produtos:
Aula 7
Conteúdo:
Representação Computacional de Expressões Aritméticas e Lógicas.
Atividades:
Produtos:
Desafio: Conversor Hexadecimal para Decimal.
Aula 8
Conteúdo:
Concepção, Execução e Depuração de Programas.
Atividades:
Produtos:
Calculadora de Salário Família.
Desafio: Calculadora de Salário Líquido.
Aula 9
Conteúdo:
Controle de Fluxo: Desvios Condicionais e Incondicionais.
Atividades:
Produtos:
Desafio: Verificador de DV de CPF.
Aula 10
Conteúdo:
Revisão de conteúdos e 2ª Avaliação.
Atividades:
Modelos de programação, expressões e controle de fluxo.
Produtos:
Relatório de Produto e/ou Prova Prática 2.
Aula 11
Conteúdo:
Manipulação de Strings e Outros Tipos de Dados Indexados.
Atividades:
Encontrando o maior e o menor em uma lista.
Invertendo os Caracteres em uma Strings.
Produtos:
Ordenador de Caracteres em Strings.
Desafio: Buscador binário em Strings Ordenadas.
Aula 12
Conteúdo:
Procedimentos, Funções e Passagem de Parâmetros.
Atividades:
Criando funções para manipular Vetores.
Produtos:
Conversor de Binário para 7 Segmentos.
Desafio: Ordenador Shell em Strings.
Aula 13
Conteúdo:
Recursividade: Características e Análise de Dados.
Atividades:
Encontrando o Caracter em uma String.
Encontrando o Caracter de forma recursiva.
Produtos:
Manipulador recursivo de String.
Aula 14
Conteúdo:
Interpretador, Compilador, Bibliotecas e Diretivas.
Atividades:
Convertendo Expressões Infixas em Pós-fixas.
Produtos:
Conversor de Expressões Infixas em Pré-fixas.
Aula 15
Conteúdo:
Revisão de conteúdos e 3ª Avaliação.
Atividades:
Desenvolvimento de Aplicativo para Computação com Interface Gráfica.
Produtos:
Relatório de Produto e/ou Prova Prática 2 (Resposta) e Resposta Prova Prática 3.
8. Bibliografia Básica:
Ascencio, A.F.G.; Campos, E.A.V. Fundamentos da Programação de Computadores: Algoritmos, Pascal, C/C++ (Padrão ANSI) e Java. Pearson, 3a Edição, 2012.
Deitel, P.; Deitel, H. C: Como Programar. Pearson, 6a Edição, 2011.
Junior, D.P.; Nakamiti, G.S.; Engelbrecht, A.M.; Bianchi, F. Algoritmos e Programação de Computadores. Elsevier, 2012.