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

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

Programação de Computadores. Turma CI-180-B. Josiney de Souza.

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

PROGRAMAÇÃO I. Introdução

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

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

INF A: Introdução à programação

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

Introdução à Computação MAC0110

Sistemas Operacionais

Estrutura e Funcionamento dos Computadores (Conceitos Básicos)

Sistema Computacional

Algoritmos Computacionais

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

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

Projeto de Algoritmos

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

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

Organização de Computadores I

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

Introdução à Computação MAC0110

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

Computação Eletrônica

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

Programação de Computadores:

Introdução à Computação

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

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

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

Lista de Exercícios sobre Conceitos de Informática. Exercício 1: Correspondência

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

Introdução a Programação de Jogos

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

Arquitetura de Von Neumann

AGT0001 Algoritmos Aula 01 O Computador

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

Lista de Exercícios sobre Conceitos de Informática. Exercício 1: Correspondência

Algoritmos e Estrutura de Dados I. Tiago Alves de Oliveira

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

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

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1

Introdução ao Fortran 90

3. Linguagem de Programação C

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.

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador

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

Puca Huachi Vaz Penna

Informática I. Aula 2. Ementa

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

Conceitos básicos sobre computadores (continuaçã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

Programação de Computadores I

Componentes de um Computador Típico

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

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

Introdução à Informática

INTRODUÇÃO À MICROINFORMÁTICA

Introdução à Informática

Aula 05. Fundamentos de Hardware e Software. Prof. Dr. Dilermando Piva Jr.

Programação de Computadores

15/09/2016 O QUE É UM COMPUTADOR? O QUE É UM COMPUTADOR? O QUE É UM COMPUTADOR? PENSAR EM INFORMÁTICA É PENSAR EM:

Programação de Computadores

Introdução à Computação

Linguagens de Programação

Introdução à Computação

Linguagens de Programação Classificação

14/3/2016. Prof. Evandro L. L. Rodrigues

AULA 2. Prof.: Jadiel Mestre. Introdução à Informática. Introdução à Informática Componentes de um Sistema de Informação

Programação. Module Introduction. Cap. 1 Fundamentos de Computadores

INFORMÁTICA: Informação automática

Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger

1. Conceitos Básicos de Computação

AEDI Introdução Revisão 2

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

SSC0112 Organização de Computadores Digitais I

INFORMÁTICA. Professor: Venicio Paulo Mourão Saldanha Site:

Computadores, Algoritmos e Linguagens

Programação Estruturada

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador

Patrícia de Siqueira Ramos. 11 de Março de 2019

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Introdução à Computação Parte 2

SSC0640 Sistemas Operacionais I

ORGANIZAÇÃO DE COMPUTADORES

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

INF 1005 Programação I

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

Capítulo 2 Livro do Mário Monteiro Componentes Representação das informações. Medidas de desempenho


Fundamentos de Informática Introdução aos Conceitos Básicos

Introdução à Programação. Apresentação da Disciplina e Conceitos Básicos de Computadores

Computação L. Apresentação da Disciplina e Conceitos Básicos de Computadores

ORGANIZAÇÃO DE COMPUTADORES

Programação de Computadores

GFM015 Introdução à Computação

Sistemas Operacionais. Adão de Melo Neto

21/03/2018 O QUE É UM COMPUTADOR? COMPUTADOR? O QUE É UM COMPUTADOR? O QUE É UM COMPUTADOR?

Infraestrutura de Hardware. Funcionamento de um Computador

Transcrição:

Fundamentos de Programação Turma CI-240-EST Josiney de Souza josineys@inf.ufpr.br

Fundamentos de Programação CI-240-EST Tópicos da disciplina: Apresentação: modelo de um computador, algoritmos, programas, linguagens de programação Primeiros elementos da linguagem Python Estruturas de Controle Condicionais Estruturas de Controle de Repetição Estruturas de Dados: Listas Funções Arquivos

Fundamentos de Programação CI-240-EST Bibliografia (Python): Introdução à Programação com Python (Menezes, N.N.C.) Aprendendo Python (Lutz, M. & Ascher, D.) Bibliografia auxiliar: Algoritmos e Programação - Teoria e Prática (Medina, M. & Fertig, C.) Notas de aula de Algoritmos e Estruturas de Dados I (Castilho, Silva, Weingaertner) - http://www.inf.ufpr.br/cursos/ci055/apostila.pdf

Fundamentos de Programação CI-240-EST Material de apoio: Notas de aulas Python (http://www.inf.ufpr.br/nicolui/grad/ci240/docs/n otasaula/notas.pdf) Guia de referência do Python Site (https://docs.python.org/3/tutorial/) Documentação Google Outro material...

Fundamentos de Programação CI-240-EST Avaliação: 3 provas e 1 trabalho Média = 0,2*(P1 + P2 + P3) + 0,4*TRAB Aprovado: Média 70 Exame: 40 Média < 70 Reprovado: Média < 40

Fundamentos de Programação CI-240-EST Segunda chamada: 25/11: Substitui provas 1 e 2 27/11: Substitui prova 3 Casos cobertos pela resolução CEPE 37/97 Preencher formulário de segunda chamada Anexar documento comprovante Entregar na recepção do DInf, ou Entregar ao professor (gabinete ou sala de aula)

Fundamentos de Programação CI-240-EST Casos não cobertos pela CEPE 37/97: Se faltou em duas ou mais provas Reprovado Final/Exame como substitutiva Exame substitui a prova perdida Se a média parcial entre 40 e 69 Soma-se a média parcial com a Final Calcula-se a média final

Fundamentos de Programação CI-240-EST Presença: Lista de presença Máximo de 25% de faltas Total de aulas: 34 Mínimo de presença: 25,5 26 Máximo de faltas: 8,5 8 Alunos nas turmas certas 26/08 turmas ajustadas

Fundamentos de Programação CI-240-EST Calendário: 03/08 Início das aulas do semestre 05/08 Início das aulas 26/08 Regularização das matrículas 27/11 Último dia letivo 30/11 Último dia letivo do semestre 08-14/12 Exames

Fundamentos de Programação CI-240-EST Avaliação: Prova 1: 28/08 (sexta-feira) Prova 2: 18/09 (sexta-feira) Prova 3: 09/10 (sexta-feira) Segunda Chamada 25/11: provas P1 e P2 (quarta-feira) 27/11: prova P3 (sexta-feira) Final/Exame: 09/12 (quarta-feira)

Fundamentos de Programação CI-240-EST Outras informações: IDLE: Ambiente Integrado de Desenvolvimento (IDE) Linguagem Python Pode trazer e usar: Computador Celular Tablet

Fundamentos de Programação CI-240-EST Mais informações: Página da disciplina: http://www.inf.ufpr.br/cursos/ci240 http://www.inf.ufpr.br/josineys/ci240est Informações dos slides Recados e avisos E-mail: josineys@inf.ufpr.br

Agenda do Dia Aula 1 (05/08/15) Revisão de Modelo de um Computador Problemas e Soluções Algoritmos Programas Linguagens de Programação

Modelo von Neumann Computador de propósito geral: Programa armazenado: programa em memória, assim como os dados Podem ser modificados Podem ser substituídos Componentes: unidade central de processamento, memória, entrada e saída

Modelo von Neumann Unidade Central de Processamento / Central Processing Unit (CPU) Memória / Memory Entrada / Input Saída / Output

Modelo von Neumann Registradores Unidade de Lógica e Aritmética Unidade Central Memória / Memory Entrada / Input Saída / Output

Modelo von Neumann: Hardware Unidade Central de Processamento (CPU): Unidade de Controle: busca programa na memória, executa instrução após instrução Unidade de Lógica e Aritmética: operações sobre números e endereços Registradores: memória da CPU, guarda dados Status de controle de execução Contador de programa Valores a calcular

Modelo von Neumann: Hardware Outros componentes: Memória: memória principal ou RAM. É volátil, possui espaços endereçados. Expressa em bytes (MB, GB) Entrada: dispositivo para inserir dados no processamento. Exemplo: teclado (entrada padrão), mouse/rato Saída: dispositivo para exibir dados do processamento. Exemplo: tela (saída padrão), impressora, arquivos

Problemas e Soluções No mundo real temos: Problemas: representam situações do mundo físico que podem ser transformadas em modelos que os representem Soluções: são as respostas possíveis para problemas do mundo físico; utilizam métodos e cálculos para resolução Problema Físico Modelagem Modelo Matemático Resolução Solução

Problemas e Soluções Tanto problemas quanto soluções: Pode existir mais de uma solução para os problemas Algumas soluções são melhores que outras sob algum aspecto Alguns problemas são casos particulares de outros similares Sempre que possível, é melhor resolver o problema mais genérico

Problemas e Soluções Exemplos de problemas: Contar o número de pessoas em um evento Trocando os quatro pneus Qual a melhor rota de ônibus?

Contando Pessoas em um Evento Solução 1: contar pessoa por pessoa, um por vez Não contar a mesma pessoa mais de uma vez Não se esquecer de contar alguém Vantagens: simples, fácil de executar, não exige conhecimento prévio, sem recursos extras Desvantagens: tempo de contagem (se sala for grande e estiver cheia), altas chances de errar E se fosse em um comício?

Contando Pessoas em um Evento Solução 2: contar carteiras vazias Vantagens: simples, fácil de executar, sem recursos extras Desvantagens: requer saber quantas carteiras há, tempo de contagem (se sala for grande e estiver quase vazia) E se fosse em um comício?

Contando Pessoas em um Evento Solução 3: contagem por estatística Vantagens: mais rápido que outras soluções para públicos maiores Desvantagens: deve-se saber a metragem da praça de antemão e estimar pessoas por metro quadrado, número impreciso

Contando Pessoas em um Evento Solução 4: roletas/catracas Vantagens: número exato Desvantagens: instalação dos equipamentos, ambiente controlado (evitar de burlar catracas)

Contando Pessoas em um Evento Outras soluções: Solução 5: filas organizadas e de mesmo tamanho Solução 6: trabalho distribuído em paralelo (cada primeiro conta sua fila e ao final soma-se os valores de cada fileira) Solução 7: trabalho distribuído binariamente (todos se levantam e se atribuem o número 1; aos pares, somam-se os números; 1 o guarda, outro se senta) Quais as vantagens e desvantagens?

Algoritmo Um algoritmo é: Uma sequência finita de instruções Quando executado, produz uma solução Registra-se uma solução para um problema Outra pessoa pode executar Exemplo: fazer um bolo

Programa Um programa é: Um algoritmo de forma detalhada tal qual o necessário Bolo de chocolate: claras em neve? Pegue todos os ingredientes? Programa de computador, linguagem de computador Quem faz vai entender? Computador vai entender?

Modelo von Neumann: Software Atualmente, há softwares para: Navegar na Internet: Firefox, Chrome, IE Suite de escritório: Microsoft Office, LibreOffice Entretenimento: VLC, emuladores Sistema Operacional: Windows, Mac OS, Linux Como são feitos?

Modelo von Neumann: Software Usamos a programação para criar um programa através de algoritmos Um algoritmo deve passar por algumas fases antes de se tornar programa Escrevemos o algoritmo em uma linguagem O algoritmo deve ser processado, adaptado para o computador Em linguagem do computador, o programa deve ser carregado em memória

Modelo von Neumann: Software Linguagens existentes: Linguagem natural Linguagem de alto nível Linguagem de baixo nível Linguagem de máquina

Modelo von Neumann: Software Linguagens existentes: Linguagem natural: falada e escrita pelas pessoas. Exemplo: português, inglês, alemão Linguagem de alto nível: subconjunto da linguagem natural. Códigos legíveis aos humanos usados para programar. Exemplo: C, C++, Java, Pascal, Fortran, Cobol

Modelo von Neumann: Software Linguagens existentes: Linguagem de baixo nível: subconjunto da linguagem natural. Menos legível, mais próximo da linguagem de máquina. Exemplo: Assembly Linguagem de máquina: linguagem entendível pelo computador, incompreensível para humanos

Modelo von Neumann: Software Linguagem Natural Linguagem de Alto Nível Linguagem de Baixo Nível 1 2 Linguagem de Máquina Linguagem de Máquina 3 4 Memória

Modelo von Neumann: Software Componentes de software: 1: Compilador (Compiler): transforma o código-fonte de linguagem de alto nível para código objeto 2: Montador (Assembler): transforma o código-fonte de linguagem de baixo nível para código objeto 3: Ligador (Linker): transforma o código objeto para formato executável 4: Carregador (Loader): carrega arquivos em formato executável para execução

Modelo von Neumann: Software Normalmente: Não é necessário fazer todos os passos Os compiladores compilam e ligam os arquivos automaticamente Com Python, temos uma linguagem interpretada: Não possuem compilação Não geram código objeto Existe um programa que lê o código-fonte, interpreta a instrução e ele mesmo a executa

Próxima Aula Primeiros elementos de Python