1.4. O que é Programação?

Programação é o processo de pegar um algoritmo e codificá-lo em uma notação, uma linguagem de programação, para que possa ser executado por um computador. Embora existam muitas linguagens de programação e muitos tipos diferentes de computador, o primeiro passo é a necessidade de ter uma solução. Sem um algoritmo não pode haver programa.

A ciência da computação não é o estudo da programação. Programação, no entanto, é uma parte importante do que um cientista da computação faz. A programação é muitas vezes a maneira como criamos uma representação para nossas soluções. Portanto, essa representação da linguagem e o processo de criá-la tornam-se partes fundamentais da disciplina.

Algoritmos descrevem a solução para um problema em termos de dados necessários para representar a instância do problema e o conjunto de etapas necessárias para produzir o resultado pretendido. Linguagens de programação devem fornecer uma maneira notacional de representar tanto o processo como os dados. Para este fim, linguagens fornecem construções de controle e tipos de dados.

Construções de controle permitem que etapas algorítmicas sejam representadas de maneira conveniente, mas inequívoca. No mínimo, os algoritmos exigem elementos que realizem processamento sequencial, seleção para tomada de decisão e iteração para controle repetitivo. Contanto que a linguagem forneça estas instruções básicas, pode ser usada para representação de algoritmos.

Todos os itens de dados no computador são representados como cadeias de caracteres de dígitos binários. Para dar significado a essas sequências, precisamos ter tipos de dados. Os tipos de dados fornecem uma interpretação para esses dados binários para que possamos pensar sobre os dados em termos que façam sentido com respeito ao problema sendo resolvido. Esses tipos de dados internos de baixo nível (às vezes chamados de tipos de dados primitivos) fornecem os blocos de construção para o desenvolvimento de algoritmos.

Por exemplo, a maioria das linguagens de programação fornece um tipo de dados para inteiros. Cadeias de dígitos binários na memória do computador podem ser interpretadas como números inteiros e receber os significados típicos que comumente associamos com números inteiros (por exemplo, 23, 654 e -19). Além disso, um tipo de dado também fornece uma descrição das operações que os itens desse tipo podem participar. Com inteiros, operações como adição, subtração e multiplicação são comuns. Nós nos acostumamos a esperar que tipos numéricos de dados possam participar dessas operações aritméticas.

A dificuldade que muitas vezes nos surge é o fato de que problemas e suas soluções são muito complexas. Estas instruções e tipos de dados simples, nativas da linguagem, embora certamente suficientes para representar soluções complexas, geralmente estão em desvantagem à medida que avançamos no processo de resolução de problemas. Precisamos de maneiras de controlar essa complexidade e ajudar na criação de soluções.

Next Section - 1.5. Por que estudar Estruturas de Dados e Tipos de Dados Abstratos?