Programming Logic

Introdução

Conceito de lógica aplicado à programação.
Processo de pensamento atrelado ao conceito de algoritmos e resolução de problemas. Esse processo é inerente ao processo do pensamento humano usado no dia a dia.

A lógica é um tipo de estrutura que visa solucionar problemas.

Problema

Problema é uma questão com númerosas soluções, objeto de discussão e as vezes com uma proposta duvidosa.
Problema é uma questão que foge a uma determinada regra, ou melhor é um desvio de percurso, o qual impede de atingir um objetivo com eficiência e eficácia.

Lógica

Parte da filosofia que trata das formas do pensamento em geral (dedução, indução, hipótese, inferência, etc) e das operações intelectuais que visam à determinação do que é verdadeiro ou falso.

Então, a lógica é uma maneira de pensar.

Organização e planejamento das instruções assertivas em um algoritmo, a fim de viabilizar a implantação de um programa para a resolução de um problema.

Seres humanos podem prever comportamentos, computadores não! Aí entra a questão das instruções serem detalhadas para o computador.

Por que entender a lógica de programação?

"Everybody in this country should learn how to program a computer because it teaches you know to think", Steve Jobs.

A lógica de programação nos ensina a como pensar de maneira eficiente, mais objetiva, um tipo de pensamento mais bem definido que ajuda a resolver problemas.

Técnicas

Técnicas são modelos de desenvolvimento de resolução de problemas.
Formas de ordenar instruções para atingir determinado objetivo.

Técnica de Lógica Linear

É um modelo tradicional, mais simples, eficaz, não tem vinculo com nenhuma estrutura hierárquica ou com programação de computadores. Linear refere-se a algo homogêneo, unidirecional, e essa ideia vem da matemática. Seria uma execução sequenciada de eventos, onde temos a ordenação dos elementos por uma única propriedade (problema). Então temos um problema com uma dimensão, temos apenas uma propriedade objeto do problema, e ele é ordenado de maneira sequencial. É um modelo tradicional e tem recursos limitados. Resolve problemas que não envolvam outros problemas, sem dependências.

Técnica de Lógica Estruturada

É um modelo para casos um pouco mais complexos, adere a ideia de hierárquia. Há uma sequência, uma dependência e uma ordenação especifica a uma estrutura especifica dentro da sequência de eventos. Estrutura é organização, disposição e ordem dos elementos essenciais que compõem um corpo (concreto ou abstrato). Há uma determinada ordem colocada para compôr os eventos, e um objeto (corpo).
Objetivos
Resolve problemas que tenham estruturas condicionais e estruturas de repetição. Técnica usada, principalmente, na área de processamento de dados (programação de computadores).

Técnica de Lógica Modular

É um modelo usado para decompor um problema em módulos, que serão partes independentes. Os módulos são colocados cada um no seu contexto, e controlados por um conjunto de regras. Essas regras é que vão determinar a iteração entre os módulos. vem da ideia de pensamento computacional

No modelo padrão em desenvolvimento de software o problema é divido em trẽs partes:
ENTRADA >> PROCESSAMENTO >> SAÍDA

Esta técnica não se restringe ao modelo padrão apresentado, pois há diferentes níveis de abstração para a técnica modular, porque estamos puxando do mundo concreto (físico) para o mundo abstrato e isso nos possibilita modular ainda mais.
Objetivos

References