Você está na página 1de 16

Disciplina: Informática para Engenharia

Aula 1: Introdução à Computação e à Lógica

Apresentação
O computador não nasceu para o entretenimento ou a escrita de e-mails, mas para resolver uma grave crise
de processamento de números. Em 1880, a população dos EUA havia crescido tanto que levou mais de sete
anos para tabular os resultados de um censo realizado. Em razão dessa demanda, o governo buscou uma
maneira mais rápida de realizar o trabalho, dando origem assim aos primeiros computadores.

De máquinas enormes (como o computador Eniac) a dispositivos móveis, a computação viu mudanças
tecnológicas incrivelmente rápidas. Atualmente, os notebooks, smartphones e tablets que temos possuem
mais poder de computação do que os disponíveis nesses primeiros modelos.

Essas atualizações de hardware significariam pouco, no entanto, sem o nascimento e o desenvolvimento dos
softwares. De sistemas operacionais e planilhas a aplicativos e jogos para dispositivos móveis, você interage
com o software sempre que usa um computador.

Objetivos
Descrever as origens dos computadores modernos, suas aplicações a partir de um breve histórico e a
evolução dessas máquinas;
Ilustrar os componentes básicos de um computador: hardware, dados e software;
Discutir brevemente a metodologia para a resolução de problemas com o apoio de computadores.
Computadores Digitais Modernos
A ideia de computação como vemos atualmente pode ser creditada ao matemático britânico Alan
Turing, cuja invenção, datada de 1937, consiste em um dispositivo de computação universal, então
chamado de Máquina de Turing. Apesar do interesse inicial na descrição matemática e filosófica da
computação, o modelo de Turing serviu de base para o que hoje conhecemos como computador
(FOROUZAN; MOSHARRAF, 2011).

 Nanomachine. (Fonte: Ryotiras


<http://ryotiras.com/nanomachine/> )

Conhecido também como máquina universal de Turing, a ideia principal por trás desse dispositivo é
que ela pode realizar qualquer cálculo se descrevermos como realizar o cálculo (ou seja, o programa)
e fornecermos os dados de entrada. Apesar de sua simplicidade, a máquina pode simular qualquer
algoritmo de computador, não importa o quão complicado seja!

Uma das características nos computadores baseados no modelo de Turing é que os dados são
armazenados em sua memória. Entretanto, a primeira demonstração prática de um computador
digital ocorreu por volta de 1944–1945 pelo matemático húngaro John von Neumann.

 (Fonte: ShotPrime Studio / Shutterstock)

Tendo como base a máquina de Turing, o modelo von Neumann parte do princípio de que, se o
programa e os dados são logicamente os mesmos, seus programas podem ser armazenados
juntamente com os dados na memória do computador.
Esse é um conceito totalmente diferente da arquitetura dos primeiros

computadores, em que somente os dados eram armazenados na memória.

Outra característica dessa arquitetura é relacionada com a forma com que as instruções são
executadas. Um programa no modelo von Neumann é composto de um número finito de instruções
executadas uma depois da outra.

O conceito de programa armazenado proposto na arquitetura de von Neumann é baseado nos


seguintes subsistemas:

Unidade central de processamento

Caminhos (bus) de dados

Dispositivos de entrada e saída

Histórico
A história da computação e dos computadores pode ser dividida em três períodos:

Máquinas mecânicas (antes de 1930)

O período até 1930 se caracterizou por máquinas mecânicas de computação com pouca
semelhança com o moderno conceito de computador. Uma das primeiras máquinas projetadas
para auxiliar as pessoas em cálculos foi o ábaco.

Em 1642, Blaise Pascal (um famoso matemático francês) inventou uma máquina de calcular com
base em engrenagens mecânicas em que os números eram representados pelas engrenagens das
rodas. O inglês Charles Babbage inventou, na década de 1830, a máquina diferencial, que, além
de realizar as cinco operações aritméticas, também resolvia equações polinomiais. Em 1890,
Herman Hollerith projetou e construiu uma máquina programável para ler, registrar e ordenar
automaticamente dados armazenados em cartões perfurados.

Surgimento dos computadores eletrônicos (de 1930 a 1950)


O nascimento dos computadores eletrônicos ocorreu no período de 1930 a 1950, podendo essas
máquinas ser consideradas as pioneiras na indústria da computação e tendo como característica
principal o não armazenamento do programa na memória.

Em 1939, o computador chamado ABC, inventado por John Vincent Atanasoff e Clifford Berry, foi
projetado para resolver um sistema de equações lineares. Naquele mesmo período, uma
máquina de propósito geral chamada Z1 foi projetada pelo matemático alemão Konrad Zuse. Na
década de 1940, o inglês Alan Turing inventou o computador chamado Colossus, projetado
especificamente para decifrar códigos de guerra. Em meados da década de 1940, foi fabricado o
Eniac, o primeiro computador de propósito geral totalmente eletrônico.

Computadores baseados no modelo de von Neumann (de 1950 à época


atual)

As gerações de computadores da década de 1950 até os dias atuais seguem aproximadamente o


modelo de von Neumann. Historiadores dividem esse período em gerações, frequentemente
relacionadas às transformações do hardware ou software.

A primeira geração (1950–1959) foi marcada pelo surgimento dos computadores comerciais.
Disponíveis somente em grandes corporações e construídos a partir de tubos de vácuo, eles eram
extremamente grandes e operados por poucos profissionais altamente especializados.

Os computadores da segunda geração (1959–1965) tiveram seu tamanho reduzido com a


substituição dos tubos de vácuo pelos transistores, o que impactou diretamente a redução do seu
tamanho e seu custo; consequentemente, tornaram-se mais acessíveis a companhias de
pequeno e médio portes. Ainda nesse período, foram criadas linguagens de programação de alto
nível, como Fortran e Cobol, o que tornou a tarefa de programação mais fácil.

A quarta geração (1975–1985) foi marcada pelo surgimento dos microcomputadores (decorrente
de avanços na indústria eletrônica) e das redes de computadores, em particular a Internet. Já a
quinta geração teve início em 1985, perdurando até os dias atuais. Neste período, observamos a
evolução dos computadores pessoais até os dispositivos móveis, a popularização da rede mundial
de computadores e uma gama de serviços oferecidos pelas tecnologias de informação.

Organização dos Computadores

Dados e informação
Segundo Aguilar (2008), do ponto de vista simples, um computador processa os dados e os converte
em informação significativa. Considerados a unidade básica da informação, os dados são compostos
por valores brutos e números, não transmitindo assim uma mensagem que possibilita o entendimento
de dada situação. São facilmente obtidos por máquinas, quantificáveis e estruturados. Já a informação
são os dados processados, ou seja, é o resultado da análise e interpretação sob determinada ótica.

Hardware

Com base na arquitetura proposta por von Neumann, podemos classificar as partes que compõem o
computador em três amplas categorias: a unidade central de processamento (UCP), a memória
principal e o subsistema de entrada e saída.

 Núcleo da CPU. (Fonte: Rost9 / Shutterstock)

A Unidade Central de Processamento (UCP)


A Unidade Central de Processamento (UCP ou CPU, do inglês Central Processing Unit) é responsável
pela execução de programas armazenados na memória principal. A realização de operações sobre os
dados é essencialmente composta por três partes principais:

Unidade lógica e aritmética;


Unidade de controle; e
Um conjunto de registradores.
Os cálculos aritméticos, como soma, subtração, divisão e multiplicação, bem como as operações
lógicas (NOT, AND, OR e XOR) com os dados são realizados na unidade de lógica e aritmética (ULA).

A unidade de controle (UC) é responsável pelo bom funcionamento dos demais subsistemas,
determinando que operações devem ser realizadas e em que ordem, além de controlar e sincronizar
todo o processamento do computador.

O conjunto de registradores representa uma pequena memória com o objetivo de armazenar


resultados temporários em algumas informações de controle. Por se encontrarem dentro da UCP, são
muito mais rápidos que a memória principal.

Memória Principal

 Memória RAM de um computador. (Fonte: dnd_project /


Shutterstock)

Com base no modelo de von Neumann, a memória é responsável pelo armazenamento de programas
e dados durante o processamento. As memórias podem ser divididas em dois grandes grupos:

Memória de acesso aleatório (RAM); ou


Memória somente de leitura (ROM).

A memória RAM é considerada volátil, ou seja, tudo o que é armazenado nela é perdido quando o
computador é desligado. Em geral, a informação nela armazenada pode ser de dois tipos: as
instruções de programas e os dados sobre os quais alteram as instruções.

Já a memória ROM contém instruções fundamentais que não podem ser alteradas pelo usuário, ou
seja, ela não é volátil. Dada essa característica, geralmente essas memórias são utilizadas para
armazenar os programas do sistema de forma permanente (firmware), que serve para iniciar o uso do
computador. Um exemplo de memória ROM é o sistema básico de entrada e saída (BIOS, do inglês
basic input output system), utilizado durante o processo de inicialização de computadores.

Unidade de Entrada / Saída


A unidade de entrada e saída (E/S) aceita entrada (inserção) de dados e programas de dispositivos
externos, bem como a saída ou o retorno dos dados, resultado do processamento de alguma
operação.

Dispositivos de E/S podem ser divididos em duas amplas categorias:



1

Dispositivos de armazenamento


2

Dispositivos sem armazenamento

Dispositivos que não são de armazenamento permitem que a CPU/memória se comuniquem com o
mundo externo, mas não podem armazenar informações. Como exemplo, podemos citar o teclado, o
monitor e a impressora.

 (Fonte: olllikeballoon / Shutterstock)


Os dispositivos de armazenamento podem guardar grande quantidade de informações para posterior
recuperação. Eles são mais baratos que a memória principal, e o seu conteúdo não é apagado quando
a energia é desligada. Podemos classificá-los em dois grupos:

Magnéticos

Os dispositivos magnéticos são os mais antigos e, ainda, amplamente utilizados, principalmente


pela sua capacidade de armazenar uma grande quantidade de informação a um custo
relativamente baixo. A leitura e gravação das informações nesses dispositivos é realizada por
eletromagnetismo. Outra vantagem desse tipo de dispositivo está relacionada com a facilidade e
rapidez na manipulação dos dados. Nessa categoria se incluem os discos rígidos, disquetes, Fitas
DAT etc.

Ópticos
Considerados uma tecnologia relativamente recente, os dispositivos óticos utilizam luz de laser
para armazenar e recuperar dados. Uma das vantagens desses dispositivos em relação aos meios
magnéticos é a durabilidade dos dados. Como exemplo de dispositivos óticos, podemos citar os
CDs e DVDs.

Software

Em uma versão mais simples, arquitetura de Turing poderia representar um computador de propósito
específico, máquinas predominantes nas décadas de 1930 e 1940. No entanto, um computador de
propósito geral proposto por Turing é mais bem-representado com a adição de um componente: o
programa.

Resumidamente, um programa consiste de uma sequência de instruções, cada uma delas operando
em um ou mais itens de dados.

Os passos a seguir ilustram o exemplo de um conjunto de tarefas para a multiplicação de


dois números.

01

Digite um número

02

Digite um número

03

Multiplique os dois e armazene o resultado na memória

04

Exiba o resultado

Os programas, também chamados de softwares, dividem-se em dois grandes grupos:


Softwares de sistema

Os softwares de sistema, ou programas do sistema, são um conjunto de programas


indispensáveis para que o computador funcione. São exemplos o sistema operacional, os editores
de texto, as linguagens de programação e os programas utilitários.

Softwares de aplicações

Os softwares de aplicações (ou simplesmente softwares) pertencem a uma categoria de


programas que possibilita ao usuário realizar uma tarefa específica. Podemos citar como
exemplos os editores de texto, os navegadores de internet, os clientes de e-mail etc.
O processo de construção de um software chama-se programação,
e o conjunto de instruções que podem ser úteis para sua construção
denomina-se linguagem de programação. Assim, os programadores
utilizam uma linguagem de programação para a construção de
programas utilizando uma metodologia para desenvolvimento de
softwares.

Desenvolvimento de softwares
Modelagem de Problemas
De acordo com De SOUZA et al. (2011), a criação de algoritmos é uma tarefa essencialmente
intelectual. A partir de uma extensa e minuciosa leitura do enunciado do problema, o objetivo é
construir um algoritmo que o resolva. O processo de resolução de problemas envolve a análise e
síntese da solução.


1

Análise

Na etapa de análise, temos de descobrir os objetivos do problema, identificando os dados e as


condições necessárias para resolvê-lo.

Com base nisso, realizamos a modelagem do problema, podendo ser formalizada e enriquecida com
equações e desenhos gráficos, resultado de um plano de ação.


2

Síntese da solução

Com base no plano de ação definido na etapa anterior, na síntese representamos o problema por meio
de um algoritmo. Ao executar o código, procuramos verificar se os resultados produzidos são os
esperados.

Caso contrário, devemos analisar todo o código, realizar as alterações necessárias e executar
novamente o algoritmo. Esse passo se repete até que o algoritmo esteja em conformidade com suas
especificações.

Etapas de Desenvolvimento dos Softwares


A motivação para o desenvolvimento de softwares parte de alguma necessidade humana, como um
sistema para controlar estoque, gerenciar informações de saúde etc. A construção é baseada na
necessidade dos clientes, a partir de informações dadas sobre o que software deve conter e realizar.
Essas especificações são geralmente chamadas de requisitos.

Traduzidos em especificações técnicas de software, os requisitos dos clientes servem de base para o
desenvolvimento do programa. Tipicamente essa tarefa é dividida nas seguintes etapas:

Análise

Na fase de análise, são criadas as especificações de como o software irá funcionar.

Projeto

Na etapa do projeto, é realizado um refinamento nas especificações na etapa anterior.

Implementação

Durante a implementação, o software é construído de acordo com as especificações de projeto,


utilizando alguma linguagem de programação.

Testes

Após a construção do software, são realizados testes para verificar a conformidade com os
requisitos estipulados na etapa inicial.
Como o cliente explicou

Como o líder de projeto entendeu


Como a analista projetou

Como o programador codificou


O que o cliente realmente necessitava

Algoritmos e Lógica de Programação

De forma geral, o conceito de algoritmo pode ser descrito como um


conjunto de regras para a solução de um problema. Essa definição
generalista pode ser aplicada a qualquer circunstância que exige a
descrição da solução.

Assim, um algoritmo descreve de forma clara e correta as instruções que um programa deverá conter
para que nos dê os resultados esperados. O exemplo a seguir ilustra uma sequência de passos para o
cálculo da área de um triângulo.


Exemplo

Início
Ler valores para a base e a altura;
Calcular a área do triângulo, dada pela multiplicação da base pela altura dividida por 2;
Exibir a área calculada.

Fim

A formalização da sintaxe de um algoritmo consiste da definição de um conjunto de regras, que


indicam os tipos de comando e expressões. Pode-se citar como exemplo de elementos sintáticos as
estruturas de programação (sequenciais, de decisão e de repetição), os tipos de dados (numéricos,
alfanuméricos etc.), as variáveis e constantes, os operadores e as funções e procedimentos. Já a
semântica de um algoritmo estabelece regras para sua interpretação através da análise de símbolos
ou comandos. A correta representação de um problema depende de extensa leitura e da utilização
correta das ferramentas disponíveis.

Atividade
1. Qual foi o primeiro dispositivo de computação digital programável eletrônico?

a) Máquina analítica
b) Máquina de diferença
c) Colossus
d) Eniac

2. Qual é o nome da arquitetura geral que a maioria dos computadores usa nos últimos 40 anos?

a) Arquitetura de Turing
b) Arquitetura Hopper
c) Arquitetura Numa
d) Arquitetura von Neumann
3. Sobre a organização dos computadores, correlacione os conceitos com os respectivos termos.

a) Elementos de armazenamento de alta velocidade contidos na principal parte de um


computador.

b) A seção da UCP que seleciona, interpreta e cuida da execução das instruções do programa.

c) Unidade responsável por registrar as informações fornecidas pelo usuário e enviá-las para a
CPU.

4. Descreva os passos envolvidos na modelagem de problemas através do uso de algoritmos.


Correlacione essa metodologia com atividades do seu cotidiano.

Referências

AGUILAR, L. J. Fundamentos de programação: algoritmos, estruturas de dados e objetos. 3. ed. São


Paulo: McGraw-Hill, 2008.

DE SOUZA, M. A. F. et al. Algoritmos e lógica de programação: um texto introdutório para engenharia. 2.


ed. São Paulo: Cengage Learning, 2011.

FOROUZAN, B.; MOSHARRAF, F. Fundamentos da ciência da computação. São Paulo: Cengage Learning,
2011.

Próximos Passos

Apresentar técnicas para a modelagem de problemas;


Abordar formas de representação dos algoritmos;
Desenvolver algoritmos a partir de estudos de casos.

Explore mais

Assista ao vídeo “Como surgiu e como funciona o computador”. Disponível em <https://


www.ted.com/ talks/ olivier_scalabre_the_next_ manufacturing_revolution_ is_here?
language=pt-br
<https://www.ted.com/talks/olivier_scalabre_the_next_manufacturing_revolution_is_here?
language=pt-br> >. Acesso em 27 de jun 2018.
Assista à palestra “A próxima revolução industrial já está acontecendo”. Disponível em <https://
www.ted.com/ talks/ olivier_scalabre_the_next _manufacturing_revolution_ is_here?
language=pt-br
<https://www.ted.com/talks/olivier_scalabre_the_next_manufacturing_revolution_is_here?
language=pt-br> >. Acesso em 27 jun 2018.

Você também pode gostar