1. Desenvolver softwares envolvem 3 etapas:
1.1. Analise: Onde se estuda o enunciado do problema para se definir os dados de entrada, processamento e saída.
1.2. Algoritmo: Onde utilizando a descrição narrativa, o fluxograma ou o pseudocódigo/portunhol para descrevermos o problema com suas soluções.
1.3. Codificação: Onde o algoritmo é transformado em códigos de uma linguagem de programação.
2. Algoritmo é uma sequência de passos que visa atingir um objetivo bem definido.
3. Pseudocódigo ou Portugol
3.1. É a mais usada, faz se uso de uma linguagem de códigos pré-definidos.
3.1.1. Vantagem: Sua passagem para um programa é quase direta.
3.1.2. Desvantagem: Necessita aprender a linguagem antes.
4. Descrição Narrativa
4.1. Escreve utilizando uma linguagem natural os passos a serem seguidos para a resolução.
4.1.1. Vantagem: Por utilizar a linguagem natural, não há necessidade de aprender uma nova lingua.
4.1.2. Desvantagem: Por ser uma linguagem natural, permite várias interpretações, além de serem muito diferentes das linguagens de programação, o que dificulta a transcrição do algoritmo.
5. Fluxograma
5.1. Forma visual de representar um algoritmo utilizando símbolos gráficos pré-definidos.
5.1.1. Tem como vantagem a rápida interpretação.
5.1.2. Tem como desvantagem a falta de detalhes dificulta a transcrição para um programa.
6. Tipos de estruturas em algoritmos
6.1. Estruturas sequenciais
6.1.1. É a estrutura mínima de um algoritmo, sem verificações ou condições no percurso, apenas início, processamento e fim.
6.2. Estrutura condicional
6.2.1. Estrutura condicional simples: Acontece quando se tem um verificador de se(verdadeiro)
6.2.2. Estrutura condicional composta: Acontece quando se tem duas situações possíveis. if(true) else(false).
6.3. Estrutura de repetição
6.3.1. Utilizado quando uma parte do algoritmo ou ele todo precisa ser repetido uma ou mais de uma vez. Estão divididas em estrutura de repetição com variável de controle {for(int i=0; i<n; i++)}, estrutura de repetição com teste no inicio {while(condição) do} e estrutura de repetição condicional com teste no fim {do while(condição)
7. Sub-rotinas
7.1. Sem parâmetros
7.1.1. Neste modelo são feitos os procedimentos fora do corpo principal do programa sem uso de parâmetros
7.2. Com parâmetros
7.2.1. Neste modelo são feitos os procedimentos fora do corpo principal do programa com adição de um parâmetro (valor).
7.3. Sem parâmetros e sem retorno
7.3.1. Também conhecido com funções estas sempre retornam um valor
7.4. Com parâmetro e com retorno
7.4.1. Também conhecido com funções estas sempre retornam um valor, neste caso com adição de um parâmetro (valor).
7.5. Divisão dos algoritmos em blocos menores e com objetivos bem definidos
7.5.1. Paradigma da programação estruturada: Define uma programação voltada para procedimentos e funções também chamadas de sub-rotinas definidas pelo usuário.
7.5.2. Paradigma da orientação a objetos: Define uma programação voltada aos conceitos de classe e herança.