Computação I - Python Aula 1 - Teórica: Introdução

Documentos relacionados
1/ 36. Computação 1 - Python Aula 1 - Teórica: Introdução

Introdução à Computação

Fundamentos de Programação

Introdução ao Python. Programa Computacional

Engenharia de resolução de problemas

PROGRAMAÇÃO DE COMPUTADORES I BCC Aula Prática 15

Programação de Computadores I Introdução PROFESSORA CINTIA CAETANO

Programação de Computadores I

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012

Algoritmos e Programação

Programação de Computadores

Algoritmos e Programação

Introdução a Programação

Fábio Rodrigues / Israel Lucania

Programação de Computadores

Introdução à Computação

Algoritmos e Linguagem de Programação I

Linguagem de Programação I. Aula 02 Algoritmos

DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos. Apresentação. Computação e Programação (CP) 2013/2014.

Fundamentos de Programação 1

Processamento da Informação

Programação de Computadores

Arquitetura e Organização de computadores

Introdução a Programação de Jogos

Laboratório de Programação 1 Algoritmos e a Lógica de Programação

Linguagens de Programação

Introdução à Programação

PMR Computação para Mecatrônica

Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos. Prof. Dr. Bruno Moreno

Introdução à Computação: Máquinas Multiníveis

Introdução à Programação de Computadores Fabricação Mecânica

Fundamentos de Sistemas Operacionais

Programação Python. Nesta aula... 1 Programação. 2 Python. Operadores e Operandos Variáveis, Expressões, Instruções Funções Ciclos Comentários

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

INSTALANDO PYTHON, PYCHARM E PYGAME

Busca Competitiva. Inteligência Artificial. Até aqui... Jogos vs. busca. Decisões ótimas em jogos 9/22/2010

(é fácil!)

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

Computação II - Python Aula 1 - Apresentação do curso e revisão de programação modular

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula VI Busca Competitiva

Aula 2 - Programação de Computadores - CI208 1/21

Linguagens de Programação Aula 3

Figura: Capa do Livro Hamburger, H., Richards, D. Logic and Language Models for Computer Science, Prentice Hall.

15/03/2018. Professor Ariel da Silva Dias Algoritmo e Contagem de Instruções. Prof. Ariel da Silva Dias -

Exercícios: Vetores e Matrizes

ORGANIZAÇÃO DE COMPUTADORES

Introdução a Computação

Programação Estruturada e OO Aula 1.2 Introdução a Paradigmas de Programação. Prof. Bruno Moreno

Manual de instruções do

XBT246 Programação de Computadores II. Prof. Franklin Marquezino Universidade Federal do Rio de Janeiro

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

INFORMÁTICA APLICADA AULA 01 LINGUAGEM DE PROGRAMAÇÃO C++

Sistema Computacional

Campeonato de Gamão. 1. Regras. 2. Servidor

A pesquisa no ensino de computação. Práticas de ensino de algoritmos (Hazzan, Cap. 4) Péricles Miranda

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

Análise e Complexidade de Algoritmos

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Lógica para programação II Seção 1 - Histórico e Introdução Primeiros Programas

PROGRAMAÇÃO ORIENTADA A OBJETOS I -CONCEITOS PRELIMINARES. Prof. Angelo Augusto Frozza, M.Sc.

Informática Aplicada à Engenharia Florestal INTRODUÇÃO

INTRODUÇÃO A PROGRAMAÇÃO

Algoritmos. Prof. Jonatas Bastos Site:

5ª Lista de Exercícios de Programação I

Algoritmos e Programação

Introdução ao Conceito de Algoritmo e Programação Estruturada

Paradigmas de Linguagem de Programação. Aspectos Básicos

Resolução de Problemas com Computador. Resolução de Problemas com Computador. Resolução de Problemas com Computador

Python 3.x Estrutura de Repetição while

Introdução a programação Visão geral

Análise e Projeto de Algoritmos P R O F : L O A N A T. N O G U E I R A

Abaixo iremos pormenorizar cada um de seus atributos:

Programação de Computadores

Linguagens de Programação

LAAB: Ludicidade Africana e Afrobrasileira.

1 Introdução e Conceitos básicos

Algoritmos. Introdução à Computação para a Engenharia Ambiental. Prof. Jó Ueyama

Jogos e Brincadeiras II

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

Introdução à Computação: Máquinas Multiníveis

Introdução à linguagem C

Introdução à Computação MAC0110

Computação I - Python

GABARITO Questão a b c d e

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Algoritmos e Programação

Programação para Games I

Algoritmos e Programação

Algoritmos Lógica e Programação Prof. Me. Adelson Felipe Dias Nogueira

Patrícia de Siqueira Ramos. UNIFAL-MG, campus Varginha. 21 de Março de 2018

A CASA DO SIMULADO DESAFIO QUESTÕES MINISSIMULADO 44/360

Programação Básica de Computadores

Computação 1 - Python Aula 4 - Teórica: Variáveis e Atribuição, Strings 1/ 26

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Aula 08 Introdução à Algoritmos. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Aula de hoje. Programação. Comunicação com computadores. Comunicação com computadores. Comunicação com computadores. Comunicação com computadores

Projeto e Análise de Algoritmos. Introdução. Prof. Ademir Constantino Universidade Estadual de Maringá Departamento de Informática

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

Transcrição:

Computação I - Python Aula 1 - Teórica: Introdução João C. P. da Silva Carla A. D. M. Delgado Ana Luisa Duboc Dept. Ciência da Computação - UFRJ http://ladybugcodingschool.com/ Computação I - Python Aula 1 1 / 28

Conhecendo a turma Experiência com programação e uso do computador Quantos já programaram antes? Quais linguagens? Quantos tem computador em casa com acesso a Internet? Qual Sistema Operacional? Quantos são calouros? Quem veio de outro curso? Nível de inglês? http://ladybugcodingschool.com/ Computação I - Python Aula 1 2 / 28

Objetivo da Disciplina Desenvolver as competências necessárias para a construção de programas legíveis e modulares em Python. A programação é uma atividade complexa, que envolve conhecimento, prática e proficiência. Receber bons fundamentos no estágio inicial é essencial para a capacitação de um programador. http://ladybugcodingschool.com/ Computação I - Python Aula 1 3 / 28

Objetivo da Disciplina Desenvolver as competências necessárias para a construção de programas legíveis e modulares em Python. Exemplos de Programas? http://ladybugcodingschool.com/ Computação I - Python Aula 1 4 / 28

Objetivo da Disciplina Desenvolver as competências necessárias para a construção de programas legíveis e modulares em Python. Exemplos de Programas? Explorer, Firefox, Google Chrome Facebook Windows Word, Powerpoint Media Player, itunes SIGA The Sims 4 http://ladybugcodingschool.com/ Computação I - Python Aula 1 4 / 28

Objetivo da Disciplina Exemplos de Programas Explorer, Firefox, Google Chrome Qual a tarefa que o Explorer deve realizar? http://ladybugcodingschool.com/ Computação I - Python Aula 1 5 / 28

Objetivo da Disciplina Qual a tarefa que o Explorer deve realizar? http://ladybugcodingschool.com/ Computação I - Python Aula 1 6 / 28

Objetivo da Disciplina Como o Explorer realiza esta tarefa? http://ladybugcodingschool.com/ Computação I - Python Aula 1 7 / 28

Algoritmo Método efetivo expresso como um conjunto de instruções que devem ser feitas para realizar uma tarefa. Características Finitude: deve sempre terminar após um número finito de passos. Bem-definido: cada passo de um algoritmo deve ser precisamente definido (sem ambiguidades). Entradas: deve ter zero ou mais entradas (informações que são fornecidas antes do algoritmo iniciar). Saídas: deve ter uma ou mais saídas (resultado final do algoritmo). Efetividade: todas as operações devem ser suficientemente básicas de modo que possam ser executadas com precisão em um tempo finito por uma pessoa. http://ladybugcodingschool.com/ Computação I - Python Aula 1 8 / 28

Algoritmo - Características Finitude - (para um problema genérico) Finitude - (para um problema específico): Dado um endereço na internet, exibir o conteúdo endereçado. http://ladybugcodingschool.com/ Computação I - Python Aula 1 9 / 28

Exemplo - Jogo da Velha Faça um algoritmo para jogar o jogo da velha. http://ladybugcodingschool.com/ Computação I - Python Aula 1 10 / 28

Exemplo - Jogo da Velha Faça um algoritmo para jogar o jogo da velha. Representação posição(n): Retorna o que tem na posição n. jogue(n) : Jogar na posição n. faça2 : Retorna 5 se a posição 5 estiver vazia. Caso contrário, retorna qualquer uma das seguintes posições que esteja vazia: 2,4,6 ou 8. ganha(p) : Retorna (verdade, posição) se o jogador p puder vencer jogando em posição. http://ladybugcodingschool.com/ Computação I - Python Aula 1 10 / 28

Exemplo - Jogo da Velha Jogada = 1: jogue(1) Jogada = 2: Se posição(5) = vazia então jogue(5) c.c. jogue(1) Jogada = 3: Se posição(9) = vazia então jogue(9) c.c. jogue(3) Jogada = 4: Se ganha(x) então jogue(ganha(x)) {bloqueia vitória adv} c.c. jogue(faça2) Jogada = 5: Se ganha(x) então jogue(ganha(x)) {vença} c.c. Se ganha(o) então jogue(ganha(o)) c.c. Se posição(7) = vazia então jogue(7) c.c. jogue(3) http://ladybugcodingschool.com/ Computação I - Python Aula 1 11 / 28

Exemplo - Jogo da Velha Jogada = 6: Se ganha(o) então jogue(ganha(o)) c.c. Se ganha(x) então jogue(ganha(x)) c.c. jogue(faça2). Jogada = 7 ou 9: Se ganha(x) então jogue(ganha(x)) c.c. Se ganha(o) então jogue(ganha(o)) c.c. jogue em qualquer posição vazia. Jogada = 8: Se ganha(o) então jogue(ganha(o)) c.c. Se ganha(x) então jogue(ganha(x)) c.c. jogue em qualquer posição vazia. http://ladybugcodingschool.com/ Computação I - Python Aula 1 12 / 28

Exemplo - Jogo da Velha Podemos fazer um algoritmo semelhante ao anterior para jogar xadrez? Você consegue pensar em um outro algoritmo para jogar o jogo da velha? Este novo algoritmo poderia ser usado para jogar xadrez? http://ladybugcodingschool.com/ Computação I - Python Aula 1 13 / 28

Exemplo - Jogo da Velha Para fazer uma jogada: Observe as configurações do tabuleiro resultantes de cada uma das possíveis jogadas que podem ser executadas; Decida pela melhor jogada. Para escolher qual a melhor jogada dentre um conjunto de configurações do tabuleiro, faça: Verifique se é uma posição vencedora. Escolha esta. Se não, considere todas as jogadas que o oponente pode fazer a seguir, atribuindo uma nota a cada um dos tabuleiros resultantes. Veja qual o pior para nós (menor nota). Suponha que o opositor escolherá tal jogada. Seja qual for a nota desta pior jogada, passe para cima como a nota da jogada que estamos considerando. A melhor jogada é aquela com a nota mais alta. http://ladybugcodingschool.com/ Computação I - Python Aula 1 14 / 28

Exemplo - Jogo da Velha Avaliação: Como atribuir uma nota a uma jogada f(n) = (# de fileiras abertas para MAX caso contrário - # de fileiras abertas para MIN) Considere : X = MAX e O = MIN f = 6 4 = 2 se n é uma posição de vitória para MAX se n é uma posição de vitória para MIN http://ladybugcodingschool.com/ Computação I - Python Aula 1 15 / 28

Exemplo - Jogo da Velha http://ladybugcodingschool.com/ Computação I - Python Aula 1 16 / 28

Exemplo - Jogo da Velha http://ladybugcodingschool.com/ Computação I - Python Aula 1 17 / 28

Programa de Computador Conjunto de instruções que descrevem como uma tarefa deve ser realizada por um computador. Ou seja, o computador deve ser capaz de entender as instruções. O computador entende linguagem de máquina: 01011100110. Como traduzir um algoritmo para código de máquina? http://ladybugcodingschool.com/ Computação I - Python Aula 1 18 / 28

Linguagens e Paradigmas de Programação 1 Programação Imperativa: define sequências de comandos que um computador deve seguir para realizar uma tarefa. 2 Programação Declarativa: expressa o que deve ser realizado sem dizer como realizar. 3 Programação Orientada a Objeto 4 Programação Funcional http://ladybugcodingschool.com/ Computação I - Python Aula 1 19 / 28

Linguagens e Paradigmas de Programação 1 Programação Imperativa: define sequências de comandos que um computador deve seguir para realizar uma tarefa. 2 Programação Declarativa: expressa o que deve ser realizado sem dizer como realizar. 3 Programação Orientada a Objeto 4 Programação Funcional http://ladybugcodingschool.com/ Computação I - Python Aula 1 20 / 28

Compilador http://ladybugcodingschool.com/ Computação I - Python Aula 1 21 / 28

Interpretador http://ladybugcodingschool.com/ Computação I - Python Aula 1 22 / 28

Por que Python? Linguagem moderna, robusta, bem projetada Open source e gratuita Simples o suficiente para um curso introdutório Muitos recursos Orientação a Objetos Escalável (módulos, classes, controle de exceções) Biblioteca embutida extensa e grande número de módulos fornecidos por terceiros Grande variedade de aplicações Linguagem interpretada (script) Multi-plataforma Muito usada no meio científico Comunidade bastante grande http://ladybugcodingschool.com/ Computação I - Python Aula 1 23 / 28

Quem usa Python? http://ladybugcodingschool.com/ Computação I - Python Aula 1 24 / 28

Instalando o interpretador Python 3 https://www.python.org/downloads/windows/ http://ladybugcodingschool.com/ Computação I - Python Aula 1 25 / 28

Python na Nuvem Ferramenta didática: Pythontutor - http://pythontutor.com/ http://ladybugcodingschool.com/ Computação I - Python Aula 1 26 / 28

Material e Dicas... http://www.dcc.ufrj.br/~pythonufrj http://ladybugcodingschool.com/ Computação I - Python Aula 1 27 / 28

Computação I - Python Aula 1 - Teórica: Introdução João C. P. da Silva Carla A. D. M. Delgado Ana Luisa Duboc Dept. Ciência da Computação - UFRJ http://ladybugcodingschool.com/ Computação I - Python Aula 1 28 / 28