Disciplina da graduação em Oceanografia da UERJ.
Aulas:
- Turma 1: Quarta 15:10 - 17:50 e Quinta 12:30 - 14:20
- Turma 2: Sexta 7:50 - 12:20
ATENÇÃO: As aulas das duas turmas serão ministradas na sala 6145-2F a
partir do dia 10/09/2015 6134F a partir do dia 16/09/2015.
Professor: Leonardo Uieda - Sala 2019A
Atendimento: Segunda 13:30 - 14:30
Laboratório: Os alunos podem utilizar o laboratório LAGEX (sala 2031A) para trabalhar nas práticas fora da aula. O LAGEX conta com computadores com Ubuntu Linux com git e Python já instalados. Também há mesas e internet para os que queiram trabalhar com seu próprio computador.
Lista de e-mail: Os alunos devem se cadastrar na lista de e-mail do curso. Use o link abaixo para cadastrar seu e-mail:
http://goo.gl/forms/I5epmPCg3e
TODOS OS COMUNICADOS SERÃO FEITOS ATRAVÉS DA LISTA DE E-MAIL.
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.
- 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.
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 fortemente que vocês perguntem e discutam 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.
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. Precisaremos de ao menos um computador por grupo.
Textos, códigos, slides, etc estarão disponíveis no site da disciplina.
Teremos duas fontes de nota:
- Média das notas das atividades práticas (70% da nota)
- Projeto realizado ao longo do curso (30% da nota)
As partes práticas das aulas serão baseadas no tema da semana. Os alunos receberão instruções para realizar a prática referente ao tema e deverão entregar a solução ao final da aula (um por grupo). A média das práticas será feita com base nas notas de cada prática (uma por tema). Para não prejudicar alunos que faltarem eventualmente, vou descartar as duas menores notas.
Os projetos serão feitos em grupo, com um tema diferente para cada grupo (a definir). O projeto será desenvolvido ao longo do semestre.
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).
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).
Software Carpentry v5.3: Version control with git
Software Carpentry v5.3: The Unix Shell
Software Carpentry v5.3: Programming with Python
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
Vocês precisarão de alguns programas para realizar as atividades práticas e o projeto:
- Python: linguagem de programação que vamos utilizar
- git: sistema de controle de versão
- bash: "Bourne Again Shell" para executar programas na linha de comando
- Algum editor de texto (Notepad, Gedit, etc)
Levarei os instaladores necessários durante a aula para que instalem tudo. Caso queriam instalar em outro computador, ou tentar instalar em casa, siga as instruções abaixo.
Vocês também devem criar uma conta gratuita no site github.com
Se tiver problemas, escreva para a lista de e-mails.
- 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.4, não a 2.7.
- Baixe e instale o Notepad++
- 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.4, não a 2.7.
- 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.4, não a 2.7.
Em breve.
Esse cronograma ainda não é definitivo. Provavelmente sofrerá alterações ao longo do semestre.
Aula | Tema | Leitura | Prática |
---|---|---|---|
1 | Apresentação e introdução a algoritmos e logica de programação | Software Carpentry: Introdução | sort |
2 | Unix shell (básico) e Controle de versão com git | Introdução ao shell, Arquivos e pastas, Tutorial interativo de git, Lição de git | git |
3 | Python: variáveis, loops, condições, leitura de arquivos e gráficos simples | Lições de Python do Software Carpentry, Tutorial matplotlib, Galeria matplotlib | python-intro |
4 | Python: estruturação de um programa, funções e programação defensiva | ||
5 | Python: numpy, mapas e gráficos avançados | ||
6 | Introdução a métodos numéricos. Integração | ||
7 | Solução de sistemas lineares | ||
8 | Método dos mínimos quadrados e Interpolação | ||
9 | Transformada de Fourier: parte 1 | ||
10 | Transformada de Fourier: parte 2 | ||
11 | Solução de equações diferenciais parciais: método das diferenças finitas | ||
12 | Solução numérica da equação de difusão | ||
13 | Solução numérica da equação da onda | ||
14 | Triângulos esféricos e representação de dados em mapas | ||
15 | Apresentação dos projetos |
"Material didático da disciplina Matemática Especial"
by Leonardo Uieda is licensed under a
Creative Commons Attribution 4.0 International License.