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

Documentos relacionados
Programação Estruturada

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

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

Processamento da Informação

Processamento da Informação

Linguagens de Programação Classificação

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

GFM015 Introdução à Computação

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

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

Introdução ao Python. Programa Computacional

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

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

Linguagens de Programação

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

PROGRAMAÇÃO I. Introdução

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

Introdução à Computação

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Linguagem de Máquina

TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE. Professora: Isabela C. Damke

Construção de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014.

Desenvolvimento de Aplicações Desktop

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

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Noções de sistemas de computação

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

Introdução à Programação uma Abordagem Funcional

Programação de Computadores I

Linguagens de Programação

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

Introdução à Computação MAC0110

Computação Eletrônica

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

INFORMÁTICA: Informação automática

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

Apresentação. Informação geral + Conceitos iniciais

Estrutura e Funcionamento dos Computadores (Conceitos Básicos)

Algoritmos e Técnicas de Programação. Professora Luciana Faria

4 O conceito de variável

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

1 Introdução e Conceitos básicos

AGT0001 Algoritmos Aula 01 O Computador

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

Sistema Computacional

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

Introdução à Computação Parte 2

Engenharia Civil. Conceitos Básicos. Introdução à Computação

Lic. Engenharia de Sistemas e Informática

Introdução à Computação

Introdução à Computação

ORGANIZAÇÃO DE COMPUTADORES

Introdução a Algoritmos

Aula teórica 7. Preparado por eng.tatiana Kovalenko

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

GFM015 Introdução à Computação. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM

Programação de Computadores

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

Puca Huachi Vaz Penna

Introdução a Programação

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

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

Universidade Federal do Espírito Santo. Programação II. CT IX - Sala 201 Departamento de Informática Centro Tecnológico

LISTA DE EXERCÍCIOS 01 INTRODUÇÃO À INFORMÁTICA

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores

Introdução à Programação. Conceitos Básicos de Programação

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

II.1 Conceitos Fundamentais. Uma delas é programar o =>

Introdução à Informática Engenharia Agrícola

Estruturas de Dados Apresentação

Programação de Computadores

Algoritmos. Prof. Jonatas Bastos Site:

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

Algoritmos Computacionais

2. Conceitos Básicos. Introdução à Ciência da Computação.

Informática I. Aula 2. Ementa

MC-102 Aula 02 Shell Interativa, Programa Básico, Variáveis, Atribuições, Tipos Simples. Instituto de Computação Unicamp

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

Introdução à Programação de Computadores Parte I

ATIVIDADE DE ESTUDO 03 FUNDAMENTOS E ARQUITETURA DE COMPUTADORES 2017A1

Arquitetura e Organização de computadores

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

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

Máquinas. Visão geral O que você precisa Fatores de sucesso O futuro. realizar algo, precisa que alguém m lhe indique o que fazer V.V.

Algoritmos e Programação

Introdução (Aula 2) Introdução Arquitetura de Hardware. Organização Estruturada de Computadores. Introdução Conceitos (2) Introdução Conceitos (1)

Apresentação da Disciplina

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Aula 1: Introdução 3/3/2015

Arquitetura de Computadores

Projeto de Algoritmos

ORGANIZAÇÃO DE COMPUTADORES

Aula 3 Máquina Multinível

Sistemas Operacionais I

Informática básica. Professor: Francisco Ary

16. Compilação no Linux

Programação de Computadores

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06

Introdução. (Aula 2) Organização Estruturada de Computadores

Transcrição:

MC-102 Aula 01 Introdução à Programação de Computadores Instituto de Computação Unicamp 2016

Roteiro 1 Por que aprender a programar? 2 Hardware e Software 3 Organização de um ambiente computacional 4 Algoritmos 5 Um pouco de história 6 A linguagem Python 7 Relembrando 8 Informações Extras (Instituto de Computação Unicamp) MC-102 Aula 02 2016 2 / 28

Por que aprender a programar? Neste curso vocês aprenderão o básico para se criar programas. Exemplos de programas: Firefox, Angry Bird, MatLab, Spotify. Aprender a programar é uma atividade básica de um cientista ou engenheiro da computação. (Instituto de Computação Unicamp) MC-102 Aula 02 2016 3 / 28

Por que aprender a programar? Eu não sou da computação!!! Por que programar? Possíveis Respostas: Porque é legal! Posso ter algum retorno financeiro com isso! (Instituto de Computação Unicamp) MC-102 Aula 02 2016 4 / 28

Por que aprender a programar? Eu sou das engenharias! Alguns exemplos: Como engenheiro você deverá ser capaz de automatizar algum processo. Você poderá criar programas para gerenciar e automatizar algum processo que hoje é manual. Como engenheiro você deverá ser capaz de desenvolver novas ferramentas ou protótipos. Para criar ferramentas/protótipos você deverá fazer simulações computacionais para a realização de testes preliminares. Você poderá enxergar situações onde uma solução computacional pode trazer benefícios. Mesmo que você não implemente (programe) a solução você poderá propô-la e será capaz de conversar com o pessoal de TI para implementar a solução. (Instituto de Computação Unicamp) MC-102 Aula 02 2016 5 / 28

Por que aprender a programar? Eu sou das áreas científicas! Matemática, Física, Química etc. Alguns exemplos: Como cientistas vocês devem propor uma hipótese e testá-la. Em vários casos onde os sistemas podem ser modelados matematicamente, são criados programas que fazem a simulação do sistema para checagem de uma hipótese. Você deverá resolver sistemas complexos de equações que não necessariamente podem ser resolvidos por softwares padrões (como MatLab). Vocês deverão implementar seus próprios resolvedores. Simulações. Muitos dos modelos propostos para explicar algum fenômeno são simulados computacionalmente. Implementar os modelos é uma tarefa básica. (Instituto de Computação Unicamp) MC-102 Aula 02 2016 6 / 28

O que esperar deste curso Vocês aprenderão o básico para desenvolver programas. Utilizaremos a linguagem Python. Vocês NÃO vão aprender a usar programas neste curso (como office, etc). Vocês VÃO ter porém, uma boa noção de como criar programas como o office, etc. (Instituto de Computação Unicamp) MC-102 Aula 02 2016 7 / 28

O que será necessário Você deverá ter acesso a um computador. Para criar um programa, utilizamos um editor de texto (para escrever o código do programa) e um compilador/interpretador. O compilador é o que transforma o código em um programa executável. O interpretador é um programa que executa diretamente os comandos da linguagem. Se você usa linux, MAC OS, ou Windows você poderá utilizar qualquer editor simples como emacs, kyle, etc. Será preciso instalar o compilador/interpretador Python. Você pode baixá-lo do site (instale a versão Python 3.*). https://www.python.org/downloads/ O Python já vem com um editor chamado IDLE que você poderá utilizar para escrever os seus programas. (Instituto de Computação Unicamp) MC-102 Aula 02 2016 8 / 28

O que será necessário Para ir bem neste curso: Faça todos os laboratórios. Faça e implemente as listas de exercícios. E finalmente faça e implemente as listas de exercícios. (Instituto de Computação Unicamp) MC-102 Aula 02 2016 9 / 28

O que será necessário Para ir bem neste curso: Faça todos os laboratórios. Faça e implemente as listas de exercícios. E finalmente faça e implemente as listas de exercícios. (Instituto de Computação Unicamp) MC-102 Aula 02 2016 9 / 28

O que será necessário Para ir bem neste curso: Faça todos os laboratórios. Faça e implemente as listas de exercícios. E finalmente faça e implemente as listas de exercícios. (Instituto de Computação Unicamp) MC-102 Aula 02 2016 9 / 28

O que é um computador? Computador: o que computa, calculador, calculista. (dicionário Houaiss). Um computador é uma máquina que, a partir de uma entrada, realiza um número muito grande de cálculos matemáticos e lógicos, gerando uma saída. (Instituto de Computação Unicamp) MC-102 Aula 02 2016 10 / 28

Hardware e dispositivos Usualmente chamamos de Hardware todos os dispositivos físicos que compõem um computador. Temos por exemplo: CPU, Disco Rígido, Memória, etc. Estes dispositivos seguem uma organização básica como na figura (Arq. de Von Neumann). (Instituto de Computação Unicamp) MC-102 Aula 02 2016 11 / 28

Hardware e dispositivos Todo o hardware opera com sinais digitais: sem energia e com energia. Normalmente usamos valores 0 e 1 para representar isto. Chamamos estes sinais de Bit Valores 0 ou 1. Chamamos de Byte um agrupamento de 8 bits. Todas as informações armazenadas no computador são representadas por números 0s e 1s. Informações como letras, símbolos, imagens, programas são todas vários 0s e 1s. (Instituto de Computação Unicamp) MC-102 Aula 02 2016 12 / 28

Software São os programas que executam tarefas utilizando o hardware de um computador. Os softwares são compostos por um conjunto de instruções que operam o hardware. Temos abaixo, por exemplo, três instruções para um computador de 32 bits. Um software é composto por milhares de instruções deste tipo. 0100 0010 0011 0101 0101 0100 0011 0110 0100 1110 1100 1100 1001 0110 0110 1000 0000 0101 1111 1110 1101 0011 0000 1100 (Instituto de Computação Unicamp) MC-102 Aula 02 2016 13 / 28

Organização básica de um ambiente computacional Um ambiente computacional é organizado como uma hierarquia de funções, onde cada uma é responsável por uma tarefa específica. Programas de Aplicação Compiladores Sistema operacional Hardware (Instituto de Computação Unicamp) MC-102 Aula 02 2016 14 / 28

Organização básica de um ambiente computacional Programas de Aplicação. Como usuários, interagimos com os programas de aplicação. Neste curso iremos descer nesta hierarquia, para construirmos novos programas de aplicação. Para construir novos programas podemos escrever diretamente códigos digitais que serão executados por um computador. Uma maneira mais simples é usar um compilador para uma linguagem de programação específica. Programas de Aplicação Compiladores Sistema operacional Hardware (Instituto de Computação Unicamp) MC-102 Aula 02 2016 15 / 28

Organização básica de um ambiente computacional Compiladores e Linguagens de Programação. Uma linguagem de programação é um conjunto de comandos que são mais próximos da linguagem humana do que os sinais digitais. Neste curso estamos interessados no estudo da linguagem de programação Python. Um compilador é um programa que lê um código de uma linguagem de programação e o transforma em um programa executável. O compilador realiza esta tarefa juntamente com um assembler. for i in range (10): loop: add c, a, b 0100 0010 0011 0101 0101 0100 0 c = a+b add i, i, 1 0110 0110 0111 0101 0101 0100 0 bnq i, 10, loop 1111 0000 0111 0101 0101 0100 0 (Instituto de Computação Unicamp) MC-102 Aula 02 2016 16 / 28

Organização básica de um ambiente computacional Compiladores e Linguagens de Programação. No caso específico de Python, o compilador traduz o código Python para o que chamamos de bytecode. O bytecode é um código de baixo nível que é executado em uma máquina virtual Python. Quando instalamos o compilador Python em um computador, na verdade instalamos tanto o compilador, o interpretador e a máquina virtual onde os programas em Python serão executados. O programa Python é também um interpretador pois ele pode ser usado para executar diretamente os comandos em Python. (Instituto de Computação Unicamp) MC-102 Aula 02 2016 17 / 28

Organização básica de um ambiente computacional Sistema Operacional. Os programas possuem instruções que são executados no hardware. Mas o acesso ao hardware, como disco rígido, memória, processador, é controlado por um software especial conhecido como sistema operacional. O sistema operacional é o responsável pelo controle do hardware, incluindo segurança, gerenciamento de memória, dentre outros. Exemplos de sistema operacionais: Windows, Mac OS, Linux, Android, ios. (Instituto de Computação Unicamp) MC-102 Aula 02 2016 18 / 28

Algoritmos Ao criarmos um programa para realizar uma determinada tarefa devemos ser capazes de construir algoritmos. Algoritmo: Seqüência de passos, precisos e bem definidos, para a realização de uma tarefa. Algoritmos podem ser especificados de várias formas, inclusive em português. Exemplo de algoritmo Como ordenar as cartas de um baralho? (Instituto de Computação Unicamp) MC-102 Aula 02 2016 19 / 28

De algoritmos a programas Neste curso vamos aprender a criar algoritmos simples. Usaremos a linguagem Python para descrever os algoritmos. Os programas escritos em Python podem ser diretamente executados utilizando o interpretador Python. (Instituto de Computação Unicamp) MC-102 Aula 02 2016 20 / 28

Um pouco de história Os primórdios da programação: programação em código absoluto ou binário (apenas 0s e 1s). ENIAC (Instituto de Computação Unicamp) MC-102 Aula 02 2016 21 / 28

Um pouco de história Uma melhoria: A Linguagem Assembly. Cria-se uma linguagem de baixo nível (Linguagem Assembly) para representar as instruções em código binário. Um programa, chamado montador ou assembler, faz a transformação em código absoluto. LOOP: MOV A, 3 INC A JMP LOOP (Instituto de Computação Unicamp) MC-102 Aula 02 2016 22 / 28

Um pouco de história Uma brilhante idéia: Criação de linguagens de alto nível e compiladores para estas. Mais distantes da máquina e mais próximas de linguagens naturais (inglês, português, etc.). Mesmo mais compreensíveis, elas não são ambíguas. Um compilador as transforma em código executável. Exemplos de linguagens C Java Python (Instituto de Computação Unicamp) MC-102 Aula 02 2016 23 / 28

Primeiro programa em Python Um programa em Python é um arquivo texto, contendo declarações e operações da linguagem. Isto é chamado de código fonte. print("ola turma de MC102!!") Você pode salvar este arquivo como hello.py. (Instituto de Computação Unicamp) MC-102 Aula 02 2016 24 / 28

Como executar este programa Para executar este programa basta abrir um terminal e escrever: $ python hello.py Ola turma de MC102! (Instituto de Computação Unicamp) MC-102 Aula 02 2016 25 / 28

Relembrando Hardware e Software. Pilha de um ambiente computacional: Programas de Aplicações, Compilador, Sistema Operacional, Hardware. Código Binário, Assembly, Linguagem de Alto Nível. Algoritmos. (Instituto de Computação Unicamp) MC-102 Aula 02 2016 26 / 28

Informações Extras: O que são erros de compilação? Caso o programa não esteja de acordo com as regras da linguagem, erros de compilação ocorrerão. Ler e entender estes erros é muito importante. print("ola turma de MC102!!) $ python hello.py File "hello.py", line 3 print("ola turma de MC102!! ^ SyntaxError: EOL while scanning string literal (Instituto de Computação Unicamp) MC-102 Aula 02 2016 27 / 28

Informações Extras: O que são erros de execução? Acontecem quando o comportamento do programa diverge do esperado e podem acontecer mesmo quando o programa compila corretamente. print("ola turma de MC102!!%LKFDLJLK") $ python hello.py Ola turma de MC102!!%LKFDLJLK (Instituto de Computação Unicamp) MC-102 Aula 02 2016 28 / 28