Programação I Aula 1 — Apresentação

Propaganda
Programação I
Aula 1 — Apresentação
Pedro Vasconcelos
DCC/FCUP
2017
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
1 / 32
Nesta aula
1
Objetivos, funcionamento e avaliação
2
Introdução aos computadores
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
2 / 32
Conteúdo e objetivos
Introdução ao uso de computadores com sistema operativo
GNU/Linux
Introdução à programação usando a linguagem Python
No fim deste curso deverá ser capaz de:
1
2
3
4
5
simular a execução de programas simples passo-a-passo;
aprendar algumas estruturas de dados e algoritmos fundamentais;
codificar algoritmos simples em Python;
decompor problemas em subrotinas e funções re-utilizáveis;
testar e corrigir erros dos seus programas.
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
3 / 32
Funcionamento
Teóricas exposição de conceitos; resolução e discussão de
exercícios
2 × 1 h por semana
Práticas (em laboratório) consolidação de conhecimentos;
resolução individual de exercícios
2 h por semana
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
4 / 32
Avaliação
Teste intermédio (20%)
Exame final (80%)
Condições para obtenção de frequência:
1
Presença em 2/3 (dois terços) das aulas práticas
2
Resolução de 1/2 (metade) dos exercícios de aulas práticas com
correção automática
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
5 / 32
Bibiografia recomendada
1
How to Think Like a Computer Scientist – Learning with Python 3
(RLE), 3rd Edition (Using Python 3.x). P. Wentworth, J. Elkner,
A. B. Downey, and C. Meyers.
http://thinkcspy.appspot.com/
2
Learning with Python: Interactive Edition. B. Miller and D. Ranum.
http:
//openbookproject.net/thinkcs/python/english3e
3
Think Python. A. B. Downey.
http://www.greenteapress.com/thinkpython/
thinkpython.html
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
6 / 32
Bibliografia complementar
Para quem quiser explorar tópicos mais avançados:
Python: How to Program. H. M. Deitel, P. J. Deitel, J. P. Liperi,
B. A. Wiedermann.
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
7 / 32
Outros recursos
Página web slides de aulas, folhas de exercícios
http:
//www.dcc.fc.up.pt/~pbv/aulas/programacaoI
Página de submissão de exercícios para avaliação automática
https://ipminor.dcc.fc.up.pt/
Fórum de discussão perguntas sobre aulas, exercícios e submissões
https://piazza.com/fc.up.pt/spring2017/
cc1015/home
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
8 / 32
Introdução aos computadores
Computador
um processador de informação (dados);
segundo um programa (lista de instruções).
Efectua rapidamente muitas operações aritméticas:
humano: aproximadamente 1 operação/segundo
computador actual: >1 milhão de operações/segundo
Processa informação matematizável (ex: números, textos, sons,
imagens. . . )
Utilizável para diversos fins com diferentes programas
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
9 / 32
Breve cronologia dos computadores
1940s Computadores eletro-mecânicos e a válvulas: Colossus,
Harvard Mk I, ENIAC
ENIAC, U.S. Army photo
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
10 / 32
Breve cronologia dos computadores (cont.)
1950s Primeiros computadores comerciais: UNIVAC I
1960s “Mainframes”: IBM System/360
IBM System/360 exposto no Deutsches Museum in Munich Germany
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
11 / 32
Breve cronologia dos computadores (cont.)
1970s Mini-computadores: DEC VAX, PDP-11, UNIX
PDP-11, 1972
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
12 / 32
Breve cronologia dos computadores (cont.)
1977–1982: Primeiros computadores pessoais
Apple II
IBM PC
Sinclair ZX Spectrum
Acorn BBC Micro
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
13 / 32
Breve cronologia dos computadores (cont.)
1984–1986: Computadores pessoais com interfaces gráficas
Apple Macintosh
Pedro Vasconcelos (DCC/FCUP)
Commodore Amiga
Programação I Aula 1 — Apresentação
Atari ST
2017
14 / 32
Breve cronologia dos computadores (cont.)
1985–1990: “IBM PC clones” e a arquitetura “Wintel”
Windows 1.0
Pedro Vasconcelos (DCC/FCUP)
Windows 3.0
Programação I Aula 1 — Apresentação
Windows 95
2017
15 / 32
Breve cronologia dos computadores (cont.)
1991: World Wide Web
Primeiro servidor web (CERN)
Pedro Vasconcelos (DCC/FCUP)
NCSA Mosaic 1.0 web browser
Programação I Aula 1 — Apresentação
2017
16 / 32
Breve cronologia dos computadores (cont.)
1991: GNU/Linux
Richard Stallman (fundador da Free Software Foundation
e do projeto GNU)
Pedro Vasconcelos (DCC/FCUP)
Linus Torvalds (criador do kernel Linux)
Programação I Aula 1 — Apresentação
2017
17 / 32
Breve cronologia dos computadores (cont.)
2007–2008: Plataformas móveis
Apple iPhone
Pedro Vasconcelos (DCC/FCUP)
Apple iPad
Google Android Nexus
Programação I Aula 1 — Apresentação
2017
18 / 32
Níveis conceptuais de um computador
Hardware: CPU, memória, unidades de disco, ecrã, teclado, rato. . .
Software: sistema operativo, aplicações, jogos, ficheiros (imagens,
músicas, filmes, folhas de cálculo, bases de dados. . . )
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
19 / 32
Níveis conceptuais de um computador (cont.)
Tendências:
hardware mais barato
software mais complexo e caro
importância do desenvolvimento de software:
utilização de linguagens de alto nível
re-utilização de componentes (bibliotecas)
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
20 / 32
Sistemas de operação
Conjunto de software de base para gerir recursos do computador
Proporciona funcionalidades para as aplicações:
gestão de utilizadores
gestão de memória
gestão de ficheiros
gestão de input/output (I/O): terminais, impressoras, interfaces
gráficas, ligações de rede
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
21 / 32
Cronologia do sistemas de operação
Primeiros sistemas de operação (1950s):
um trabalho de cada vez (batch)
apenas supervisiona as transições entre trabalhos
Mainframes (1960-1970s)
caros: necessário partilhar recursos
multi-utilizador: vários utilizadores em terminais
multi-tarefa: divisão o tempo de processamento entre os vários
trabalhos (time-sharing)
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
22 / 32
Cronologia do sistemas de operação (cont.)
Mini-computadores: sistema UNIX (1970s)
multi-utilizador, multi-tarefa
portável para diferentes modelos de computadores
código-fonte em linguagem C distribuído com o sistema
popular na comunidade académica (Universidade de Berkeley)
variantes comerciais: Ultrix, System V, IRIX, Solaris
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
23 / 32
Cronologia do sistemas de operação (cont.)
Primeira geração de computadores pessoais (1970–1982)
um utilizador, uma tarefa
interface textual
muitas vezes combinada com
um interpretador de BASIC
específico para cada modelo
de computador
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
24 / 32
Cronologia do sistemas de operação (cont.)
Primeiras interfaces gráficas (1984–1990)
um utilizador, multi-tarefa
aplicações associadas a
janelas independentes
apresentação de programas e
ficheiros usando ícones
seleção usando um “rato”
específico para cada modelo
de computador
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
25 / 32
Cronologia do sistemas de operação (cont.)
Actualmente:
computadores pessoais com mais recursos do que os antigos
super-computadores
ligados em redes locais e globais (internet)
sistemas multi-utilizador, multi-tarefa
maior independência do hardware
separação entre o núcleo e a interface gráfica
UNIX em PCs: GNU/Linux, MacOS X
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
26 / 32
O sistema UNIX
organizado num núcleo (kernel) e vários processos
núcleo: tem acesso directo ao hardware
processos: pedem recursos ao núcleo
(exemplo: acesso a ficheiros em disco)
cada utilizador:
identificado por um utilizador (exemplo: pbv)
autenticado por uma palavra-passe (secreta)
área pessoal para ficheiros: “home directory”
super-utilizador: root
administrador do sistema
pode alterar configurações de sistema
pode acrescentar/remover utilizadores
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
27 / 32
Organização de ficheiros
ficheiros: textos, imagens,
programas. . .
identificados por nomes
estruturados em directórios
hierárquicos, exemplo:
/home/pbv/aulas/teorica-01.tex
permissões associadas a cada
ficheiro: leitura, escrita, execução
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
28 / 32
Processos
Processo: execução dum programa num determinado contexto
(utilizador e dados)
Aparência de vários processos a “correr” em simultâneo
Processos de utilizadores comuns: aplicações, editores,
compiladores, interpretadores, etc.
Processos de sistema: interface gráfica, servidores (WWW, email,
ssh), etc.
Filosofia do UNIX: núcleo simples, tudo o resto são processos
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
29 / 32
Interpretador de comandos UNIX
Shell: interface textual para executar comandos UNIX
Cada comando é (normalmente) um programa em /bin ou
/usr/bin
Sintaxe típica: comando [opções] [argumentos . . . ]
Cada comando é executado com um novo processo
Associado ao directório corrente (“working directory”)
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
30 / 32
Alguns comandos úteis
ls
pwd
cd
mkdir
rmdir
cp
mv
rm
less
ps
man
listar ficheiros no directório actual
imprime o directório actual
mudar o directório actual
criar um novo directorio
remover um directório (vazio)
copiar ficheiro
mover/mudar nome de um ficheiro
remover um ficheiro
mostrar um ficheiro de texto página-a-página
listar processos (do utilizador ou do sistema)
mostrar manual de um comando
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
31 / 32
Caminhos absolutos e relativos
.
..
∼
directório actual
directório pai
directório casa
absoluto: /home/pbv/docs/thinkCSpy.pdf
relativo: ../docs/thinkCSpy.pdf
relativo à casa: ∼/docs/thinkCSpy.pdf
Pedro Vasconcelos (DCC/FCUP)
Programação I Aula 1 — Apresentação
2017
32 / 32
Download