Ementa, instruções e informações sobre o curso
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
images
misc
.gitignore
ISSUE_TEMPLATE.md
LICENSE.md
README.md
environment.yml
introducao.md

README.md

Matemática Especial I (IME03-1366)

images/mesh.png

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

  1. 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.
  2. Crie uma conta gratuita no site github.com.
  3. Se inscreva na lista de emails (ver Informações).
  4. 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

Creative Commons 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.