Introdução à Programação
Apresentação da Disciplina e
Conceitos Básicos de
Computadores
2
Objetivos
Aprender técnicas de programação que aumentem a qualidade de software e a produtividade no desenvolvimento
Discutir conceitos de programação, ilustrando como os mesmos são representados na linguagem de programação C
Discutir como programas podem ser adequadamente escritos, estruturados e documentados
Explorar o ambiente de suporte a C, incluindo ferramentas e bibliotecas
Discutir princípios de engenharia e qualidade de software.
Desenvolver, documentar e avaliar uma aplicação de médio porte em C
Resultados de Semestres Anteriores
3
20 35%
21 37%
2 3%
14 25%
Resultados 2011-2
Aprovados por Média
Aprovados
Reprovados
Reprovados por Falta
Resultados de Semestres Anteriores
4
25 35%
18 26%
18 26%
9 13%
Resultados 2012-1
Aprovados por Média
Aprovados
Reprovados por Falta
Reprovados
Resultados de Semestres Anteriores
5
Resultados 2012-2
Resultados de Semestres Anteriores
6
Resultados de Semestres Anteriores
8
Análise de Resultados
Nos últimos 4 semestres, 267 alunos cursaram a
disciplina
167 aprovados (~63% de aprovação)
Apenas 84 aprovados por média (~31%)
100 reprovados (~37% de reprovação)
27 foram reprovados por média
Número de desistências da disciplina vem
aumentando
9
Mau Desempenho em IP
Consequências
Dificuldade em conseguir vagas para cursar a
disciplina de novo
Vária disciplinas dependem de IP
Atraso significativo no curso de EC
Para os que conseguiram passar com dificuldade,
problemas para acompanhar o resto do curso
Várias outras disciplinas exigem desenvolvimento
de programas (Algoritmos, Infra de SW, Infra de
Comunicação, etc)
Mais Importante: Requisito mínimo para um bom Engenheiro
da Computação é saber programar
10
Afetadas por IP
11
Como Ter Sucesso na Disciplina?
Estudo diário
São 6 horas de aula por semana
Nenhuma disciplina tem tantas aulas por semana
Programação não se aprende somente olhando o
livro e exemplos
Deve-se praticar exaustivamente
Programação não é trivial para muitos, pois envolve
raciocínio lógico para resolver problemas complexos e
codificar a solução em uma linguagem de programação
Facilidade de acesso a computadores
Aproveitar as aulas práticas e de exercícios
Escrever programas com alguém para esclarecer dúvidas
ajuda muito
12
Tópicos da Aula
Antes de aprender a programar, precisamos ver conceitos básicos de Computação
Componentes de um computador
Como os diferentes componentes interagem
Representação das informações em computadores
13
Hardware e Software
Computador = Hardware + Software
Hardware
Parte física do computador
Chips, monitores, teclado, etc
Software
Programas (conjunto de instruções)
e dados
Editores de texto, navegadores,
sistemas operacionais, etc
14
Modelo de um computador
CPU
Unidade Central de
Processamento
Memória Principal (RAM)
Armazenamento
Secundário Dispositivos de
Entrada/Saída
Canal de Comunicação
(Barramento)
Disco Rígido (HD), CD,DVD, Pen
Drive,etc Periféricos
15
CPU e RAM
CPU
Executa as instruções
presentes nos programas
Memória Principal (RAM)
Armazena os programas e
dados que estão sendo
usados pela CPU
CPU busca primeiramente programas e dados
residentes na memória
CPU também armazena dados na memória
16
Unidade Central de Processamento (1)
A CPU é o “cérebro do computador
Implementado em um chip chamado de
microprocessador
Faz continuamente 3 ações:
Busca
Busca instrução na
memória principal
Decodifica
Determina o que
é a instrução
Executa
Processa a
instrução
17
Unidade Central de Processamento (2)
Os componentes principais de uma CPU são:
Unidade de Lógica/Aritmética
Registradores
Unidade de Controle
Áreas pequenas de
armazenamento
Faz cálculos e toma
decisões
Coordena as etapas
do processamento
18
A velocidade de processamento de uma CPU é dado
pelo relógio (clock) do sistema
O clock gera um pulso eletrônico em intervalos
regulares
Estes pulsos coordenam as atividades da CPU
Velocidade da CPU é medida geralmente em Hertz
(Hz)
Unidade Central de Processamento (3)
19
Armazenando Dados (1)
Memórias são
divididas em várias
células de tamanhos
iguais
Cada célula é identificada
unicamente por um valor
numérico chamado de
endereço
9278
9279
9280
9281
9282
9283
9284
9285
9286
20
Armazenando Dados (2)
Cada célula pode
armazenar um valor de
tamanho máximo fixo
Valores que ultrapassam o
tamanho máximo de uma
célula são armazenados
em mais de uma célula
(células consecutivas)
9278
9279
9280
9281
9282
9283
9284
9285
9286
10011010
21
Também chamada de memória RAM
Random Access Memory
Acesso aos endereços de memória podem ser feita de
forma direta sem ter que passar por endereços
anteriores
Armazena dados e programas utilizados pelo
processador num dado instante
Quando o computador possui sistema operacional, este é
carregado na memória geralmente na hora em que o
computador é ligado
Memória Principal
22
Computadores atuais utilizam também pequenas memórias
cache para armazenar partes dos dados e programas que
estão na memória principal
Memória cache utiliza tecnologia que torna acesso aos
dados mais rápida
Evita acesso pelo barramento
Memória Principal
CPU Memória Principal (RAM)
Cache
23
Armazenamento Secundário
CPU
Memória Principal (RAM)
Armazenamento
Secundário
CPU procura programa/dados
na RAM
Não encontrando, CPU
procura na memória
secundária
Programa/dados são
transferidos para RAM
Tipos de memória
para armazenamento
de longa duração de
dados/programas
24
Armazenamento Secundário
(Disco Rígido)
Dispositivo magnético
Partes que são gravadas são magnetizadas
25
Armazenamento Secundário
(Disco Rígido)
Informações são gravadas em setores
Uma trilha é composta por um conjunto de
setores
setor
trilha
26
Armazenamento Secundário
(CD/DVD )
Dispositivo óptico
Pequenos furos quando lidos por laser refletem
diferentemente do resto do CD
Furos representam 0´s e espaços representam 1´s
27
Memória RAM é mais rápida do que memórias
secundárias
Memória RAM é volátil
Informação é perdida quando não há corrente elétrica
Memórias secundárias não são voláteis
Memórias secundárias geralmente são mais baratas
que a memória RAM
Por serem mais baratas, geralmente a capacidade de
armazenamento é maior (Ex: Disco Rígido)
Memória RAM x Memória Secundária
28
Dispositivos de Entrada/Saída
CPU
Memória Principal (RAM)
Armazenamento
Secundário Dispositivos de
Entrada/Saída Dispositivos para
facilitar a interação
do usuário
Interação do usuário
pode mudar o fluxo de
execução na CPU
29
Existem, basicamente, 2 formas de representar uma
informação:
Modo Analógico
Contínua, diretamente proporcional aos dados que
constituem a informação
Termômetro de mercúrio – Mercúrio sobe em um tubo
proporcionalmente ao aumento da temperatura fora do tubo
Modo Digital
Informação é quebrada em pedaços e cada pedaço é
representado separadamente
Música em um CD – o disco armazena números que
representam amostras regulares (no tempo) de níveis de
voltagens específicas do som
Representação de Informação
30
Analógico x Digital
Analógico
volt
tempo
3
8
11
7 4
1 2 3 4 5
Digital
8
11
7
4 3
1 2 3 4 5
31
Computadores armazenam toda informação de
forma digital
Números
Texto
Gráficos e Imagens
Vídeo
Áudio
Instruções de programas
Para isto o computador digitaliza as informações, ou
seja quebra a informação em pedaços
Informação Digital
32
Em um texto, cada caractere é armazenado como
um número, incluindo espaços, dígitos e pontuação
Caracteres maiúsculos e minúsculos têm
numerações diferentes
Representando Texto Digitalmente
O i , M u n d o!
79 105 44 32 77 117 110 100 111 33
33
Números Binários
Quando a informação é digitalizada, ela é
representada e armazenada em memória usando o
sistema de numeração binária
Um dígito binário (0 ou 1) é chamado de bit
Um bit pode representar 2 estados possíveis (0 ou 1), assim
como uma lâmpada que pode estar ligada (1) ou desligada
(0)
Dispositivos que armazenam e manipulam
informação com representação binária (com 2
estados possíveis) são mais confiáveis e baratos
34
Sistema de Numeração Binária (1)
No sistema de numeração decimal utilizamos os
dígitos de 0 até 9 para representar qualquer número
No sistema binário, só podemos utilizar os dígitos 0 e
1 para representar um número
Exemplo: Para representar o número nove em
decimal utilizamos o dígito 9, em binário ficaria 1001
1 0 0 1
1x 23 + 0 x 22 + 0 x 21 + 1 x 20
35
Sistema de Numeração Binária (2)
Sistema Decimal Sistema Binário (4 bits)
10
9
8
7
6
5
4
3
2
1
1010
1001
1000
0111
0110
0101
0100
0011
0010
0001
36
Unidades de Medida
Um byte corresponde a 8 bits
Capacidade de armazenamento de dados de uma
memória é medida em termos de bytes que ela pode
guardar
KB 210
= 1024
MB 220
(>1 milhão)
GB 230
(>1 bilhão)
TB 240
(>1 trilhão)
Unidade Símbolo Número de Bytes
kilobyte
megabyte
gigabyte
terabyte
37
Categorias de Software
Sistema Operacional
Controla todas as atividades do computador
Fornece uma interface para que o usuário interaja com o
computador
Gerencia recursos computacionais tais como CPU,
memória, dispositivos de E/S, etc
Windows , Unix, Linux, Mac OS
Aplicativos
Termo genérico para qualquer outro tipo de software
Editores de texto, jogos, navegadores, sistemas de controle
aéreo, etc
Maioria dos softwares possuem uma interface gráfica
(GUI)
38
Aplicativos e Sistema Operacional
CPU
Sistema Operacional Aplicativos Gerencia
recursos do
computador
39
Usuários e Sistema Operacional
CPU
Sistema Operacional Fornece uma
interface para que
o usuário acesse
os recursos de um
computador
40
Resumindo
Componentes básicos de um sistema computacional
Hardware
CPU
Memória
Periféricos
Software
Categorias de software
Top Related