Introdução à Computação

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

Estatística Básica. Introdução à Análise Exploratória de Dados. Renato Dourado Maia. Instituto de Ciências Agrárias

Introdução ao Python. Programa Computacional

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

Fundamentos de Lógica e Algoritmos. Aula 3.1 Introdução a Python. Prof. Dr. Bruno Moreno

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

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof.

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

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

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

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

1 Introdução à Programação O que é? Para que serve?... 1

Fundamentos de Lógica e Algoritmos. Aula 3.1 Introdução a Programação. Prof. Dr. Bruno Moreno

Programação I A Linguagem C. Prof. Carlos Alberto

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

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

Desenvolvimento de Algoritmos. Slides elaborados pela Prof(a). Simone do Rocio Senger de Souza ICMC/USP

Introdução a Programação

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

PROGRAMAÇÃO I. Introdução

Programação de Computadores

Linguagens de Programação

Relatório Individual Projeto final de Programação II. Xadrez. José Mauro Nazareth Cardoso Neto

Algoritmos e Programação

Algoritmos e Programação

Linguagem de Programação

1 TECNOLOGIA ELEMENTAR CAPÍTULO 1 E-books PCNA. Vol. 1 TECNOLOGIA ELEMENTAR CAPÍTULO 1 INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO C.

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012

INFORMÁTICA PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM PYTHON

Fundamentos de Programação. Diagrama de blocos

ALGORITMOS AULA 1. Profª Amanda Gondim

Programação de Computadores

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Algoritmos e Programação

Programação: Compiladores x Interpretadores PROF. CARLOS SARMANHO JR

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

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

Algoritmos e Programação

Fundamentos de Lógica e Algoritmos. Aula 2.3 Introdução a Algoritmos. Prof. Dr. Bruno Moreno

Introdução à Computação

Vamos estudar o que se entende por «programação», que é uma linguagem de programação e ver algumas terminologias própria de programação e como

Fundamentos de Programação

1 a Aula. Mestrado em Engenharia Física Tecnológica

TCC 00308: Programação de Computadores I Organização de programas em Python

Gerando um programa executável a partir de um módulo Python

Aula 1: Desenvolvimento de Algoritmos

INFORMÁTICA PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM PYTHON

#Conceituação. Algoritmos. Eliezio Soares

Passo-a-passo para desenvolver um Programa usando a Linguagem Python

Desenvolvimento de Aplicações Desktop

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

AULA 1 INTRODUÇÃO AO JAVA

Disciplina de Algoritmos e Programação

Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas

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

Computadores podem ser úteis em problemas que envolvem: Grande número de dados. Grande número de cálculos. Complexidade. Precisão.

CONSIDERAÇÕES INICIAIS

Introdução a Programação

Métodos de implementação de linguagens. Kellen Pinagé

É neste ponto que entra o conceito de lógica de programação.

INFORMÁTICA: Informação automática

Memória. Arquitetura de Von Neumann. Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 CPU. Unidade de controle ULA

Professor: Paulo Adolfo Kepler (Zé)

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

2. Criação de Algoritmos

AULA 02. OBJETIVO: Desenvolvimento e solução de Algoritmos. LÓGICA DE PROGRAMAÇÃO

Organização de programas em Python. Vanessa Braganholo

Transcrição:

Introdução à Computação INTRODUÇÃO AOS ALGORITMOS E À PROGRAMAÇÃO DE COMPUTADORES PARTE 3 Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia Civil

Linguagens de Programação Uma linguagem de programação é uma linguagem artificial com sintaxe e semântica bem definidas que é utilizada para escrever programas. É mais técnica do que as linguagens naturais e menos técnica do que a linguagem nativa dos computadores (linguagem de máquina). 2/34

Linguagens de Programação 3/34

Lembrando Compiladores Compiladores são programas que traduzem programas escritos em linguagem de programação para programas equivalentes escritos em linguagem de máquina. ProgramaFonte Compilador Programa-Objeto 4/34

Link-Editores O programa-objeto nem sempre está pronto para ser executado. Pode ser necessário incluir outros trechos de código: Bibliotecas. Subprogramas. O programa executável é montado por um programa chamado link-editor ou linking-loader. O compilador normalmente chama o link-editor automaticamente. 5/34

Link-Editores ProgramaObjeto 1... Programa Executável Link-Editor ProgramaObjeto N Biblioteca Biblioteca 6/34

Lembrando Interpretadores Os interpretadores simulam uma máquina virtual. O programa-fonte é lido, entendido e as instruções são executadas imediatamente. Entrada Interpretador Saída ProgramaFonte 7/34

Esquemas Híbridos O compilador gera código para uma máquina virtual (pseudo-código). A máquina virtual é executada separadamente, lendo o pseudo-código e interpretando-o. ProgramaFonte Entrada Interpretador Compilador Saída ProgramaObjeto 8/34

Experiência Introdução à Computação: Abordagem Clássica : Algoritmo + Portugol + Pascal/C. Neste semestre: Algoritmo + Python. Por que mudar? Por que Python? 9/34

Por que Mudar? Há duas alternativas para iniciar o aprendizado sobre programação: Começar com uma linguagem real, mas sofrer com os empecilhos que elas impõem para o aprendizado de iniciantes. Utilizar uma linguagem para iniciantes, usufruindo da simplicidade oferecida para o aprendizado, mas sabendo que ela não é poderá ser utilizada para a implementação de aplicações reais. Python, como veremos nos próximos dois slides, combina os melhores aspectos dessas duas abordagens! 10/34

Por que Python? Os conceitos fundamentais da linguagem são simples de entender. A sintaxe da linguagem é clara e fácil de aprender. Os tipos pré-definidos incluídos na linguagem são poderosos e, ainda assim, simples de entender. A linguagem possui um interpretador de comandos interativo que permite aprender e testar rapidamente trechos de código. É possível escrever extensões em outras linguagens, como C e C++. 11/34

Por que Python? Existe suporte para uma grande diversidade de bibliotecas externas. Python é uma linguagem que está crescendo muito no contexto da computação científica, que é algo muito útil em engenharia e ciência em geral. Veremos alguns exemplos no final da aula, caso o tempo permita... Programadores da NASA e do Google, por exemplo, utilizam Python! Multiplataforma: Windows, Linux, Mac... Python é software livre e, portanto, grátis. Existe uma comunidade grande e muito ativa. Há muito material disponível! 12/34

Por que Python? 13/34

Por que Python? O Zen do Python, por Tim Peters Bonito é melhor que feio. Explícito é melhor que implícito. Simples é melhor que complexo. Complexo é melhor que complicado. Linear é melhor do que aninhado. Esparso é melhor que denso. Legibilidade conta. Casos especiais não são especiais o bastante para quebrar as regras. Ainda que praticidade vença a pureza. Erros nunca devem passar silenciosamente. A menos que sejam explicitamente silenciados. Diante da ambiguidade, recuse a tentação de adivinhar. Deveria haver um e preferencialmente só um modo óbvio para fazer algo. Embora esse modo possa não ser óbvio a princípio a menos que você seja holandês. Agora é melhor que nunca. Embora nunca frequentemente seja melhor que *já*. Se a implementação é difícil de explicar, é uma má ideia Se a implementação é fácil de explicar, pode ser uma boa ideia Namespaces são uma grande ideia vamos ter mais dessas! 14/34

Por que Python? http://www.python.org/about/success/ 15/34

Por que Python? http://www.python.org.br/wiki/empresaspython 16/34

Por que Python? 17/34

Aspectos Importantes A disciplina não tem como objetivo principal o estudo da linguagem Python, mas sim o estudo de programação. Portanto, apesar da linguagem Python ser muito poderosa, em muitos casos, para que seja privilegiado o exercício da lógica de programação, os recursos, apesar de disponíveis, não serão utilizados. Muitos cursos introdutórios de algoritmos e programação são centrados em listar as funcionalidades de uma linguagem de programação (mesmo que seja o Portugol). 18/34

Aspectos Importantes Entretanto, aprender a programar consiste em aprender a pensar como um programador. Assim, nesta disciplina o esforço será concentrado no processo do pensamento: Estudaremos programação como uma técnica de resolução de problemas. Programar não é fácil, mas pode ser divertido! São requisitos básicos o esforço individual de cada um e a atitude correta (isso vale para a vida em geral). Só se aprende a programar programando! 19/34

Aspectos Importantes 20/34

Aspectos Importantes Os livros básicos que pretendem ensinar a jogar xadrez são normalmente escritos na seguinte ordem. Inicialmente, expõem-se o objetivo do jogo, os movimentos das peças e os xeque-mates elementares. Assim, aprende-se logo a dar xeque-mate com dama e rei contra rei ou torre e rei contra rei. Em seguida, apresentam-se finais um pouco mais complexos, em que cada jogador possui algumas peças; por exemplo, torre, peão e rei contra torre e rei. Agora, o jogador deve aprender a, partindo dessa situação, cair num daqueles finais simples que já aprendeu a ganhar. 21/34

Aspectos Importantes No exemplo dado, o jogador com peão a mais pode vencer se ele conseguir promover o tal peão, transformando-o numa dama. Posteriormente, discutem-se posições mais complicadas, com mais peças. A ideia é sempre a mesma: mostrar ao jogador como simplificar a posição, de modo a cair num daqueles finais com poucas peças que ele já aprendeu a vencer. Somente nas últimas páginas de um livro didático sobre xadrez é que se apresentam as aberturas, ou seja, sugestões para os primeiros lances do jogo. 22/34

Aspectos Importantes A abertura é mais difícil de se entender. Seus conceitos são estratégicos; seus frutos só aparecem depois de várias jogadas. Assim, aprende-se a jogar xadrez pelo final, numa ordem contrária àquela na qual o jogo se desenvolve. Entretanto, DIDATICAMENTE, essa é a ordem mais lógica para se ensinar o jogo. Trecho do prefácio da primeira edição do livro Sistemas Dinâmicos, de Luiz Henrique Alves Monteiro. 23/34

Aspectos Importantes 24/34

Do que Precisaremos? Uma implementação da linguagem: http://www.python.org Há um instalador para o Windows. O Linux normalmente já vem com o interpretador. Versões mais novas em 12/01/2012: 2.7.2 e 3.2.2. http://code.google.com/p/pythonxy/ Essa é a distribuição que eu utilizo! Um editor (de texto puro ): O ambiente IDLE, que faz parte da distribuição para Windows, inclui um editor. Que versão utilizaremos? 25/34

Do que Precisaremos? 26/34

Do que Precisaremos? 27/34

Do que Precisaremos? Aprender a programar é como aprender a jogar xadrez: Entender as regras básicas é simples, mas conseguir dominá-las e fazê-las funcionar em conjunto é mais difícil! Por isso, precisaremos de: Curiosidade e vontade de aprender. Humildade. Paciência. Perseverança. 28/34

Visão Comum do Mundo 29/34

Visão Científica (Curiosa) de Mundo 30/34

Perseverança! Sempre! 31/34

Uma Pergunta Pertinente Renato, por que você não utiliza a versão mais nova da linguagem? 32/34

Primeiros Passos Python interativo: Rode o interpretador. Digite comandos Python. Cada comando é executado imediatamente. Executando um programa Python: Escreva um programa Python. Invoque o interpretador para executá-lo. Vamos brincar um pouco... 33/34

That's All Folks! 34/34