Informática I. Aula Aula 20-5/11/2007 1

Documentos relacionados
Informática I. Aula 14. Aula 14-10/10/2007 1

Aula 06 - Máquina Multinível e Von Neumann

FUNDAMENTOS DE REDES DE COMPUTADORES AULA 2: MODELO OSI. Professor: LUIZ LEÃO

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02

Informática I. Aula 2. Ementa

Organização de Computadores I

1. Conceitos Básicos de Computação

Informática I. Aula 2. Aula 2-04/09/2006 1

Introdução à Programação Aula 01. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Capítulo 2 Livro do Mário Monteiro Componentes Representação das informações. Medidas de desempenho


AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

SISTEMAS DISTRIBUÍDOS

Sistemas Operacionais

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Linguagem de Máquina

a) Computador b) Estrutura do sistema i. Hardware ii.software c) Linguagens de Programação i. Paradigmas e Programação 1.

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Informática I. Aula Aula 13-08/10/2007 1

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Programação de Computadores

Computação na Biologia Molecular e Bionanotecnologia: Computação Biológica

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Prof. Luiz A. Nascimento

Informática I. Aula 1. Objetivo da disciplina

MC-102 Aula 01. Instituto de Computação Unicamp

Introdução à Informática

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

AULA 01: APRESENTAÇÃO

Sistema Computacional

1- Confiabilidade ( 2 ) Proteção contra perdas e estragos. 2- Integridade ( 3 ) Proteção contra interferência de cortes de funcionamento

INTRODUÇÃO AOS SISTEMAS LÓGICOS INTRODUÇÃO

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 1. Introdução

Introdução à Computação

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 02: INTRODUÇÃO

História da Computação

Sistemas Operacionais (SO)

Informática I. Aula Aula 22-12/11/2007 1

Curso: Redes de Computadores

1.Introdução capaz de executar uma sequência de instruções definidas pelo homem gerar um determinado resultado

Projeto Lógico de Computadores. Profa. MSc. Carolina Melo Santana

Linguagens de Programação

Conceitos de Sistemas Distribuídos

Introdução à Informática. Aula 1

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Organização e Arquitetura de Computadores. Hugo Barros

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MULTI PLAYER. Marcelo Henrique dos Santos

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Figura 4.2: Matriz Curricular

Introdução à Computação

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register

Aula 3 Máquina Multinível

Aula 1: Apresentação do Curso

Computadores e Programação (DCC/UFRJ)

Introdução aos Sistemas Operacionais

LIMITES COMPUTACIONAIS E O FUTURO. Prof. André Vignatti DINF - UFPR

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Introdução Computador Hardware Histórico e Evolução Linguagem de Programação Princípios Básicos

INTRODUÇÃO. Prof. Msc. Luis Filipe Alves Pereira 2015

Hardware. Objetivos do Capítulo

HISTÓRIA DO COMPUTADOR

Informática Aplicada. Introdução

4) Defina o que vem a ser um algoritmo, e porque, o mesmo depende do processo.

Organização e Arquitetura de Computadores I

Sistemas Distribuídos

M3D4 - Certificados Digitais Aula 2 Certificado Digital e suas aplicações

SI06 DIMENSÃO TECNOLÓGICA I

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

FACULDADE PITÁGORAS PRONATEC

Aula 1: Apresentação do Curso

Informática I. Aula Aula 11-01/10/2007 1

Marcos Castilho. DInf/UFPR. 16 de maio de 2019

Informática I. Aula Aula 18-19/06/06 1

Programação Concorrente

CRÉDITOS DO CURSO. Carga Horária Créditos IN1030 Seminários 30 2

Fundamentos da Informática Aula 01 - Computadores: Ferramentas para a era da informação Exercícios - RESPOSTAS Professor: Danilo Giacobo

Aula 1: A Evolução dos Sistemas Computacionais

Características de Sistemas Distribuídos

GFM015 Introdução à Computação. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Características de Sistemas Distribuídos

Teoria da Computação. Máquinas Universais Máquina de Turing

Informática I. Aula /09/2006 1

Introdução à Programação uma Abordagem Funcional

Introdução à Informática

Introdução à Computação MAC0110

Teoria da Computação. Máquinas de Turing: variações

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira

Aula 1: Introdução aos Sistemas Operacionais. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

O uso consciente da tecnologia para o gerenciamento. Editora Saraiva Emerson de Oliveira Batista

Linguagens Formais e Autômatos. Tiago Alves de Oliveira

Introdução à Computação MAC0110

Transcrição:

Informática I Aula 20 http://www.ic.uff.br/~bianca/informatica1/ Aula 20-5/11/2007 1

Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript e páginas dinâmicas Números e expressões em Javascript Formulários em HTML (Programação orientada a Eventos) Histórico dos Computadores Abstração e Definição de Funções Algoritmos e linguagens de programação Ciência da computação como disciplina Execução condicional Representação de dados Computação e sociedade Aula 20-5/11/2007 2

Introdução Ciências tradicionais como física, biologia e química existem há centenas ou milhares de anos. A Ciência da Computação é uma área de estudo muito mais recente (anos 70 ou 80). A ciência da computação abrange todos os aspectos da computação. Desde o projeto e a análise de algoritmos, até o projeto de computadores para executar esses algoritmos. Também lida com questões mais teóricas como as capacidades e limitações dos algoritmos e modelos computacionais. Aula 20-5/11/2007 3

Uma ciência do artificial Ciências naturais e ciências sociais lidam com fenômenos complexos que ocorrem naturalmente. Leis que definem como a matéria se comporta, como elementos químicos reagem, como as pessoas interagem. Já os sistemas que a ciência da computação investiga são artificiais. Programas, computadores e modelos computacionais são construídos por pessoas. Aula 20-5/11/2007 4

Áreas de estudo relacionadas Engenharia de computação aplica princípios de ciência da computação e engenharia para desenvolver novas tecnologias de computação. Ciência da informação se concentra no uso efetivo de tecnologias de computação para apoiar empresas e governos. A divisão entre essas disciplinas nem sempre é clara. Aula 20-5/11/2007 5

Temas em Ciência da Computação componentes físicos dos computadores Ciência da Computação programas que executam nos computadores Teoria capacidades e limitações dos computadores Aula 20-5/11/2007 6

Hardware Como vimos, o termo hardware se refere aos componentes físicos do computador. Exemplos de projetos de pesquisa e desenvolvimento na área de hardware. Projeto de circuitos para conseguir colocar mais transistores nos chips (circuitos integrados). Estudar diferentes maneiras de se interligar componentes para aumentar a velocidade de processamento. Computação paralela: projetar computadores com mais de uma CPU. Aula 20-5/11/2007 7

Software Como vimos, software se refere aos programas que executam no hardware. A maioria das pessoas que trabalham com computação no mercado trabalham com projeto, desenvolvimento, teste e manutenção de software. Programadores, analistas de sistema e engenheiros de software. Exemplos de projetos de pesquisa e desenvolvimento na área de software: Criação e análise de algoritmos Desenvolver e extender linguagens de programação Aula 20-5/11/2007 8

Teoria A teoria da computação é relacionada com a matemática e a lógica. Estuda modelos de computação e tenta entender as capacidades dos algoritmos e computadores. Algumas das teorias principais da computação foram desenvolvidas antes do desenvolvimento dos computadores. Por exemplo, em 1930 Alan Turing projetou uma máquina abstrata conhecidad como máquina de Turing. Aula 20-5/11/2007 9

A máquina de Turing A máquina de Turing é uma unidade de processamento simples que lê e escreve dados em uma fita potencialmente infinita. A fita é dividida em células e serve como a memória da máquina. O processador pode: Ler dados de uma célula Escrever dados para uma célula Mover para direita ou para esquerda Reconhecer um certo número finito de estados Aula 20-5/11/2007 10

Exemplo: Máquina de Turing Máquina que escreve Y se o número de letras a na fita é par e escreve N se o número de letras a na fita é ímpar. Aula 20-5/11/2007 11

A máquina de Turing (cont.) Apesar da máquina de Turing parecer simples, pode-se provar que elas são equivalentes aos computadores atuais. Qualquer computação que pode ser executada por um computador atual também poderia ser executada por uma máquina de Turing. Claro que o programa da máquina de Turing provavelmente seria mais complexo e envolveria mais passos. A vantagem de um modelo simples é que ele pode ser mais facilmente estudado. Turing usou esse modelo pra provar que certos problemas não podem ser resolvidos usando algoritmos ou qualquer modelo computacional. Ex.: Problema da Parada Aula 20-5/11/2007 12

Problema da Parada Problema da Parada: determinar se um programa qualquer vai terminar ou vai entrar em loop infinito. Loops infinitos são introduzidos por repetições condicionais (while) cujas condições nunca são satisfeitas. Turing provou matematicamente em 1930 que é impossível escrever um programa que faça isso. Aula 20-5/11/2007 13

Sub-áreas da Ciência da Computação Algoritmos e Estruturas de Dados Arquitetura de Computadores Sistemas Operacionais e Redes Engenharia de Software Inteligência Artificial e Robótica Linguagens de Programação Bancos de Dados Computação Gráfica Interação Homem-Máquina Ciência Computacional Bioinformática Aula 20-5/11/2007 14

Algoritmos e Estruturas de Dados Desenvolvimento, análise e implementação de algoritmos. Uma área em que o desenvolvimento de novos algoritmos teve grande impacto foi a criptografia. Criptografia é o estudo das técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível. A menos que seja conhecida uma "chave", o que a torna difícil de ser lida por alguém não autorizado. Desde 100 A.C. foram desenvolvidos algoritmos de criptografia Exemplo: substituir cada letra pela letra que vem três posições depois no alfabeto. Neste caso a chave é o conhecimento de que deve-se substituir pela letra três posições antes. Aula 20-5/11/2007 15

Criptografia de Chave Privada O algoritmo DES (Digital Encryption Standard) usa uma chave privada de 56 bits, o que torna praticamente impossível decifrar a mensagem sem saber a chave. Aula 20-5/11/2007 16

Criptografia de Chave Pública A criptografia de chave privada requer que o remetente e o destinatário se comuniquem para trocar a chave. Em 1976, Diffie e Hellman propuseram uma nova classe de algoritmos, chamados de criptografia de chave pública. Cada participante recebe uma chave pública e uma chave privada. É possível mandar uma mensagem segura sem ter que primeiro trocar uma chave. É possível também verificar a identidade do remetente. Aula 20-5/11/2007 17

Criptografia de Chave Pública O algoritmo RSA inventado em 1977 por Rivest, Shamir e Adleman no MIT foi o primeiro algoritmo de chave pública implementado na prática. Serviu de base para permitir comunicações seguras na Internet. Aula 20-5/11/2007 18

Sub-áreas da Ciência da Computação Algoritmos e Estruturas de Dados Arquitetura de Computadores Sistemas Operacionais e Redes Engenharia de Software Inteligência Artificial e Robótica Linguagens de Programação Bancos de Dados Computação Gráfica Interação Homem-Máquina Ciência Computacional Bioinformática Aula 20-5/11/2007 19

Arquitetura de Computadores A sub-área de arquitetura trata de métodos para organizar componentes de hardware em sistemas eficientes e confiáveis. A maioria dos sistemas segue a arquitetura de Von Neumann, mas novas tecnologias estão sempre sendo introduzidas dentro desse paradigma. Exemplo: relays válvulas a vácuo transistores circuitos integrados Mais recentemente, arquiteturas que desviam do modelo de Von Neumann estão sendo desenvolvidas e utilizadas em certas aplicações. Exemplo: Computação Paralela Aula 20-5/11/2007 20

Computação Paralela Computação paralela, como o nome sugere, emprega múltiplos processadores trabalhando em paralelo. Idealmente, dobrando-se o número de processadores, um programa poderia ser executado em metade do tempo. Porém passos adicionais são necessários para dividir o trabalho e nem todas as tarefas podem ser paralelizadas. Por exemplo, se um passo depende do resultado de outro. Exemplos de aplicação de computação paralela: Servidores web: tem que processar múltiplos pedidos independentes simultaneamente. Deep Blue: o computador que venceu Kasparov em 1997 utilizava 32 processadores de propósito geral e 512 processadores especializados em xadrez que trabalham em paralelo para avaliar jogadas. Aula 20-5/11/2007 21

Sub-áreas da Ciência da Computação Algoritmos e Estruturas de Dados Arquitetura de Computadores Sistemas Operacionais e Redes Engenharia de Software Inteligência Artificial e Robótica Linguagens de Programação Bancos de Dados Computação Gráfica Interação Homem-Máquina Ciência Computacional Bioinformática Aula 20-5/11/2007 22

Sistemas Operacionais e Redes Esta sub-área examina mecanismos para controlar o hardware e o software de sistemas de computadores. Na década de 60, sistemas operacionais com compartilhamento de tempo foram introduzidos. Permitiam que múltiplos usuários utilizassem o mesmo computador (mainframe). O processador fazia uma rotação entre os programas de cada usuário, muito rapidamente de tal forma que não se percebesse. Na década de 70, o conceito de compartilhamento de tempo evolui para o conceito de multi-tarefa. O mesmo usuário poderia ter vários programas em execução. Aula 20-5/11/2007 23

Sistemas Operacionais e Redes Computadores hoje em dia normalmente são conectados a redes, permitindo que eles se comuniquem com outros e acessem recursos. As redes de computadores são classificadas em: WAN (Wide Area Network): conecta computadores a longa distância. Deve cuidar de roteamento e ser resistente a falhas. O exemplo mais conhecido é a Internet LAN (Local Area Network): conecta computadores a curta distância, na mesma sala ou prédio. São mais simples e rápidas que as WANs. A tecnologia mais comum para LAN é a Ethernet. Velocidades de 10M a 1000M bits por segundo. Aula 20-5/11/2007 24

Ethernet Aula 20-5/11/2007 25

Sub-áreas da Ciência da Computação Algoritmos e Estruturas de Dados Arquitetura de Computadores Sistemas Operacionais e Redes Engenharia de Software Inteligência Artificial e Robótica Linguagens de Programação Bancos de Dados Computação Gráfica Interação Homem-Máquina Ciência Computacional Bioinformática Aula 20-5/11/2007 26

Engenharia de Software Engenharia de software é a sub-área que lida com a criação efetiva de sistemas de software. O desenvolvimento de sistemas de software grandes e confiáveis é um desafio tanto em termos técnicos quanto de gerenciamento. Projetos grandes requerem muitas linhas de código e equipes grandes de programadores e analistas. Por exemplo, o Windows XP contém mais de 45 milhões de linhas de código. Em projetos com equipes grandes é necessário fazer um bom planejamento e dividir o sistema em componentes que possam ser implementados e testados independentemente. Aula 20-5/11/2007 27

Engenharia de Software Muitas ferramentas foram criadas para facilitar o projeto e a implementação de softwares grandes. A UML (Unified Modelling Language) é uma linguagem que serve para definir o comportamento de componentes de software. CVS (Concurrent Versions System) é um sistema que permite que múltiplos programadores compartilhem arquivos e integrem modificações. Linguagens Orientadas a Objeto como Java e C++ facilitam o re-uso. Aula 20-5/11/2007 28

Etapas do Processo de Desenvolvimento de Software 1. Análise e Especificação de Requerimentos 2. Projeto 3. Implementação 4. Teste 5. Operação e Manutenção Aula 20-5/11/2007 29

Sub-áreas da Ciência da Computação Algoritmos e Estruturas de Dados Arquitetura de Computadores Sistemas Operacionais e Redes Engenharia de Software Inteligência Artificial e Robótica Linguagens de Programação Bancos de Dados Computação Gráfica Interação Homem-Máquina Ciência Computacional Bioinformática Aula 20-5/11/2007 30

Inteligência Artificial e Robótica A sub-área de Inteligência Artificial tem como objetivo projetar computadores que exibam inteligência no nível dos humanos ou superior. Em 1930, Alan Turing criou o chamado Teste de Turing para medir o grau de inteligência de um sistema. Um juiz conversaria com um humano e com uma máquina através de terminais de computadores. Se ele não conseguisse distinguir um do outro, a máquina seria inteligente. Turing previu que tal máquina existiria até o final do século XX. Ainda não existe, mas houve avanço. Reconhecimento de voz, visão computacional, robótica, aprendizado de máquina. Aula 20-5/11/2007 31

Inteligência Artificial e Robótica Exemplo: aspirador inteligente Tem sensores para ver os obstáculos e se mover pela casa. Aula 20-5/11/2007 32