Laboratório Virtual de Métodos Numéricos - LVMN
Contents
Laboratório Virtual de Métodos Numéricos - LVMN#
O Laboratório Virtual de Métodos Numéricos - LVMN é constituído de uma coleção de materiais digitais para cursos de graduação em ciências exatas, computacionais e engenharias que possuam disciplinas de métodos numéricos ou afins em seus currículos.
Apresentação#
O conteúdo principal é ensinado ao longo de um semestre na disciplina Cálculo Numérico (GDCOC0072) ministrada pelo Prof. Gustavo Oliveira e atende principalmente os cursos de graduação do Centro de Informática da UFPB e de alguns outros centros. O material começou a ser desenvolvido pelo professor no âmbito do Projeto Numbiosis em 2017. Até o ano de 2020, recebeu suporte do Programa Institucional de Monitoria com contribuições ativas. De 2021 a 2024, o projeto teve suporte reduzido com atualizações esporádicas. A partir de 2025, uma nova etapa de melhorias foi iniciada para contemplar extensões de conteúdo para aplicações voltadas a dados e modernizações para um espectro novo de ciência e engenharia computacional.
Objetivos do LVMN#
Os objetivos gerais do LVMN são:
Apresentar o universo dos métodos numéricos a estudantes de graduação em ciências exatas e no eixo STEM;
Estimular a aprendizagem ativa através da resolução de projetos aplicados; e
Fomentar a maturidade do pensamento computacional e as habilidades de programação através do ecossistema Python para métodos numéricos;
Conteúdo#
O curso contém uma série de materiais didáticos que estimulam várias habilidades e proporcionam que estudantes com necessidades distintas de aprendizagem encontrem o recurso mais adequuado para si. O conteúdo está organizado em cadernos interativos que incluem:
exemplos teóricos e aplicados;
banco de dados de problemas reais;
algoritmos demonstrativos;
receitas de código;
sessões práticas dedicadas;
dicas de programação e
recortes suplementares.
O curso cobre não apenas os assuntos clássicos que costumam ser ensinados em disciplinas equivalentes em qualquer curso superior de universidades nacionais ou estrangeiras, mas também traz inserções sobre assuntos modernos que se entrelaçam para produzir uma engenharia cada vez mais centrada em dados. Este ebook pretende mostrar que conceitos tradicionais são a base para os métodos numéricos de nova geração, que criam interdisciplinaridade com temáticas do estado-da-arte, tais como aprendizado de máquina, redes neurais informadas pela física, modelos de ordem reduzida e outras técnicas que fazem interface com a ciência da computação e outaas áreas aplicadas.
Estrutura e Programa#
O curso é normalmente realizado em 4 módulos. Cada módulo possui cadernos, sessões de código e avaliações como seus componentes. Nos cadernos estão os capítulos do conteúdo principal do curso. As sessões de código (code sessions) são aulas dedicadas ao estudo de funções de utilidade predefinidas em módulos Python para resolução direta de problemas aplicados. Essas funções são apresentadas como “receitas prontas” que abrem caminhos para implementações de maior complexidade.
A estrutura resumida segue abaixo:
Módulo 1 (5h)
Conteúdo (4h)
Avaliação: Quiz (1h)
Módulo 2 (15h)
Conteúdo (13h)
Avaliação: Prova (2h)
Módulo 3 (20h)
Conteúdo (16h)
Avaliação: Projeto Computacional (4h)
Módulo 4 (20h)
Conteúdo (16h)
Avaliação: Projeto Computacional Sorteado (4h)
Módulo Especial
Sob demanda
O programa do curso segue abaixo:
Módulo 1#
Modelagem integrada e engenharia computacional
Módulo 2#
Determinação de raízes de equações unidimensionais
Caderno 3 - Do Contínuo ao Computável: Discretização e Erros Numéricos (1h)
Caderno 4 - Domando Equações Não Lineares: Inspeção e Descobrimento de Raízes (2h)
Caderno 5 - Método da Bisseção: A Arte de Cindir e Convergir (2h)
Caderno 6 - Método de Newton: Sair pela Tangente sem Perder o Rumo (2h)
Avaliação: Prova (2h)
Módulo 3#
Resolução de sistemas de equações multidimensionais
Em atualização
Avaliação: Projeto Computacional (4h)
Módulo 4#
Teoria da aproximação
Em atualização
Integração numérica
Em atualização
Avaliação: Projeto Computacional Sorteado (4h)
Módulo especial#
Diferenciação numérica e resolução de equações diferenciais
Listas de exercícios#
Estes cadernos interativos contém o solucionário matemático e computacional de alguns exercícios gerais de menor complexidade. As listas são apenas para fixação de conceitos.
Obs.: este conteúdo será descontinuado no futuro.
Metodologia de Avaliação#
O curso é composto por 4 avaliações, organizadas de acordo com o seguinte quadro:
Módulo |
ID |
Modalidade |
Tipo |
Peso |
Descrição |
---|---|---|---|---|---|
1 |
P1 |
Quiz |
Individual |
1/3 |
Ver manual de orientação |
2 |
P2 |
Prova |
Individual |
1/3 |
Ver manual de orientação |
3 |
P3 |
Projeto |
Equipe |
1/3 |
Ver manual de orientação |
4 |
P4 |
Projeto |
Equipe |
1/3 |
Ver manual de orientação |
Manuais de orientação#
Exemplos de projetos#
Para exemplo de projetos high-grade, clique aqui.
Cálculo da nota final#
A nota final do curso, \(NF\), é dada pela seguinte média ponderada:
com \(N = \min\{{N_i}\}_{i=1}^M\),
onde:
\(M\): quantidade de módulos
\(p_i\): peso da \(i\)-ésima avaliação
\(p\): peso da avaliação \(N\)
Conteúdo Complementar#
Alguns materiais complementares não contemplados no curso regular ou não explorados com maior detalhamento são fornecidos aqui para aguçar o interesse de estudantes para temas que orbitam ao redor dos métodos numéricos e são úteis para aplicações gerais.
Apostila introdutória de Python#
Python é a linguagem escolhida para o curso devido à sua disponibilidade gratuita, versatilidade e facilidade de aprendizagem. Como forma de nivelamento dos estudantes que não possuem experiência com Python, a apostila Introdução à Linguagem Python para Ciências Computacionais e Engenharia, traduzido pelo professor a partir dos trabalhos do Prof. Hans Fanghor (Universidade de Southampton/UK), tem o propósito de fornecer conhecimento básico da linguagem para uso no curso e uma oportunidade de estudo paralelo. Caso você se enquadre neste grupo de estudantes, não deixe de consultar este material.
Tópicos#
Recortes#
Os recortes contemplam curiosidades ou anedotas sobre tópicos variados. Acesse-os pela barra lateral de navegação.
Obs.: este conteúdo está sendo gradualmente incorporado no livro-texto e será descontinuado no futuro.
Como contribuir?#
O material passa por revisões periodicamente, mas possui suporte limitado. O projeto Numbiosis não recebe financiamento direto para bolsas. Todo o conteúdo é desenvolvido pelo Prof. Gustavo Oliveira e discentes (monitores e/ou tutores bolsistas ou voluntários, bem como aqueles que se matriculam no curso e contribuem com melhorias). Caso queira contribuir com melhorias, apontamento de erros ou sugestões diversas, fale com o professor.
Orientações acadêmicas#
Consulte projetos do Prof. Gustavo nos horizontes estratégicos do TRIL Lab. Saiba mais na página pessoal do Prof. Gustavo.
Temas para TCCs#
Você é de algum curso do Centro de Informática e deseja trabalhar com alguma tecnologia ou materiais digitais para ensino? Em particular, no âmbito do projeto Numbiosis e do LVMN existem vários tópicos possíveis, tais como:
Implementação de gráficos interativos para visualização 3D de processos iterativos.
Desenvolvimento e refatorações de códigos demonstrativos em Python com aplicações diversas para fins didáticos.
Geração de material didático portável (projeto de ensino).
Integração de ferramentas de autograding.
Programação orientada a objetos para criação de smart courses (módulos para geração de questões customizadas, avaliações e compilações em Latex).
Desenvolvimento de códigos para paradigmas modernos (métodos informados por física, aprendizado de máquina).
Métodos numéricos guiados por modelos de linguagem.