Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação de Computadores I XBT236 Prof.a Camila Magalhães e-mail: camila.mag@gmail.com camila@xerem.ufrj.br Universidade Federal do Rio de Janeiro Polo Xerém Apresentações • Quem são vocês?? • Experiência em programação?? • Interesses?? Roteiro da Aula • Motivação (Computação + Biologia) • Objetivos da Disciplina • Informações sobre a Disciplina • Conceitos Introdutórios Computação + Biologia • Bioinformática e Biologia Computacional utilizam fortemente os programas de computador. • Exemplos: • Alinhamento de Sequências de Proteínas e de DNA • Simulação Computacional de Biomoléculas (Desenvolvimento de fármacos) Simulação Computacional de Biomoléculas Docking Receptor-Ligante Principais Objetivos (desafios): 1. Predição do modo de ligação 2. Predição da Afinidade de ligação Qual é o melhor? Diferenciar Ativos x Inativos Objetivos da Disciplina • Solucionar Problemas • Programar em Python (Linguagem de Programação) • Desenvolver programas de computador Motivações... • Prática do pensamento crítico e lógico • Desenvolvimento da capacidade de resolver problemas • Usuário de programas mais habilidoso • Diferencial no mercado de trabalho • Muito valorizado na área acadêmica Por que Python? • Linguagem simples e poderosa com inúmeros recursos (estruturas de dados avançadas, orientação a objetos, bibliotecas etc.) • Atualmente a mais popular linguagem introdutória de cursos de programação nas universidades top dos EUA • Fácil partir para outras linguagens, se necessário Quem usa Python? • Bibliografia Básica: • MENEZES, N., "Introdução à programação com Python", 2010. • FERTIG, M., MEDINA, G. “Algoritmos e Programação: teoria e prática” • Bibliografia Complementar: • BARRY P., GRIFFITHS D., “Use a Cabeça! Programação” Sobre a Disciplina: • Material de Apoio: • Slides das Aulas • Listas de exercícios Sobre a Disciplina: Sobre a Disciplina: • Aulas: 2 partes (a princípio) • Parte 1: Teórica • Parte 2: Prática (Exercícios práticos) • Atendimento: (Numpex-Comp) • 4as – 15h (enviar e-mail) • Monitor: • Gabriel Moraes (horário a ser combinado) • Serão apresentados em todas as aulas (x 1000) • Alguns serão feitos em aula e outros em casa (listas) • Não é preciso entregar (a menos que pedido...) • Dúvidas devem ser tiradas durante as aulas ou no horário de atendimento Observações: Exercícios Não basta ler, assistir, ou mesmo perguntar. Será preciso fazer! Fazer e errar, fazer de novo e errar menos, fazer de novo e errar um pouco menos, fazer de novo e acertar. Praticar, praticar e praticar com exercícios!! Só assim você terá um bom aproveitamento nesta disciplina! Programação é como aprender a nadar... Programa da Disciplina: 1. Introdução a algoritmos. 2. Ambientes de desenvolvimento e programação. Conceito de compiladores e interpretadores. 3. Linguagem de programação: Estrutura de um programa, constantes e variáveis, tipos de dados, comandos de atribuição e de entrada e saída, operadores aritméticos e operadores lógicos; 4. Estruturas de controle de fluxo; 5. Estruturas de repetição; 6. Estruturas de armazenamento (vetores e matrizes); 7. Cadeias de caracteres (strings) 8. Funções; 9. Arquivos. Critérios de Avaliação • Avaliação: 3 Provas (P1, P2 , P3) • P1, P2 (10 pontos) • P3 (7,0 pontos) • N3 = Testes e/ou Trabalhos (3,0 pontos) • Média = (P1 + P2 + (P3+N3))/3 Critérios de Avaliação • Aprovação: Média ≥ 5,0 Sobre a Disciplina: • 2a Chamada • Haverá apenas uma segunda chamada (casos especiais com justificativa comprovada), cobrindo toda a matéria lecionada na disciplina. Cronograma (Provável) Data Assunto 13/03 Apresentação/Introdução 20/03 Algoritmos e Programação. Conceitos de variáveis e operadores. Introdução a Python 27/03 Programação com Python. Estruturas sequenciais e condicionais. 03/04 Estruturas condicionais 10/04 Estruturas de repetição (WHILE) 17/04 Prova 1 – P1 24/04 Estruturas de repetição (FOR) 01/05 FERIADO Cronograma (Provável) Data Assunto 08/05 Estruturas de armazenamento (Listas – vetores) 15/05 Estruturas de armazenamento (Listas – matrizes) 22/05 Cadeias de caracteres (strings) 29/05 Prova 2 – P2 05/06 Funções (definição e parâmetros) 12/06 Funções e Arquivos 19/06 Arquivos 26/06 Prova 3 – P3 03/07 2ª Chamada (Conteúdo: Toda a matéria lecionada. Apenas com justificativa comprovada) 10/07 Vista de prova 2ª Chamada Dicas • Revise o conteúdo e resolva os exercícios imediatamente após as aulas; anote as dúvidas para aula seguinte. • Frequentar as aulas é importante, mas não suficiente. Reserve tempo para praticar!! • Se tiver algum computador disponível para uso, instale o Interpretador Python o mais rápido possível (versão 3)!!! Dica Programação de Computadores • Técnica utilizada por programadores para desenvolver softwares (programas de computador) Programação? Programação de Computadores • Hardware x Software Hardware: Software: – Peças - Programas – Corpo - Alma Programação de Computadores • Programa: Série de ordens ou comandos, que devem ser executados em sequência • Podemos pensar em um computador como um cachorro muito obediente, que executa todos os comandos que você ordena que ele faça... Programação de Computadores • Exemplos de sequências de comandos para o computador: Receba um número digitado no teclado Receba outro número digitado no teclado Some o primeiro número com o segundo Escreva na tela o resultado da soma Programação de Computadores • Exemplos de sequências de comandos para o computador: Leia o valor do Joystick Mova o personagem Se encontrar um obstáculo, faça o personagem saltar Programação de Computadores • Mas para que o computador faça o que você quer (e ele pode fazer (quase) tudo que você mandar), é necessário falar a linguagem dele • Mas qual é a linguagem que o computador fala?? Programação de Computadores “O seu computador foi projetado para armazenar apenas bits – todos os arquivos e pastas e diferentes tipos de dados (como fotografias, letras, músicas e filmes) são ilusões criadas pelos programadores de computador.” * bit = binary digit (dígito binário, 0 ou 1) Programação de Computadores • O computador só entende binário • Linguagem de 0s e 1s = Programação de Computadores • Mas não precisamos nos preocupar com estes detalhes... (pelo menos não agora!) Linguagens de Programação de Alto Nível Programação de Computadores • Mas não precisamos nos preocupar com estes detalhes (pelo menos por enquanto...) Linguagens de Programação de Alto Nível Bem mais próximas da linguagem humana Programação de Computadores • Mas não precisamos nos preocupar com estes detalhes (pelo menos por enquanto...) Linguagens de Programação de Alto Nível Bem mais próximas da linguagemhumana Programador pode se concentrar no que ele quer que o computador faça Programação de Computadores • Mas não precisamos nos preocupar com estes detalhes (pelo menos por enquanto...) Linguagens de Programação de Alto Nível Bem mais próximas da linguagem humana Programador pode se concentrar no que ele quer que o computador faça Um outro programa (compilador) se encarregará de traduzir seu programa para linguagem de máquina (0s e 1s) Programação de Computadores • Então, como a programação funciona?? programa executável Programação pode ser legal?? Pode-se usar programação para muitas coisas... Pode-se usar programação para muitas coisas... Os conceitos utilizados para criar programas, dos mais simples aos mais complicados, são os mesmos! Variáveis, Algoritmos, estruturas condicionais, estruturas de repetição, etc. Aprender uma linguagem de programação é o primeiro passo para desenvolver praticamente qualquer coisa que você imaginar... Vamos começar?? Roteiro da Aula • Motivação • Objetivos da Disciplina • Informações sobre a Disciplina • Conceitos Introdutórios Algoritmo • Sequência finita de passos que leva à execução de uma tarefa • É uma descrição passo a passo de uma metodologia que conduz à resolução de um problema • Um conjunto de instruções que devem ser feitas para realizar uma tarefa. Exemplo de Algoritmo • Trocar um pneu furado: um algoritmo descreve cada instrução a ser seguida para que o objetivo seja alcançado. 1. Verificar qual pneu está furado 2. Posicionar o macaco 3. Afrouxar os parafusos 4. Levantar o carro 5. Pegar o estepe 6. Soltar os parafusos 7. Substituir o pneu furado 8. Recolocar os parafusos 9. Descer o carro 10. Guardar o pneu e o macaco Resolução de Problemas • Exemplo de Problema: • Fazer uma omelete • Qual a sequência de passos necessária para atingir o objetivo? Passos para Fazer uma Omelete 1. Quebrar ovos 2. Bater ovos 3. Adicionar sal 4. Ligar o fogão 5. Adicionar óleo na frigideira 6. Colocar a frigideira no fogo 7. Fritar os ovos batidos 8. Verificar se está pronto 9. Se sim, desligar o fogo 10. Se não, voltar para o passo 8 Observação Importante • Quanto à sequência lógica: • Se executarmos “fritar ovos batidos” antes de “bater ovos”, ou pior, antes de “quebrar ovos”, não iremos cumprir a tarefa “fazer omelete” Problema: Torre de Hanói • Objetivo: Passar todos os discos do pino A para o pino C, usando os pinos B e C como auxiliar, de forma que, um disco maior nunca fique sobre outro que seja menor (em nenhuma situação). Movimentando apenas 1 disco por vez. Algoritmo: Torre de Hanói 1. Mover o Disco Verde de A para C 2. Mover o Disco Azul de A para B 3. Mover o Disco Verde de C para B 4. Mover o Disco Vermelho de A para C 5. Mover o Disco Verde de B para A 6. Mover o Disco Azul de B para C 7. Mover o Disco Verde de A para C http://www.taringa.net/comunidades/webdesign/7850746/Aporte-js-Colga-tu-PC-con-las-torres-de-hanoi.html Algoritmos e Programas de Computador • Algoritmo = método para solucionar um problema • Programa = algoritmo + dados expressos de forma a ser entendido pelo computador • Linguagem com sintaxe e semântica bem definidas • Usada para escrever programas • Mais “técnica” do que linguagens naturais • Menos “técnica” do que a linguagem nativa dos computadores (linguagem de montagem) Exemplos de Linguagens de programação: Python, Pascal, C, Cobol, Fortran, Java, entre outras Linguagem de Programação Algoritmos e Programas • Programas de computador tipicamente processam dados de entrada e produzem dados de saída • Programas de computador tipicamente processam dados de entrada e produzem dados de saída • Exemplos: • Dados de entrada utilizado por um caixa eletrônico de banco?? • Dados de entrada do WhatsApp?? Algoritmos e Programas Analogia com Robô Exemplo http://loucosporrobos.blogspot.com.br/ • O que ele sabe fazer? • Ler (e guardar na memória) • Escrever • Realizar as 4 operações aritméticas básicas • Objetivo: Escrever um algoritmo para que o robô calcule a média aritmé- tica entre 3 números. Robô Exemplo x Computador • O computador funciona de forma similar: • Lê dados de entrada (via teclado ou de um arquivo), que são guardados em variáveis na memória • O computador efetua processamento sobre os dados (na CPU: Central Processing Unit) • Escreve a saída (no monitor ou impressora) • Dados de entrada: os números para calcular a média • Processamento: Operações de soma e divisão • Dados de saída: a média calculada 1. Quantas entradas? 1. Quantas saídas? Especificando... • Instruções: as ações, ou seja, a sequência de passos necessária para resolver o problema O Processo • O computador não faz nada sozinho • Ele precisa que alguém diga para ele quais os passos que precisam ser executados • Ele precisa que ensinemos a ele o ALGORITMO para resolver o problema! • Mas... o computador não entende qualquer instrução • Ele entende apenas um conjunto fixo de instruções Portanto: Exercício 1. Defina com suas próprias palavras: 1. Leitura e entrada de dados 2. Saída de dados 3. Algoritmo 4. Programa 5. Linguagem de Programação
Compartilhar