INTRODUÇÃO À COMPUTAÇÃO Para quê? (Ou, como resolver com bem menos esforço problema típico de profissional) TRMM – PLUVIÔMETROS UFAL Estação automática (Dado de Hora em hora) Pluviômetro convencional (Lido às 9:00 h) 200 2000 100 50 1500 0 1000 -50 -100 500 -150 -200 J F M A M J J A S O N D 0 2500 plu TRMM 150 2000 100 50 1500 0 1000 -50 -100 500 -150 -200 J F M A M Distância entre equipamentos: X m J J A S O N D 0 precipitação acumulada (mm) 150 2500 diferença de precipitação diária TRMM - pluviômetro(mm) plu TRMM precipitação acumulada (mm) diferença de precipitação diária TRMM - pluviômetro(mm) 200 ESTAÇÃO AUTOMÁTICA – PLUVIÔMETRO CONVENCIONAL UFAL - 2009 200 diferença de precipitação diária (mm) 150 100 50 0 -50 -100 -150 -200 J F M A M J J A S O N D E AGORA? Desprezar algum deles? Qual? E se o que escolhemos desprezar tiver recebido o mesmo tratamento das outras estações do estudo? Olhar os dados? Mas são 365 por estação. Olhar dado a dado? Solução: Ensinar o computador a realizar o trabalho! PROBLEMA 1 Data fora de ordem! VISUALIZAÇÃO DIFERENTE DA EDIÇÃO! SINISTRO! NO MEIO DO ARQUIVO, DATA SEM HORA PROBLEMA 2 Data repetida! DATA VOLTA! FORMATAÇÃO MUDA! VISUALIZAÇÃO E EDIÇÃO DIFEREM! OCULTANDO O QUE TÁ COM OUTRA FORMATAÇÃO, DATAS SE COMPLETAM! PROBLEMA 3 Datas mudam a cada nova informação DATA MUDA?! CURIOSIDADE 1 Será que as datas problemáticas, repetidas, aparecem no trecho dos dados no meio do arquivo? DIFERENTES DATAS MESMOS DADOS CURIOSIDADE 2 Existe falha? FALHAS? PREENCHIMENTO DE FALHAS? QUAL O ESFORÇO PARA RESOLVER PROBLEMAS/MATAR CURIOSIDADES? function [desordem,duplicado]=dataconsist(horalidadeci) [ordhld,iordhld]=sort(horalidadeci); diordhld=diff(iordhld); desordem=sum(diordhld<0)~=0; %fora da ordem? if (desordem==1) fp=fopen('datasdesordenadas.txt','wt'); fprintf(fp,'Linha Data\n'); fiordhld=find(diordhld<0)+1; for i=1:length(fiordhld) fprintf(fp,'%5i %15.2f\n',fiordhld(i),horalidadeci(iordhld(i))); end fclose(fp); end [temp,idupli] = exdupli (horalidadeci); duplicado=~isempty(idupli); if (duplicado==1) fp=fopen('datasduplicadas.txt','wt'); fprintf(fp,'Linha Data\n'); for i=1:length(idupli) fprintf(fp,'%5i %15.2f\n',idupli(i),horalidadeci(idupli(i))); end fclose(fp); end QUAL O ESFORÇO PARA RESOLVER PROBLEMAS/MATAR CURIOSIDADES? 3-Estrutura de condição function [desordem,duplicado]=dataconsist(horalidadeci) 6-Funções [ordhld,iordhld]=sort(horalidadeci); diordhld=diff(iordhld); desordem=sum(diordhld<0)~=0; %fora da ordem? 1if (desordem==1) fp=fopen('datasdesordenadas.txt','wt'); Comentários fprintf(fp,'Linha Data\n'); fiordhld=find(diordhld<0)+1; 5-Estrutura de for i=1:length(fiordhld) fprintf(fp,'%5i %15.2f\n',fiordhld(i),horalidadeci(iordhld(i))); dados end 4-Estrutura de fclose(fp); repetição end [temp,idupli] = exdupli (horalidadeci); 2duplicado=~isempty(idupli); Modularização if (duplicado==1) fp=fopen('datasduplicadas.txt','wt'); 7-Arquivo fprintf(fp,'Linha Data\n'); for i=1:length(idupli) fprintf(fp,'%5i %15.2f\n',idupli(i),horalidadeci(idupli(i))); end fclose(fp); 7end Arquivo 7Arquivo OBJETIVO Esta disciplina objetiva facilitar ao aluno o aprendizado necessário para que desenvolva seus próprios programas de computador para o curso de engenharia e sua vida profissional. EMENTA Introdução à organização dos computadores: Arquitetura, Sistemas Operacionais e Compiladores; Algoritmos Estruturados e Estruturas de Dados; Linguagens de Programação: Teoria e Prática em Laboratório. PROGRAMAÇÃO Conteúdo Aulas Itens Apresentação do curso; Lógica e Algoritmos, História da computação e da programação (bônus: estrutura típica de aplicativos e programas web) e introdução ao Python. Operações básicas, tipos de dados, atribuição de valor a variável, atualização e troca de valores de variáveis, convenção de código, scripts, comentários e modularização. Introdução 4 Tópicos Preliminares 3 Funções 3 Declarando e executando funções, help, comandos de entrada e saída de dados, blocos e bibliotecas. Estruturas de controle 6 Condição (if, else, elif, aninhadas), Repetição (while, for, aninhadas, acumuladores, uso de índices). Estruturas de dados 5 Homogêneo (vetores e matrizes) e Heterogêneo (registros). Arquivos 3 Abertura (tipos de acesso), escrita, encerramento e leitura. POR QUE USAR PYTHON? Qualidade de Software; Legibilidade; Permite abordagens procedural, funcional e POO. Produtividade; Portabilidade do programa; Execução em diferentes plataformas sem necessidade de alteração do código. Bibliotecas de suporte; Menos digitação, menos depuração e menos manutenção. A biblioteca do Python pode ser estendida com bibliotecas de terceiros. Gratuito. O QUE VOCÊ PODE FAZER COM PYTHON Programação de sistemas; GUIs; Os programas em Python podem pesquisar arquivos e árvores de diretórios, chamar outros programas, realizar processamentos em paralelo etc. É simples e rápida a programação de interface gráfica com o usuário. Programação para Internet; Há um grande conjunto de ferramentas para fazer programação para a internet em Python. O QUE VOCÊ PODE FAZER COM PYTHON Programação de Bancos de Dados; Interface Python para Sysbase, Oracle, Informix, ODBC, MySql, SqLite... Programação Numérica; Jogos, imagens e muito mais. MATERIAL Introdução à programação com Python (Menezes, Nilo Ney Coutinho) Aprendendo Python (Luiz, Mark) MATERIAL Python para desenvolvedores(formato web): http://ricardoduarte.github.io/python-paradesenvolvedores/ Python 3.4: https://www.python.org/downloads/ Notepad++: http://notepad-plus-plus.org/download/v6.7.5.html Outras referências e listas de exercícios em: www.ctec.ufal.br/professor/cfs APLICATIVOS Light Bot Python Programming Docs for Python Dive Into Python Qpython3 O MESMO CÓDIGO EM DIFERENTES LINGUAGENS DE PROGRAMAÇÃO: Python O MESMO CÓDIGO EM DIFERENTES LINGUAGENS DE PROGRAMAÇÃO: Matlab O MESMO CÓDIGO EM DIFERENTES LINGUAGENS DE PROGRAMAÇÃO: C O MESMO CÓDIGO EM DIFERENTES LINGUAGENS DE PROGRAMAÇÃO: Java CRITÉRIOS DE AVALIAÇÃO Somatório da médias: ≥14 pontos: Aprovado 10 pontos e < 14: Final Média = 0,6 ∗ 𝑚é𝑑𝑖𝑎𝑠 𝑏𝑖𝑚𝑒𝑠𝑡𝑟𝑎𝑖𝑠 + 2 0,4* final Média ≥ 5,5: Aprovado Média < 5,5: Reprovado por média < 10 Pontos: Reprovado por média Observações: Os Alunos terão direito a 25% de faltas da carga horária total (aulas e provas) da disciplina (60 horas x 25% = 15horas). Ultrapassando esse limite, o aluno será Reprovado por falta, independentemente de suas notas AVALIAÇÕES 2 Avaliações Bimestrais (Abs) Composição de cada Ab: Prova Prática 1 = 40% Prova Prática 2 = 40% Mini-testes = 20% 1 Reavaliação da AB de média mais baixa e inferior a 7,0 (sete) Entrega de Listas de exercícios levará à final se precisar de até 1,0 em alguma AB e se listas correspondentes forem entregues com resolução completa e no prazo 1 Prova Final, escrita, se necessário 34 PROVAS PRÁTICAS Turma dividida em grupos de 3 ou 4 (entregue na 3a semana) Ex: 1-Abel, 2-Alda, 3-Olga, 4-Rui Individual (Questão 1) ou dupla (Todas) em cada prova a critério dos alunos Professor anuncia duplas na hora da prova Exemplos: Ímpares (1 e 3, 2 e 4), extremos (1 e 4, 2 e 3) ou menores (1 e 2, 3 e 4) Se alguém da dupla estiver atrasado, os dois membros da dupla fazem individualmente Tempo: 50 minutos Dica: formar grupo por afinidade para que cada membro ajude no estimulo/cobrança ao estudo 35 APOIO Monitores A definir Apoio complementar: PET-Eng.Ambiental Orientados de Iniciação Científica – Clebson Carvalho e Ewerton Amorim 36 VER CRONOGRAMA NO SITE www.ctec.ufal.br/professor/cfs Ou adicione à sua agenda do google: IC-Turma_A IC-Turma_D 37 MOTIVAÇÃO 38 MOTIVAÇÃO Porque alunos de Engenharia Ambiental devem ser bons em programação? Economia de tempo e esforço para a realização de tarefas repetitivas Evolução da informática e relação com diferentes campos de atuação Caracterização de ambientes Simulação de processos Previsão de comportamentos 39 CARACTERIZAÇÃO DE AMBIENTES 40 3)66360000 4)66370000 5)66470000 6)66650000 7)66710000 8)66750000 365 365 365 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 334 291 365 264 77 0 88 0 0 92 92 0 0 0 122 123 0 181 12 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 366 365 334 151 366 270 0 0 33 19 0 0 0 0 0 0 0 10 184 12 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 306 14 0 0 0 0 21 0 0 0 0 0 0 61 197 12 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 366 365 365 365 366 181 0 0 0 30 61 24 0 0 0 0 0 65 12 12 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 17 0 0 0 0 0 0 0 0 0 0 0 0 0 9 76 91 334 365 366 365 365 156 208 151 47 0 0 0 104 139 91 0 12 0 94 263 12 12 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 227 39 0 0 0 0 306 121 63 184 12 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 306 358 243 153 0 0 0 0 0 0 0 0 0 0 0 0 0 12 12 50's 60's 70's 80's 90's 00-07 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 300 0 0 0 0 0 0 0 0 0 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 365 120 0 57 365 365 365 31 0 12 12 12 12 12 12 12 12 12 12 12 12 12 12 19)67100000 2)66340000 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 337 90 0 0 0 0 244 213 153 30 0 0 0 0 0 0 0 0 0 0 0 92 12 18)66895000 1)66280000 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 365 0 0 0 0 0 306 365 0 147 153 9 22 0 0 0 0 0 0 0 0 0 0 11 12 17)66810000 i)66910000 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 306 365 31 61 153 31 2 0 0 0 0 0 0 0 120 0 0 0 12 16)66800000 h)66945000 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 166 32 0 0 0 366 365 214 365 366 365 365 365 366 324 164 12 12 12 12 12 12 12 12 12 12 12 12 12 15)66120000 g)66886000 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 0 0 0 0 0 0 0 0 0 0 1 19 0 0 0 0 0 0 0 0 0 31 366 129 365 151 61 153 31 0 0 0 0 0 0 0 0 0 0 22 0 8 14)66090000 f)66870000 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 84 0 31 0 0 0 30 2 0 92 13)66920000 e)66070004 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 333 0 0 1 0 0 0 1 0 0 0 1 0 0 31 0 0 0 334 274 31 0 0 10 77 0 104 366 33 0 0 0 0 122 0 0 0 6 1 0 16 0 12 12)66950000 d)66072000 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 366 365 365 365 261 0 0 23 0 0 0 0 0 0 0 0 0 1 0 92 11)66890000 c)66600000 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 295 0 0 0 365 0 0 0 0 0 0 0 0 0 0 0 54 0 0 155 365 365 346 145 125 0 20 0 5 1 0 0 0 0 0 31 9 184 12 10)66885000 b)66460000 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9)66880000 a)66260001 365 40's Station DE AMBIENTES (DADOS) 39 CARACTERIZAÇÃO 365 365 365 365 365 365 365 365 0 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 330 0 0 0 0 0 48 117 0 273 0 214 92 59 306 365 366 334 344 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 275 346 0 184 366 365 365 365 120 282 0 31 131 0 0 0 0 0 0 0 0 0 122 12 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 274 0 0 0 0 0 0 0 0 0 0 0 59 26 56 96 113 163 0 103 268 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 354 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 336 0 0 0 0 43 0 0 0 0 61 0 22 21 12 12 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 243 62 171 366 365 365 365 366 365 215 0 0 0 0 0 0 157 16 0 176 172 12 12 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 365 0 26 366 365 188 71 0 0 0 0 0 0 0 0 0 0 0 12 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 292 365 336 70 31 0 0 0 0 0 0 0 31 0 92 92 12 12 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 365 365 365 366 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 332 366 365 365 365 154 59 91 197 4 0 0 17 0 33 0 0 0 122 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 365 0 21 0 92 41 CARACTERIZAÇÃO DE AMBIENTES (EXTRAVASAMENTO NOS RIOS CUIABÁ, SÃO LOURENÇO E AQUIDAUANA) 42 SIMULAÇÃO DE PROCESSOS IPH4Plan – Paz et al. 2006 43 http://mtc-m17.sid.inpe.br/col/sid.inpe.br/mtc-m17@80/2006/12.11.16.47/doc/p50.pdf SIMULAÇÃO DE PROCESSOS Equações de St. Venánt 44 SIMULAÇÃO DE PROCESSOS IPH4Plan – Paz et al. 2006 http://mtc-m17.sid.inpe.br/col/sid.inpe.br/mtc-m17@80/2006/12.11.16.47/doc/p50.pdf 45 PREVISÃO DE COMPORTAMENTOS http://galileu.iph.ufrgs.br/collischonn/ClimaRH/softwares/IPH-TRIM3D- 46 PRÉVIA DA DISCIPLINA Lógica e Algoritmo História do computador e da programação Linguagem Aplicação