introdução à programação aula 1 — apresentação
Post on 07-Jan-2017
222 Views
Preview:
TRANSCRIPT
Introdução à ProgramaçãoAula 1 — Apresentação
Pedro Vasconcelos
DCC/FCUP
2017
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 1 / 32
Nesta aula
1 Objetivos, funcionamento e avaliação
2 Introdução aos computadores
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 2 / 32
Conteúdo e objetivos
Introdução ao uso de computadores com sistema operativoGNU/LinuxIntrodução à programação usando a linguagem PythonNo fim deste curso deverá ser capaz de:
1 simular a execução de programas simples passo-a-passo;2 aprendar algumas estruturas de dados e algoritmos fundamentais;3 codificar algoritmos simples em Python;4 decompor problemas em subrotinas e funções re-utilizáveis;5 testar e corrigir erros dos seus programas.
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 3 / 32
Funcionamento
Teóricas: exposição de conceitos2 × 1 h por semana
Teórico-práticas: exposição e resolução de exercícios1 h por semana (apenas para L:CE)
Práticas: resolução individual de exercícios (nos laboratórios)2 h por semana
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 4 / 32
Avaliação
Por exame final, parcialmente com avaliação contínua:1 Teste intermédio (16-20 outubro): 20% da classificaçao2 Exame final: 80% da classificaçao
Condições de frequência:1 Presença em 2/3 (dois terços) das aulas práticas2 Resolução de 1/2 (metade) dos exercícios das folhas práticas
com correção automática
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação 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 Think Python. A. B. Downey.http://www.greenteapress.com/thinkpython/thinkpython.html
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 6 / 32
Bibliografia complementar
Python: How to Program. H. M. Deitel, P. J. Deitel, J. P. Liperi,B. A. Wiedermann.
(Apenas para quem quiser explorar tópicos mais avançados.)
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 7 / 32
Outros recursos
Página da UC com slides de aulas, folhas de exercícioshttp://www.dcc.fc.up.pt/~pbv/aulas/ipm
Submissão de exercícios para correção automáticahttps://ipminor.dcc.fc.up.pt/
Fórum web para discussão sobre aulas, folhas de exercícios esubmissõeshttps://piazza.com/fc.up.pt/fall2017/cc1015/home
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 8 / 32
Introdução aos computadores
Computadorum 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/segundoProcessa informação matematizável (ex: números, textos, sons,imagens. . . )Utilizável para diversos fins com diferentes programas
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação 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) Introdução à Programação Aula 1 — Apresentação 2017 10 / 32
Breve cronologia dos computadores (cont.)
1950s Primeiros computadores comerciais: UNIVAC I1960s “Mainframes”: IBM System/360
IBM System/360 exposto no Deutsches Museum in Munich Germany
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação 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) Introdução à Programação 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) Introdução à Programação Aula 1 — Apresentação 2017 13 / 32
Breve cronologia dos computadores (cont.)
1984–1986: Computadores pessoais com interfaces gráficas
Apple Macintosh Commodore Amiga Atari ST
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 14 / 32
Breve cronologia dos computadores (cont.)
1985–1990: “IBM PC clones” e a arquitetura “Wintel”
Windows 1.0 Windows 3.0 Windows 95
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 15 / 32
Breve cronologia dos computadores (cont.)
1991: World Wide Web
Primeiro servidor web (CERN) NCSA Mosaic 1.0 web browser
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 16 / 32
Breve cronologia dos computadores (cont.)
1991: GNU/Linux
Richard Stallman (fundador da Free Software Foundatione do projeto GNU)
Linus Torvalds (criador do kernel Linux)
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 17 / 32
Breve cronologia dos computadores (cont.)
2007–2008: Plataformas móveis
Apple iPhone Apple iPad Gloogle Android Nexus
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação 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) Introdução à Programação Aula 1 — Apresentação 2017 19 / 32
Níveis conceptuais de um computador (cont.)
Tendências:
hardware mais barato
software mais complexo e caroimportância do desenvolvimento de software:
utilização de linguagens de alto nívelre-utilização de componentes (bibliotecas)
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 20 / 32
Sistemas de operação
Conjunto de software de base para gerir recursos do computadorProporciona funcionalidades para as aplicações:
gestão de utilizadoresgestão de memóriagestão de ficheirosgestão de input/output (I/O): terminais, impressoras, interfacesgráficas, ligações de rede
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação 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áriostrabalhos (time-sharing)
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação 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) Introdução à Programação 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 tarefainterface textualmuitas vezes combinada comum interpretador de BASICespecífico para cada modelode computador
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 24 / 32
Cronologia do sistemas de operação (cont.)
Primeiras interfaces gráficas (1984–1990)
um utilizador, multi-tarefaaplicações associadas ajanelas independentesapresentação de programas eficheiros usando íconesseleção usando um “rato”específico para cada modelode computador
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 25 / 32
Cronologia do sistemas de operação (cont.)
Actualmente:
computadores pessoais com mais recursos do que os antigossuper-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) Introdução à Programação Aula 1 — Apresentação 2017 26 / 32
O sistema UNIX
organizado num núcleo (kernel) e vários processosnú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: rootadministrador do sistemapode alterar configurações de sistemapode acrescentar/remover utilizadores
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 27 / 32
Organização de ficheiros
ficheiros: textos, imagens,programas. . .identificados por nomesestruturados em directórioshierárquicos, exemplo:/home/pbv/aulas/teorica-01.tex
permissões associadas a cadaficheiro: leitura, escrita, execução
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação 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âneoProcessos 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) Introdução à Programação Aula 1 — Apresentação 2017 29 / 32
Interpretador de comandos UNIX
Shell: interface textual para executar comandos UNIXCada comando é (normalmente) um programa em /bin ou/usr/bin
Sintaxe típica: comando [opções] [argumentos . . . ]Cada comando é executado com um novo processoAssociado ao directório corrente (“working directory”)
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 30 / 32
Alguns comandos úteis
ls listar ficheiros no directório actualpwd imprime o directório actualcd mudar o directório actualmkdir criar um novo directoriormdir remover um directório (vazio)cp copiar ficheiromv mover/mudar nome de um ficheirorm remover um ficheiroless mostrar um ficheiro de texto página-a-páginaps listar processos (do utilizador ou do sistema)man mostrar manual de um comando
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação 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.pdfrelativo: ../docs/thinkCSpy.pdfrelativo à casa: ∼/docs/thinkCSpy.pdf
Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 1 — Apresentação 2017 32 / 32
top related