Introdução à Programação: uma Abordagem Funcional PD I – Engenharia Elétrica Prof.ª Claudia Boeres 2008/2.

Slides:



Advertisements
Apresentações semelhantes
Engenharia de Computação
Advertisements

A Informática.
Introdução a Algoritmos
Material elaborado pela professora Alzennyr Cléa da UFRPE / DFM
INTRODUÇÃO A INFORMÁTICA
Aplicativos de Informática
Introdução à Ciência da Computação Linguagens de Programação.
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 32 Departamento de Informática Centro.
Linguagem de Montagem Visão geral.
Testando o sistema Teste funcional: o sistema integrado realiza as funções especificadas nos requisitos? Teste de desempenho: os requisitos não-funcionais.
Engenharia de Software
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
Adélia Barros Requisitos Adélia Barros
INTRODUÇÃO À PROGRAMAÇÃO
Processo Desenvolvimento de Software Tradicional
Esquema básico do hardware
Linguagens de Programação
INTRODUÇÃO AO PROCESSAMENTO DE DADOS
Modelos de Processos de Software
Informática para concursos
Introdução a Programação
Professor Fernando Luís

Lógica de Programação UNIDADE 1 – Introdução a) Computador
Tecnologias Especificas Informática
PROGRAMAÇÃO I UNIDADE 1.
Prof.Alfredo Parteli Gomes
Informática Teórica Engenharia da Computação
Programação Avançada Prof. Natalia Castro Fernandes
Introdução a Computação e Cálculo Numérico
Análise e Projeto de Sistemas
INTELIGÊNCIA ARTIFICIAL
PCI- Introdução à Computação
Laboratório I Mateus Raeder Material baseado nos originais da
História dos computadores e da programação
Introdução e Fundamentos Engenharia de Requisitos
Sistemas Especialistas
Processamento de dados na UCP e memória UCP
O Processo de desenvolvimento de software
Requisitos de Software
Fundamentos de Arquitetura da Computação
Projeto de Linguagens de Programação
Banco de Dados Aplicado ao Desenvolvimento de Software
ANÁLISE ESTRUTURADA DE SISTEMAS
Introdução à INFORMÁTICA
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br.
Conceitos Básicos de Informática
METODOLOGIA, MÉTODOS E FERRAMENTAS
Laboratório de Programação
Métodos Formais.
Aula 1 – Profª Danielle Costa
Introdução à Informática
Requisitos de Software
(Sistema de Processamento de Dados)
Conceito de TI – Tecnologia da Informação
Engenharia de Software
Algoritmos e Programação MC102
Métodos Formais Juan Andrés Mussini.
Algoritmos e Programação I
SISTEMAS DE INFORMAÇÃO
SISTEMAS DE INFORMAÇÃO
Programação II Prof.ª Claudia Boeres CT IX - Sala 201 Departamento de Informática Centro Tecnológico Universidade Federal do Espírito.
Engenharia de Software
Introdução à Programação
Aula 02 de Eng. de Requisitos
Engenharia de Requisitos Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Agosto de 2012.
O Modelo GOMS Fornece um modelo de Engenharia para a performance humana, capaz de produzir predições a priori ou em um estágio anterior ao desenvolvimento.
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
PROGRAMAÇÃO DE COMPUTADORES Engenharia Unificado Prof. Leonardo Bacelar Lima Santos Departamento de Matemática
Aula 01 Conhecendo o Computador Prof. Filipe Mutz.
Transcrição da apresentação:

Introdução à Programação: uma Abordagem Funcional PD I – Engenharia Elétrica Prof.ª Claudia Boeres 2008/2

Conceitos Básicos construção de programas para computadores; solução de problemas x soluções prontas devem satisfazer requisitos de qualidade construção de programas: através da descrição de funções

Computadores máquina de processar dados numéricos ou simbólicos hardware + software é capaz de interpretar dados, produzir novos resultados, aceitar novos conceitos para interpretação de novas situações.

Máquina de Von Neumann

Memória memória RAM (Random Acess Memory) memória ROM (Read Only Memory) memória auxiliar ou externa (cd, usb, disco rígido,...)

Representação/armazenamento da informação BIT:menor unidade de informação (0 ou 1) Medidas: 1 byte : 8 bits 1 Kbyte: 1024 bytes 1 Mbyte: 1024 Kbytes 1 Gbyte: 1024 Mbytes

Exemplos de utilização tradução e edição de textos reconhecimento de imagens gerenciamento de bancos roteamento de mensagens em redes de computadores etc.

O que é programar? identificar, organizar e codificar o conhecimento para a descrição de um conceito para o computador.

O que é necessário para programar? compreender o problema a ser resolvido; planejar uma solução; descrever a solução por meio de uma linguagem de programação; testar o programa com o objetivo de verificar se ele resolve o problema.

Linguagem de Programação formalismo: padrões segundo os quais um agente possa interpretar e/ou descrever informação formalismo = sintaxe + semântica

Por que usar linguagem de programação? não é possível ainda usar linguagem natural para programar no computador; a linguagem de máquina é difícil de ser compreendida; são mais próximas da linguagem natural, podendo-se focar no problema e não nas dificuldades de entendimento da linguagem; tradutores.

Propriedades de um programa correção: o programa deve descrever corretamente o conhecimento segundo a intenção desejada; desempenho: o programa deve usar de forma adequada os recursos e o tempo da máquina considerada.

Paradigmas de Linguagem de Programação uma forma específica de se pensar em programação procedural, funcional e o lógico

Programação Funcional podemos entender o computador como uma máquina funcional, capaz de: avaliar expressões escritas segundo regras sintáticas bem definidas; aceitar a definição de novas funções e considerá-las na avaliação de expressões

Máquina Funcional lê expressão avalia exibe resultado

Exemplo usuário: 4 * 3 – 2 máquina funcional: 10 usuário: f máquina funcional: definição de f não conhecida usuário: carrega arquivo com funções máquina funcional: ok usuário: f máquina funcional: 13 f x = x + 1 Arquivo texto

Funções associação entre elementos de dois conjuntos A e B tal que o conjunto de partida A seja igual ao domínio da função; em outras palavras: seja F uma função de A em B. Então F representa o conjunto de pares ordenados (x,y) tais que para todo x A, existe y B, tal que (x, y) F.

Funções Seja f uma função de A em B. Então: f é uma função total se Domínio (f) = A f é uma função parcial se Domínio (f) A

Exemplos a) A = {a, b, c}, B = {1, 2, 3} f: A B tq f = {(a,1), (b,1), (c,3)} b) A = {1, 2, 3}, B = {a, e, i, o, u} f: A B tq f = {(1,a), (2,e), (2,i), (3,o)} c) A = {a, b, c}, B = {1, 2, 3} f: A B tq f = {(a,1), (b,1)}

Descrições Funcionais extensional: todos os elementos são explicitados f = {(a,1), (b,2), (c,3)} intencional: os elementos são descritos através de um critério de pertinência f = {(x,y) | x e y = 2x}

Exemplos a) f: tq f (x) = 1/x b) g: tq g(y) = y – 1 c) f: tq f (x) = x 2 - 1

Por que aprender programação através do paradigma funcional? este é o momento inicial, propício para estimular a busca de problemas e apresentação dos fundamentos; o paradigma procedural requer o bom entendimento do funcionamento de um computador (máquina de Von Neumann);

Por que aprender programação através do paradigma funcional? o paradigma lógico: requer conhecimento de lógica matemática; o paradigma funcional: requer o conhecimento de funções; a ineficiência de linguagens funcionais tem se reduzido em relação a linguagens procedurais; descrições funcionais podem servir como especificações do programa (correção), já que descrevem o que fazer ao invés de como fazer.

Exercícios 1. Conceitue programação de computadores. 2. Quais os principais paradigmas de programação e o que os diferenciam. 3. Faça uma descrição intencional da função: F = {1,3,5,7,...}. 4. Faça uma listagem de outros exemplos de programas de computador que são usados hoje em diferentes áreas do conhecimento e por diferentes profissionais. 5. Apresente exemplo de outras linguagens técnicas usadas pelo ser humano para descrever conhecimento. 6. Os conceitos de correção e de desempenho, se aplicam a qualquer artefato. Escolha 3 artefatos quaisquer e discuta os dois conceitos.