Introdução a Algoritmos Aula 1

Documentos relacionados
Algoritmos e Programação

Introdução a Programação

Apresentação da Disciplina

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

TECNOLOGIA EM REDES DE COMPUTADORES. computadores. Aula 4

Aula 01 - Apresentação da Disciplina

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

Rio de Janeiro, 15 de fevereiro de 2016.

Computação Básica. Prof. Tiago Alves. Universidade de Brasília Campus Gama

Apresentação da Disciplina

Introdução aos Algoritmos

Backtracking. Pequenos Bispos

Capítulo 2 Introdução à Programação Estrutura de Controle

PORTUGOL/PLUS: UMA FERRAMENTA DE APOIO AO ENSINO DE LÓGICA DE PROGRAMAÇÃO BASEADO NO PORTUGOL

BCC 701 Programação de Computadores I

Aula 2 - Introdução Cleverton Hentz

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

BCC 701 Programação de Computadores I

Fundamentos de Programação

Introdução ao Python. Programa Computacional

Eng. Alimentos PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO CÓDIGO DISCIPLINA PRÉ-REQUISITOS

Prof. Paulo Villa Aula 1

Resolução de Problemas. Hugo Barros

1 Introdução e Conceitos básicos

Plano de Ensino. 1. Dados de Identificação:

PROGRAMA - Disciplinas Lecionadas

Algoritmos e Linguagem de Programação I

Algoritmos. Prof. Jonatas Bastos Site:

Aula 4 Introdução ao C

EMENTA. Estudo dos métodos para resolução de problemas e modelagem da solução por meio de algoritmo. Estruturação, depuração, testes e documentação.

CURSO BÁSICO. Ao selecionar a sua disciplina, aparecerá a página principal contendo as informações e as atividades disponíveis.

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

PROGRAMA - Disciplinas Lecionadas

GFM015 Introdução à Computação. Algoritmos. Ilmério Reis da Silva UFU/FACOM

Aula 02. Algoritmos e Pseudocódigo

INTRODUÇÃO LINGUAGEM C

Introdução a Computação

Noções de Lógica Algoritmos e Lógica de Programação. Reinaldo Gomes

Programação de Computadores I

Universidade Federal de Uberlândia Faculdade de Computação. GMA038 Introdução à Ciência da Computação

Aula 4 Objetivos if/else while

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

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

Semáforo Autor: Alan Parr. Avanço Autor: Dan Troyka, Material Um tabuleiro quadrado 7 por peças brancas e 14 peças negras.

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

PPM CONTEÚDO. Lógica de programação Programação para manufatura Sistemas supervisorios PROGRAMAÇÃO PARA MANUFATURA 05/03/2009

Conceitos Básicos. Fundamentos de Programação de Computadores

INTRODUÇÃO A PROGRAMAÇÃO

01/08/2011. Introdução Lógica Sequencia lógica Instruções Algoritmos Programas. Lógica. Lógica na programação. Instrução.

INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO. ANÁLISE E DESENVOLVIMENTO DE SISTEMAS/PARANGABA PROF. MS. RONNISON REGES VIDAL Ceará, 01 de fevereiro de 2017

Disciplina de Algoritmos e Programação

Algoritmos e Programação - Engenharia da Computação -

PLANO DE CURSO. 3. OBJETIVO GERAL DA DISCIPLINA: Desenvolver no aluno uma metodologia de análise de problemas e formulação de algoritmos.

CURSO DE INFORMÁTICA. Algoritmos. Parte 2. Ricardo José Cabeça de Souza

Aula 1 Introdução e Lógica. Bruno Orlandi

Resolução de Problemas. Resolução de Problemas. Primeiros problemas por computador: prova automática de teoremas e jogos.

PROGRAMAÇÃO I. Introdução

Introdução à Programação

Introdução à Programação. Vanessa Braganholo

Introdução a Programação

UNIDADE 1 CONCEITOS BÁSICOS EM ALGORITMOS

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Ambiente de programação

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

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DE PELOTAS PRÓ-REITORIA DE GRADUAÇÃO PLANO DE ENSINO

AULA 02. Lógica de Programação. Centro Educação Profissional Ezequiel Ferreira Lima CEPEF. Curso Técnico em Eletrônica.

Noção de Computabilidade

CURSO DE INFORMÁTICA. Algoritmos. Parte 5. Ricardo José Cabeça de Souza

Unidade 4: Introdução à Lógica de Programação - Parte II Português Estruturado - Versão Estácio Prof. Daniel Caetano

Aula 01 Algoritmos e lógica de programação e introdução ao C++

Linguagem Computacional

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS PRÓ-REITORIA DE GRADUAÇÃO DEPARTAMENTO DE COMPUTAÇÃO PLANO DE ENSINO

Programação Estruturada Aula - Introdução a Linguagem de Programação

Algoritmos e Programação

Linguagens de Programação Princípios e Paradigmas

Conceitos Básicos ENTRADA PROCESSAMENTO SAÍDA

TECNOLOGIA EM REDES DE COMPUTADORES. computadores. Aula 5

Manual de utilização

Introdução à Lógica de Programação

Desenvolvimento de programas. Análise do problema. Análise do problema. Análise do problema. Desenvolvimento do algoritmo. Codificação do programa

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO

CONCEITO DE ALGORITMO

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS PRÓ-REITORIA DE GRADUAÇÃO. Sistema de Planos de Ensino da PUC Goiás

INF 1005 Programação I

Algoritmos e Programação

Introdução à Programação LP JAVA

Estrutura de Dados e Lógica de Programação. Cátia Alves Marcelo Nunes 102 h/a 17/08/2015 a 12/12/2015

Sintática: como é escrito cada elemento da linguagem de programação.

Aula 02. MC Algoritmos e Programação de Computadores. Algoritmos: Definição e Exemplos.

Introdução a Computação

Introdução a Computação

Universidade Veiga de Almeida Algoritmos e Linguagem I

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Desenvolvimento de programas

Aula 01 Algoritmos e lógica de programação e introdução ao C++

Introdução aos algoritmos computacionais

#Conceituação. Algoritmos. Eliezio Soares

Introdução a Programação de Jogos

Aula 02 ALGORITMOS. Introdução à Computação

Transcrição:

Introdução a Algoritmos Aula 1 Professor: Maurício Archanjo Nunes Coelho

Metodologia Aulas expositivas Transparências Quadro negro Material disponível em PDF Resolução de exercícios Leitura/Estudo do material 2

Objetivos Principais da disciplina Apresentar os conceitos básicos da Ciência da Computação, necessários ao desenvolvimento de algoritmos. Introduzir uma linguagem de programação. Desenvolver o raciocínio lógico. 3

Avaliação A avaliação será realizada principalmente através de provas e trabalhos. Serão: 50 pontos em provas, 40 pontos em teste, trabalho e exercícios, teóricos ou práticos e 10 pontos de conceito a serem distribuídos observando o comportamento, participação e comprometimento do aluno.

Como desenvolver o raciocínio lógico? Não basta estudar toda a lista de exercícios! Não basta copiar toda a lista de exercícios! Copiar ou ler ou estudar um algoritmo pronto não é suficiente para desenvolver o raciocínio lógico! Para desenvolver o raciocínio lógico é necessário resolver problemas! 5

O que é um Algoritmo? Uma sequência de passos, não ambíguos, usado para resolver determinado problema.

Como estudar algoritmos? É muito importante pensar no problema que se deseja resolver e elaborar o algoritmo de cada problema proposto sem ajuda! Essa é a maior dificuldade de 80% dos alunos da disciplina. Na maioria das vezes, os alunos não percebem e não entendem que este é o problema. 7

Como estudar algoritmos? Para resolver problemas, é necessário: 1. Conhecer as regras ou ações permitidas; 2. Entender o problema proposto; 3. Indicar quais ações devem ser realizadas e em que ordem devem ser feitas; 4. Executar a sequência de ações e verificar se esta realmente resolve o problema proposto. A maioria dos alunos se concentra apenas no passo 1, embora o verdadeiro desafio esteja nos outros passos... 8

Exemplo 1 0 1 2 3 4 5 6 Problema: inverter a posição das peças brancas e pretas. Ações permitidas: Deslizar uma peça para a posição vizinha se estiver vazia (ex: peça em 2 vai para 3); Pular uma única peça até a posição seguinte, se esta estiver vazia (ex: peça em 5 vai para 3). Qual sequência de ações resolve o problema? 9

Exemplo 1 0 1 2 3 4 5 6 Sequência de ações: 1.Mover de 2 para 3; 2.Pular de 4 para 2; 3.Mover de 5 para 4; 4.Pular de 3 para 5; 5.Pular de 1 para 3; 6.Mover de 0 para 1; 7.Pular de 2 para 0; 8. Pular de 4 para 2; 9. Pular de 6 para 4; 10. Mover de 5 para 6; 11. Pular de 3 para 5; 12. Pular de 1 para 3; 13. Mover de 2 para 1; 14. Pular de 4 para 2; 15. Mover de 3 para 4. Esta é uma solução para o problema? Existe apenas uma solução para este problema? 10

Exemplo 1 0 1 2 3 4 5 6 Sequência de ações: 1.Mover de 2 para 3; 2.Pular de 4 para 2; 3.Mover de 5 para 4; 4.Pular de 3 para 5; 5.Pular de 1 para 3; 6.Mover de 0 para 1; 7.Pular de 2 para 0; 8. Pular de 4 para 2; 9. Pular de 6 para 4; 10. Mover de 5 para 6; 11. Pular de 3 para 5; 12. Pular de 1 para 3; 13. Mover de 2 para 1; 14. Pular de 4 para 2; 15. Mover de 3 para 4. Como saber se uma solução proposta está correta? Executando a sequência de ações indicada e verificando se o problema foi, de fato, resolvido. 11

Como estudar algoritmos? Nesta disciplina: Raramente um problema terá uma única solução correta; Uma solução pode estar correta, mesmo sendo muito diferente de outra solução do mesmo exercício; Como saber se uma solução está correta? Executando a sequência de ações indicada e verificando se o problema foi, de fato, resolvido. 12

Como estudar algoritmos? Nesta disciplina: O aluno não deve esperar que o professor corrija um exercício para saber se está correto; O próprio aluno deve ser capaz de executar a sequência de instruções e verificar se o problema proposto foi resolvido. 13

Exemplo 2 00 01 02 03 A 10 11 12 13 20 21 22 23 L 30 31 32 33 V R V A L Problema: colocar as peças no tabuleiro sem que haja peças de mesma cor na mesma linha, coluna ou quadrado. Ações permitidas: colocar uma peça em uma posição vazia. 14

Exemplo 2 00 01 02 03 A 10 11 12 13 20 21 22 23 L 30 31 32 33 V A solução a seguir resolve o problema? 1.V em 00 2.L em 02 3.R em 03 4.L em 10 5.R em 11 6.A em 12 7.A em 20 8.R em 22 9.A em 23 10.V em 30 11.R em 31 12.V em 32 13.L em 33 R V A L É única? 15

Exemplo 2 00 01 02 03 V A R 10 11 12 13 L R A 20 21 22 23 R L V 30 31 32 33 A V L L V A R Neste exemplo, a ordem em que as ações são executadas não interfere na solução. Mas, ao longo da disciplina, a ordem das ações normalmente será significativa na solução. 16

Exemplo 3 1 2 3 4 5 6 7 8 Problema: dada uma configuração inicial aleatória, fazer com que as peças do jogo fiquem na posição indicada na figura ao lado. Ações permitidas: deslizar uma peça para a posição vizinha, se esta estiver vazia. 17

Exemplo 3 4 1 5 Para a configuração inicial ao lado, qual a solução? 8 7 6 2 3 Fica mais fácil de resolver fazendo um esboço do que acontece a cada passo tentado. A ordem dos passos é significativa? 18

Exemplo 3 4 1 5 Para a configuração inicial ao lado, a solução a seguir resolve o problema? 8 2 1.Move o 8 2.Move o 4 7.Move o 6 8.Move o 8 3.Move o 1 9.Move o 5 7 6 3 4.Move o 5 10.Move o 2 5.Move o 2 11.Move o 3 6.Move o 3 12.Move o 6 A ordem dos passos é significativa? 19

Objetivos específicos das aulas práticas Introduzir uma linguagem de programação e sua sintaxe Introduzir e exercitar todas as etapas do desenvolvimento de algoritmos: Interpretação do problema a ser resolvido Utilização de raciocínio lógico para elaborar um algoritmo Implementação do algoritmo na linguagem C Compilação do algoritmo Execução de testes para verificar a corretude da solução proposta 20

Como participar das aulas no Laboratório? A disciplina tem um caráter prático. Pelo cronograma, para cada assunto abordado em teoria, teremos uma ou mais aulas práticas. 21

Como serão as aulas? No final das aulas os alunos irão sempre resolver problemas. Para isso, é necessário: 1. Conhecer os recursos disponíveis que podem ser utilizados para resolver o problema; 2. Entender o problema proposto; 3. Elaborar uma sequência de passos indicando o que deve ser feito, na ordem em que deve ser feito; 4. Executar a sequência de ações e verificar se esta realmente resolve o problema proposto. 22

Aula de hoje Usaremos o jogo do StarWars O jogo foi criado com o propósito de introduzir conceitos de programação para crianças e adolescentes. https://code.org/starwars 23

Aula de hoje Usaremos outro jogo: Light Bot, para ilustrar mais um processo de solução de problemas. Consiste em um pequeno robô, situado sobre uma plataforma, que precisa se deslocar para acender os bloquinhos em azul. Você tem que indicar o que o robô deve fazer em cada situação. 24

Aula de hoje O jogo começa bastante simples e ilustra pontos importantes do processo de programação, depois vai complicando...: 1. É necessário conhecer os recursos disponíveis para resolver o problema. 25

Aula de hoje O jogo começa bastante simples e ilustra pontos importantes do processo de programação, depois vai complicando...: 2. É necessário entender o problema. 26

Aula de hoje O jogo começa bastante simples e ilustra pontos importantes do processo de programação, depois vai complicando...: 3. É necessário combinar os recursos gerando uma sequência de instruções para o robô. 27

Aula de hoje O jogo começa bastante simples e ilustra pontos importantes do processo de programação, depois vai complicando...: 4. É possível executar a sequência de instruções para verificar se esta, de fato, resolve o problema. 28

Mãos à obra 5. Clique no local indicado pela seta para acessar a versão online. 29

Mãos à obra 6. Se necessário, clique no canto superior direito para mudar a língua. 6. Leia as instruções com calma e divirta-se! 30

Bibliografia FARRER, Harry et al. Algoritmos estruturados: programação estruturada de computadores. 3 ED. Rio de Janeiro: LTC, 2010. 284 p. FARRER, Harry et al. Algoritmos estruturados. Guanabara Dois, 1985. ZIAVINI, N. Projeto de algoritmos com implementações em Pascal e C. 3ª Edição. Livraria Pioneira Editora, São Paulo, 2007.