semana 0: computadores, linguagens e linguagens de programação, noções de algoritmo e de...

26
Introdução à Programação Informática e Gestão de Empresas Engenharia de Telecomunicações e Informática Engenharia Informática

Upload: manuel-menezes-de-sequeira

Post on 11-Jun-2015

1.729 views

Category:

Technology


1 download

DESCRIPTION

Apresentação da semana 0 da unidade curricular de Introdução à Programação do DCTI do ISCTE-IUL. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI, incluindo Luís Nunes e André Santos.

TRANSCRIPT

Page 1: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Introdução à Programação

Informática e Gestão de EmpresasEngenharia de Telecomunicações e InformáticaEngenharia Informática

Page 2: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Apresentação da unidade curricular (UC)

2010/2011 2Introdução à Programação - DCTI - ISCTE-IUL

Page 3: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Informação

Página Web da UC: http://ip.dcti.iscte.pt/

Consultar com frequência!

Contém Avisos Enunciados de exercícios Informação sobre calendário e horários Programa e método de avaliação Bibliografia Etc.

2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 3

Page 4: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Objectivos

Conhecer elementos fundamentais da programação

Ser capaz de planear resolução de problemas, estruturando correctamente os programas

Dominar eficientemente ambiente de desenvolvimento e suas ferramentas

Ter conhecimentos intermédios da linguagem Java

2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 4

Page 5: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Programa

Programação em Java Tipos, variáveis e expressões Classes e objectos Métodos, parâmetros e argumentos Instruções de selecção e iteração Matrizes, cadeias de caracteres e tipos

enumerados Métodos, decomposição funcional Recursividade

2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 5

Page 6: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Metodologia

Aulas teórico-demonstrativas (21 horas em 13 semanas) Salas de aula normais ou auditórios

Aulas laboratoriais (39 horas em 13 semanas) Laboratórios de informática (Edifício I, sala

0S0n, e Edifício II, salas D1.nn)

Atendimento ou sessões de dúvidas Gabinetes Laboratórios de informática (quando

necessário)2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 6

Page 7: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Informação e avisos

Informação relevante é publicada sempre página Web de IP: http://ip.dcti.iscte.pt/

2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 7

Page 8: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Aula 1Computador como máquina programávelConceitos de línguas naturais, linguagens de programação de baixo e de alto nível e linguagens máquinaNoções de algoritmo e de programa

2010/2011 8Introdução à Programação - DCTI - ISCTE-IUL

Page 9: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

O que é um computador?

Máquina programável genérica

Constituído por Processador

Memória rápida▪ RAM (volátil)

▪ ROM (persistente)

Memória lenta▪ Disco rígido

2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 9

Page 10: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Computador

Suporte físico ou hardware

Suporte lógico ou software

2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 10

girtby.net/images/hardware.jpg

do filme Matrix, whatisthematrix.warnerbros.com

Page 11: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Computador

hardware + software→ Execução de programas

Limitações no hardware podem impor limitações no software

Estrutura exacta do hardware varia

Mas arquitectura do hardware assemelha-se

2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 11

Page 12: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Hardware: principais componentes

Processador Unidade Central de Processamento (CPU) Executa instruções

Memória Primária: ROM e, sobretudo, RAM Secundária: discos rígidos Amovível: CD-ROM, DVD, canetas USB, cartões, etc.

Periféricos Comunicações com mundo exterior, armazenamento,

etc.

2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 12

Central Processing

Unit

Page 13: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Software

Ficheiro ou arquivo Unidade de armazenamento de dados

num sistema de ficheiros Normalmente em hierarquia de pastas Com identificador único (caminho ou

path)

2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 13

Page 14: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Software

Programa Instruções (contidas num ficheiro) numa

dada linguagem que resolvem um dado problema

Sistema operativo Programa ou conjunto de programas que

gerem o hardware, executam outros programas, fornecem uma interface de utilização, etc.

2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 14

Page 15: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Linguagens

2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 15

Page 16: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Linguagens

Linguagens naturais Português Inglês …

Linguagens artificiais Comunicação entre humanos

Esperanto Interlingua …

Linguagens de programação2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 16

As nossas!

Page 17: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Linguagens de programação

Linguagens de programação

De baixo nível Linguagem máquina Assembly

De alto nível PHP C++ Java …

2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 17

Comunicação com

computador.

Desadequadas para humanos.

Adequadas a humanos.

A nossa!

Page 18: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Linguagens de programação de baixo nível

Assemblies Linguagens muito básicas Usadas (quase) directamente pelos processadores

Linguagens máquina Usadas directamente pelos processadores (reais ou

virtuais) Por exemplo, o assembly

LOAD @R1, 0 JMP @R1

equivale, em linguagem máquina, a

0100001000100111001001100010100010010010001100010102010/2011 Introdução à Programação - DCTI - ISCTE-IUL 18

Page 19: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Instruções e linguagens

Informação armazenada Sob a forma de bits Bits organizados em octetos ou bytes Instruções são também informação Instruções representadas por sequências de octetos

Processador executa Instruções do seu próprio repertório Instruções de baixo nível

Instruções de alto nível Próximas da forma humana de raciocinar Processador não as pode executar directamente

2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 19

Page 20: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Introdução à Programação - DCTI - ISCTE-IUL 20

Linguagens de programação de alto nível

Sem ambiguidades e imprecisões de línguas naturais

Menos penosas para humanos que as de baixo nível

O Java

if(x == 1) System.out.println("x é igual a 1.");

pode traduzir-se para linguagem natural por

«Se a variável x contiver neste momento o valor 1, escrever no monitor o texto “x é igual a 1.”.»

2010/2011

Page 21: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Introdução à Programação - DCTI - ISCTE-IUL 21

Linguagens de programação de alto nível

CPU não as entende

Humanos preferem-nas

Necessário traduzi-las para linguagem máquina

Tradução realizada por compiladores

2010/2011

Page 22: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Introdução à Programação - DCTI - ISCTE-IUL 22

Programar

Compreender bem problema e dados envolvidos

Averiguar melhor forma de resolver problema e representar os dados

Determinar instruções duma linguagem de programação que resolvem (de forma genérica) esse problema

Essas instruções formam um programa2010/2011

Page 23: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Algoritmos (primeira abordagem)

Como uma receita, mas mais precisa:

Conjunto finito de regras, traduzíveis numa sequência de operações/instruções, que permitem resolver um determinado tipo de problema.

Donald E. Knuth2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 23

Page 24: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

A reter…

Tipos de linguagens (das línguas naturais às linguagens programação de alto nível)

Algoritmo como método de resolver um dado problema

Programa enquanto algoritmo expresso numa linguagem de programação2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 24

Page 25: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

A ler...

Capítulos 1 a 2 e secções 3.1 e 3.2 do livro:

Y. Daniel Liang, Introduction to Java Programming, 8.ª edição, Prentice-Hall, 2010.ISBN: 978-0-13-213080-6

2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 25

Page 26: Semana 0: Computadores, linguagens e linguagens de programação, Noções de algoritmo e de programa Computador como máquina programável Conceitos de línguas naturais, linguagens

Sumário

Apresentação da UCAula 1

Computador como máquina programável Conceitos de▪ línguas naturais▪ linguagens de programação de baixo e de

alto nível▪ linguagens máquina

Noções de algoritmo e de programa

2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 26