Matemática Especial I (IME03-1366)
Informações
Disciplina da graduação em Oceanografia da UERJ.
Aulas: Terça 12:30 - 15:10 e Quinta 12:30 - 14:20 - Sala 6134F
Professor: Leonardo Uieda - Sala 2019A
Horário de atendimento: Segunda 13:30 - 14:30
Laboratório: Os alunos podem utilizar o laboratório LAGEX (sala 2031A)
Lista de e-mail: Todos os alunos devem se cadastrar na lista de email do curso:
https://groups.google.com/forum/#!forum/mat-esp-2016
TODOS OS COMUNICADOS SERÃO FEITOS ATRAVÉS DA LISTA DE E-MAIL.
Conteúdo
Conduta
Respeito
Não tolero comportamento ofensivo durante as aulas ou na lista de emails e nem a ridicularização dos colegas. Não existem perguntas "bestas", "irrelevantes", "óbvias", etc.
Assiduidade
Será cobrada presença em sala de aula através assinatura de lista de presença. Alunos que faltarem a uma aula receberão zero na atividade prática daquela aula. O limite de faltas em hora aula é de 18h (~3 aulas).
Plágio
Cuidado com cópias e plágio. Trabalhos que forem cópias integral ou parcial do trabalho de colegas ou de outras fontes receberão nota zero. Citem todas suas fontes de informação (mesmo que seja a Wikipedia).
Ementa
Introdução ao estudo da computação. Conceito de algoritmo e programação estruturada. Linguagens de programação. Procedimentos, funções e módulos.
Erros nas aproximações numéricas. Resolução numérica de equações algébricas e transcendentes. Interpolação. Diferenciação e integração numérica. Resolução numérica de equações diferenciais. Resolução de triângulos esféricos. Solução numérica de sistemas lineares. Aplicações à oceanografia.
Objetivos
- Aprender conceitos básicos de programação e pensamento computacional.
- Aprender métodos para a solução numérica de problemas matemáticos.
- Aplicar os conceitos de programação e cálculo numérico a problemas reais da oceanografia e ciências exatas.
Preparação
- Sigam as instruções abaixo para instalar no seu computador os programas que iremos utilizar nas aulas práticas e para fazer as tarefas. Faça isso antes de vir para a aula. Também levarei instaladores na aula caso alguém tenha problemas.
- Crie uma conta gratuita no site github.com.
- Se inscreva na lista de emails (ver Informações).
- Se tiver problemas, escreva para a lista.
Windows
- Baixe e instale o git for Windows. Com isso você terá acesso ao git e ao bash.
- Baixe e instale o Anaconda Python Distribution. Selecione o instalador que reflete o seu sistema (Windows, 32 ou 64bits). Utilize esse guia para saber se seu computador é 32 ou 64bits. Tenha certeza de que está baixando a versão do Python 3.5, não a 2.7.
- Baixe e instale o Sublime Text
Linux
- Você já deve ter o bash instalado.
- Você também já deve ter um editor de texto instalado.
- Instale o git pelo seu gerenciador de pacotes. Por exemplo, no Ubuntu e
derivados digite em um terminal:
sudo apt-get install git
- Baixe e instale o Anaconda Python Distribution. Selecione o instalador que reflete o seu sistema (Linux, 32 ou 64bits). Tenha certeza de que está baixando a versão do Python 3.5, não a 2.7.
Mac
- Você já deve ter o bash instalado. Procure o aplicativo "Terminal" em
/Applications/Utilities
. - Para instalar o git: MacOS > 10.9, baixe e instale o mais recente instalador com nome "mavericks" dessa lista. MacOS10.5-10.8, use o instalador com nome "snow-leopard" da lista.
- Baixe e instale o editor de texto Sublime Text.
- Baixe e instale o Anaconda Python Distribution. Selecione o instalador que reflete o seu sistema (Mac OSX). Tenha certeza de que está baixando a versão do Python 3.5, não a 2.7.
Aulas
As aulas terão componentes expositivos e práticos, com 60-80% do tempo dedicado às atividades práticas.
Vamos abordar um tema por semana. Cada tema terá uma atividade prática valendo nota (ver Avaliação abaixo).
Eu encorajo vocês a perguntarem e discutirem durante as aulas. Não deixe uma dúvida para depois. Minha política é que não existem perguntas "bestas", "irrelevantes", "óbvias". Não tolero comportamento ofensivo e a ridicularização dos colegas (ver Conduta).
As práticas serão feitas em grupo, geralmente no computador. Por favor, tragam seus laptops para a aula. Alunos que não possuem computador não serão prejudicados mas precisaremos de ao menos um computador por grupo.
Textos, códigos, slides, etc estarão disponíveis nesse site.
Avaliação
A média final será a média das notas das práticas. Para não prejudicar alunos que faltarem eventualmente, vou descartar a menor nota. Os alunos deverão entregar a solução ao final da aula (um por grupo).
Utilizaremos um checklist para avaliar a solução entregue de cada prática (veja em checklist-correcao.md).
Cada critério de avaliação poderá receber pontuação:
- Total: se atender perfeitamente ao critério
- Parcial: (metade da nota) se atender parcialmente ao critério
- Zero: se falhar ao critério
Note que a nota máxima, incluindo a tarefa bônus, é 10. Cada grupo terá acesso a correção de sua solução.
Cronograma
Esse cronograma ainda não é definitivo. Provavelmente sofrerá alterações ao longo do semestre.
Cada prática inclui links e referências para o material relevante.
Aula | Tema | Prática |
---|---|---|
0 | Apresentação e introdução a algoritmos e logica de programação | introducao |
1 | Controle de versão com git | intro-git |
2 | Python 1: variáveis, bibliotecas e gráficos simples | python-1 |
3 | Python 2: condições e repetindo ações | python-2 |
4 | Python 3: criando funções e programação defensiva | python-3 |
5 | Python 4: extraindo informação de arquivos de texto | python-4 |
6 | Aula de revisão e dúvidas (Semana do IME) | |
7 | Integração numérica | integracao-numerica |
8 | Matrizes e vetores | matrizes e vetores |
9 | Método das diferenças finitas: Convecção | diferencas-finitas-conveccao |
10 | Método das diferenças finitas: Difusão | diferencas-finitas-difusao |
11 | Solução de sistemas lineares | -- |
12 | Método dos mínimos quadrados | -- |
13 | Triângulos esféricos e representação de dados em mapas | -- |
14 | Aplicação a dados de geociências | capstone |
Bibliografia
Software Carpentry. Especificamente as lições:
- Version control with git (v5.3)
- The Unix Shell (v5.3)
- Programming with Python (v5.3)
- Programming with Python (v4)
Python Scientific Lecture Notes. http://scipy-lectures.github.io/
Pilgrim, M. (2004), Dive Into Python, Apress, Berkeley, CA : New York. [disponível online]
Numerical Methods, Wikibooks, https://en.wikibooks.org/wiki/Numerical_Methods
Press, W. H., Teukolsky, S. A, Vetterling, W. T. e Flannery, B. P. Numerical recipes in C: The art of scientific computing, second edition, Cambridge University Press, 1992
Como em tudo na vida, o Google é seu melhor amigo. Há uma vastidão de recursos online sobre programação em Python. A maioria está em inglês então busquem com palavras chave nessa língua. Exemplos: "scientific python", "python programming".
Vocês vão se deparar diversas vezes com o site StackOverflow de perguntas e respostas. Esse site é um dos melhores e mais utilizados recursos para programação. As repostas são quase sempre de qualidade.
Dicas para usar o terminal: Notas de aula Métodos Computacionais em Física, UFRJ. Mais dicas e material na página da disciplina
Uma boa introdução ao Linux em Português aqui
License
"Material didático da disciplina Matemática Especial"
by Leonardo Uieda is licensed under a
Creative Commons Attribution 4.0 International License.
Credits
Original logo image (images/mesh.png) by NASA Goddard Space Flight Center.