Algoritmos & Computadores
No campo da ciência da computação, o conceito de algoritmo é fundamental, posto que, programar é construir algoritmos, isto é, descrever um conjunto de ações que visam a um objetivo definido. Na ciência da computação, o objeto em foco é a informação e, desse modo, os algoritmos deverão manipular informações. As informações são armazenadas na memória do computador na forma de bits e bytes e, estão lá aguardando serem manipuladas. Os objetos de que tratam as informações são normalmente nomes de pessoas, preços de produtos, número de filhos, tipo de sexo, etc. Estas informações são representadas através de um conjunto de caracteres alfabéticos, numéricos e outros símbolos. Essa variedade de informação dá origem a uma variedade correspondente de unidades de medida que são utilizadas em programação. Assim para valores numéricos definimos as medidas inteiro e real, para nomes e correlatos definimos a medida cadeia e para um único símbolo definimos a medida caracter. Estas medidas, dentro de nosso repertório definido para a expressão dos nossos algoritmos são denominadas tipos. Desse modo, podemos definir um objeto, por exemplo nome-de-pessoa e dizermos que é do tipo cadeia, preco-do-produto do tipo real, numero-de-filhos do tipo inteiro, sexo do tipo caracter, etc. Esses objetos definidos com um determinado tipo recebem o nome de variáveis. Assim, nome-de-pessoa, preco-do-produto, numero-de-filhos e sexo são variáveis. Ao conjunto de variáveis utilizadas para representar as informações em um algoritmo dá-se o nome de estrutura de dados.
Dentro da ciência da computação, um algoritmo é a formulação de estruturas de dados e de processos que manipulam essas estruturas com o objetivo de solucionar um determinado problema. Um algoritmo é um texto que descreve passo a passo como um problema é solucionável. Essa descrição deve ser bem definida, sem ambiguidades e executáveis no computador.
Programar é a arte ou técnica de construir algoritmos de forma sistemática. Programas são formulações concretas de algoritmos abstratos, baseados em representações e estruturas específicas de dados.
Niklaus WIRTH
(criador da linguagem PASCAL)
Na resolução de um problema nós nos abstraímos em estruturas de dados e processos utilizando do raciocínio lógico algorítmico. A utilização de uma linguagem de programação para quem se inicia nessa arte é uma condição limitante por dois motivos:
Uma solução intermediária é a utilização do PORTUGOL, um subconjunto da Língua Portuguesa, mas com o inconveniente crítico de não permitir a execução dos algoritmos, o que implica em diminuição considerável do aprendizado, uma vez que, a resolução é realizada apenas na folha de papel, tendo pois os alunos de acreditarem que a solução se dará.
Acreditamos que o interpretador Hall cumpre a tarefa de iniciar o estudante no estudo de lógica de programação amenizando as dificuldades estruturais e inserindo o aluno desde o início no ciclo de desenvolvimento de programas, tal qual acontece na vida prática. Essa práxis tem-se mostrado fecunda, pois os alunos sentem-se motivados quando podem observar seus algoritmos funcionando e por outro lado, também, quando seus erros de raciocínio são evidenciados pelo interpretador. Há ainda um ganho extra, pois o interpretador foi desenvolvido tendo em vista o paradigma das linguagens mais poderosas e modernas, tais como a linguagem C, C++ e Java.