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:

Produtos:

Aula 2

Conteúdo:

      • Visão Geral 2: Estruturas básicas de programação e variáveis indexadas.

Atividades:

Produtos:

Aula 3

Conteúdo:

      • Algoritmos: Descrição Narrativa, Fluxograma, Pseudo-código.

Atividades:

Produtos:

Aula 4

Conteúdo:

      • Tipos de Dados, Constantes e Variáveis.

      • Contadores, Acumuladores e Sinalizadores.

Atividades:

Produtos:

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:

      • Calculadora de Raiz Quadrada v1 e v2.

      • Desafio: Programa para Calcular a Raiz Cúbica.

Aula 7

Conteúdo:

      • Representação Computacional de Expressões Aritméticas e Lógicas.

Atividades:

Produtos:

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:

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:

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:

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:

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.

9. Materiais de Apoio:

Listas de Exercício:

Para as Aulas:

Para os Trabalhos e Atividades: