O cumprimento da disciplina busca dar ao aluno, ao final do semestre, condições de:
1. Conhecer e utilizar de forma precisa conceitos e termos relacionados a algoritmos, linguagens de programação e à construção, teste e depuração de programas.
2. Desenvolver as competências e habilidades para a formular problemas, pensar sobre soluções e expressar estas soluções na forma de um programa em uma linguagem de programação.
3. Descrever algoritmos utilizando diagramas e pseudocódigo.
4. Construir abstrações para procedimentos, funções e tipos abstratos de dados utilizando os conceitos de classes e objetos.
5. Compreender e utilizar as técnicas fundamentais de teste e depuração de programas.
1.1. Conceitos de programa de computador e organização de computadores
1.2. Definição de compilador e de interpretador
1.3. Projeto de algoritmos
2.1. Tipos de dados
2.1.1 Tipos primitivos
2.1.2 Strings
2.2. Variável e constante
2.3. Expressões aritméticas
2.3.1. Operadores aritméticos
2.3.2. Prioridades
2.3.3. Funções matemáticas
2.3.4. Conversão de tipos numéricos
2.4. Comandos
2.4.1. Atribuição
2.4.2. Entrada via console
2.4.3. Saída via console
3.1. Expressões lógicas
3.1.1. Operadores Relacionais
3.1.2. Operadores lógicos
3.1.3. Tabela verdade
3.2. Seleção simples (comando if)
3.3. Seleção composta (comando if-else)
3.4. Seleção aninhada
3.5. Seleção múltipla (comando switch-case)
4.1. Repetição simples
4.1.1. Comando while
4.1.2. Inicialização, contadores e acumuladores
4.1.3. Comando for, break, continue
4.1.4. Comando do-while
4.2. Repetição aninhada
5.1. Definição
5.2. Parâmetros
5.3. Retorno
5.4. Escopo de variáveis
5.5. Recursão
6.1. Unidimensionais
6.1.1. Conceito
6.1.2. Declaração e uso
6.1.3. Passagem por parâmetro
6.1.4. Algoritmos de preenchimento, soma e média, máximo e mínimo, pesquisa linear, remoção de elemento, inserção de elemento, troca de posição de elementos, cópia, inversão, inserção ordenada, pesquisa binária, ordenação, união, intersecção, diferença, etc.)
6.2. Bidimensionais
6.2.1. Conceito
6.2.2. Declaração e uso
6.2.3. Passagem por parâmetro
6.2.4. Algoritmos de operações matemáticas sobre matrizes
6.3. De arranjos
6.3.1. Conceito
6.3.2. Declaração e uso
6.3.3. Passagem por parâmetro
7.1. Arquivos: conceitos
7.2. Arquivos texto
7.3. Tratamento de exceções de entrada e saída
7.4. Argumentos de linha de comando
8.1. Tipos abstratos de dados
8.2. Programação orientada a objetos
8.3. Conceito de objeto: atributos e métodos
8.4. Conceito de classe, abstração e encapsulamento
8.5. Método construtor
8.6. Referências para objetos