Minicursos

Apresentação científica com Beamer

RESUMO

O Beamer é uma classe de documentos LaTeX para a criação de apresentações (slides) no formato PDF. Essa classe possui uma ampla variedade de modelos e recursos de forma que seja possível desenvolver apresentações dinâmicas criando efeitos de sobreposições e transições animadas. As vantagens de se utilizar essa classe são as mesmas de se utilizar o LaTeX para criação de documentos, cujos comandos principais também funcionam no Beamer.

Com esta classe é possível criar camadas, sobreposições e efeitos dinâmicos. É criado automaticamente um sumário dinâmico com links para cada seção e subseção que forem criadas, agilizando a forma de buscar a seção ou subseção desejada. Também pode-se escolher temas que sejam mais apropriados ao propósito da apresentação, alterando cores e layouts. Os temas são desenvolvidos para serem legíveis e úteis, de forma a facilitar a compreensão da audiência e dar uma aparência mais profissional à apresentação. Utilizaremos o editor Overleaf para realização desse curso.

REQUISITOS

Para participar desse curso é necessário que tenha um conhecimento prévio na edição de documentos utilizando o LaTeX ou que tenha concluído o curso Editoração científica com LaTeX.

EMENTA

  • A classe beamer e parâmetros

  • Estrutura de uma apresentação

      • Quadros/Frames

      • Seções

      • Índices

      • Referências bibliográficas

  • Estrutura do quadro/frame

      • Títulos

      • Subtítulos

      • Corpo

      • Rodapé

      • Menus de navegação

  • Tipos de slides

      • Textuais

      • Imagens

  • Tipos de Slides

      • Tabelas

      • Híbridos

      • Multi coluna

  • Customizando a apresentação

      • Temas e cores

      • Quadros com pausa

      • Notação matemática

      • Transições e sobreposições

  • Guia para criação de apresentações

      • Como estruturar a apresentação

      • O que colocar em um quadro

      • Como usar efeitos

      • Fazendo referências

SOBRE A AUTORA

Michelle Lau de Almeida é doutoranda e mestra em Ciências Computacionais pelo PPG-CCOMP/UERJ e possui graduação em Matemática - Licenciatura pela Universidade do Estado do Rio de Janeiro/Faculdade de Formação de Professores (UERJ/FFP). Suas áreas de interesse são: Modelagem Matemática, Biomatemática e Processos Estocásticos.

Editoração científica com LaTeX

RESUMO

O LaTeX é um sistema de preparação de documentos de alta qualidade tipográfica, muito indicado para produção de documentos e textos científicos. Uma das vantagens de utiliza-lo é que não é necessário se preocupar questões estruturais do documento pois isto é feito automaticamente, através de um processo de compilação.

O objetivo do curso é apresentar uma ferramenta específica para composição de PDFs referentes a textos científicos (artigo, resumo, pôster, apresentações), quanto a qualquer outro tipo de material textual. Nosso foco é na introdução de conceitos básicos na produção do texto em LaTeX.

REQUISITOS

Não há requisitos para a realização desse curso.

EMENTA

  • O projeto LaTeX

  • Usando o Overleaf

  • Criando seu primeiro projeto em LaTeX

  • Estrutura do texto

  • Ambiente de equações matemáticas

  • Listas

  • Inserindo figuras

  • Inserindo algoritmos

  • Organizando seu projeto

      • Organizando documentos .tex

      • Preâmbulo do documento main.tex

  • Organizando seu projeto

      • Inserindo arquivos externos .tex

  • Pacotes: inputenc, geometry, amsmath, amsthm, amssymb e graphixc

  • Bibliografia

      • Criando arquivo .bib

      • Incluindo bibliografias: artigos, livros, dissertações, teses

      • Importando as bibliografias para o arquivo .tex

  • Classe REPUERJ

SOBRE O AUTOR

Mauro Nigro Alves Junior está graduado em matemática, na habilitação de licenciatura pela Universidade do Estado do Rio de Janeiro (UERJ), onde realizou também projeto de Iniciação Científica na área de Análise Matemática. Está cursando o mestrado em Ciências Computacionais na Universidade do Estado do Rio de Janeiro (UERJ). Suas áreas de interesse são: Combinatória, Teoria dos Grafos e Algoritmo em Grafos.

Introdução à álgebra Linear numérica

RESUMO

A álgebra linear tem seu início como ramo da matemática no século XIX com a formalização de conceitos de álgebra abstrata aplicado ao que foi denominado espaço vetorial, mas suas técnicas mesmo de forma dispersa remontam ao século II.

Para muitos é considerado um dos dois pilares da matemática, sendo o outro a disciplina do Cálculo. Seu principal foco de estudo são espaços e suas transformações, constituído pelo seu elemento base denominado vetor.

Na atualidade, é utilizada em diversos campos, como em álgebra abstrata, estatística e análise funcional, em especial é largamente utilizada na crescente área de aprendizado de máquina profunda. Na verdade é bastante difícil encontrar áreas onde a álgebra linear não é utilizada de alguma forma, isso por si só demonstra a importância de se aprofundar nesta disciplina.

Com a ubiquidade do computador, faz-se necessário compreender como utilizar o computador como ferramenta, tanto para pesquisas que se utilizem da álgebra linear como para pesquisa-la diretamente. Por isso é importante entender as características e as formas de produzir os modelos teóricos dentro do computador, para então utiliza-lo como ferramenta e resolver os problemas propostos.

Neste curso, faremos uma introdução à álgebra linear numérica e a clássica utilizando sempre o computador como ferramenta. Tentarei dar enfoque ao uso da álgebra linear para construção de jogos de computador. Espero que seja proveitoso.

REQUISITOS

Para melhor aproveitar o curso é importante que o aluno tenha conhecimento de álgebra e aritmética ensinados no ensino médio, pois operações e propriedades vão ser utilizadas, estes tópicos serão revisitados, mas somente para fins de atualização e não como uma apresentação mais profunda.

É importante que o aluno tenha familiaridade com alguma linguagem de programação, pois, o computador será utilizado como ferramenta e as linguagens de programação são a forma de "conversar" com o computador. O curso vai utilizar a linguagem Python como base, mas qualquer linguagem no estilo da linguagem C (Python é uma delas) é adequada o suficiente, mas neste caso sua jornada será mais difícil.

Por sorte, o evento possui minicursos nas duas linguagens. É recomendado que todos os alunos que não tenham habilidade em programação participem pelo menos do curso de Python/C e do curso de Álgebra Linear. Participar tanto do curso de Python como de C é ainda melhor pois reforça o aprendizado.

É esperado que o aluno realize os exercícios entre as aulas, pois são parte integral do aprendizado, não realizá-los impactará diretamente na absorção do conhecimento durante o processo.

EMENTA

  • Objeto de estudo da álgebra Linear

  • Vetores

      • Definição

      • Propriedades

      • Representação computacional

      • Aplicações

  • Produto interno

      • Definição

      • Propriedades

      • Aplicações

  • Matrizes

      • Definição

      • Propriedades

      • Operações em matrizes

      • Representação computacional

      • Aplicações

  • Sistemas lineares e matrizes

  • Método de eliminação gaussiana

  • Condicionamento e estabilidade

  • Visualização de espaços bidimensionais e soluções de sistemas lineares

A ementa não será necessariamente abordada por completo, o andamento e cada tópico pode depender do interesse e do andamento, o importante é se divertir.

SOBRE O AUTOR

Igor Morgado é mestre em Ciências Computacionais pela UERJ, doutorando em ciências computacionais pelo mesmo programa, graduado em matemática (também pela UERJ). É programador por vocação, geofísico por profissão e matemático por formação. Gosta de criar jogos eletrônicos. Tem interesse em inteligência artificial, simulações físico-matemáticas e geometria computacional.

Introdução à computação científica com Python

RESUMO

O Python é uma linguagem de programação de alto nível, expressiva de tipagem dinâmica com suporte multi paradigma, suportando os modos imperativos, objetivo e funcionais.

Python conta com uma grande quantidade de estruturas de dados embutidas na linguagem, de forma clara e concisa, sem carregar excessivamente a notação.

A linguagem ganhou grande popularidade devido a um conjunto de funcionalidades que permite a elaboração de programas científicos similares ao Matlab/Octave mas contando com uma gama muito maior de bibliotecas que integram não somente as funções científicas, como as de sistema operacional e rede, permitindo assim a criação de programas completos.

Recentemente com a popularização da Inteligência artificial, o Python ganhou uma força adicional pois a maior parte das bibliotecas deste segmento são escritas em Python como Theano, Tensorflow, NLTK, Scikit.

Neste curso serão apresentados os conceitos iniciais da linguagem, desde sua mais básica introdução até a elaboração de programas simples que irão ajuda-lo na sua carreira como pesquisador e cientista.

OBSERVAÇÃO: É bem melhor que você tenha o Python instalado no seu computador antes de começar o curso. Se você usa o Windows, basta acessar o endereço do anaconda para baixar o instalador. Se você usa o Linux, pode ficar tranquilo que já tem tudo necessário para funcionar.

REQUISITOS

Não existem requisitos básicos para o curso, todos são bem vindos, mesmo aqueles sem qualquer experiência prévia com programação. Saber utilizar um editor de texto básico (como notepad no Windows ou gedit no Linux) é recomendável, também é interessante que saiba conceitos básicos do computador como abrir e salvar arquivos, navegar em diretórios. Conhecimento prévio em outras linguagens de programação podem ajudar. Conhecimento básico em matemática é desejável (números, operações algébricas, vetores, matrizes, operações em espaços vetoriais, contagem).

EMENTA

  • A linguagem Python, histórico e filosofia

  • Estruturas básicas

      • Variáveis e memória

      • Tipos (cadeias, inteiros, reais, listas)

      • Operadores aritméticos

      • Operadores lógicos

      • Estruturas de controle (laços e condicionais)

  • Funções, parâmetros e retorno

  • Objetos multi dimensionais

  • Biblioteca Numpy

      • O numpy array

      • Operações

      • Cortes e segmentação

  • Biblioteca Numpy

      • Operadores lógicos

      • Estruturas de controle (laços e condicionais)

  • Análise de performance

  • Biblioteca Matplotlib

      • A estrutura de um gráfico

      • Elaborando gráficos básicos

      • Tipos de gráficos (linha, barra, setorial, histograma, nuvem)

      • Elaborando gráficos complexos

      • Grade de gráficos

      • Exportando gráficos para artigos

SOBRE O AUTOR

Igor Morgado é mestre em Ciências Computacionais pela UERJ, doutorando em ciências computacionais pelo mesmo programa, graduado em matemática (também pela UERJ). É programador por vocação, geofísico por profissão e matemático por formação. Gosta de criar jogos eletrônicos. Tem interesse em inteligência artificial, simulações físico-matemáticas e geometria computacional.

Introdução à programação da linguagem C

RESUMO

O objetivo do curso é explorar as estruturas básicas da linguagem de programação C, capacitando o aluno a criar programas simples. Neste curso, vamos explicar sobre a estrutura do programa em C e a sua compilação, assim como tipos simples de variáveis. Também iremos entender sobre estruturas de tomada de decisão e repetição.

A Linguagem de programação C é bastante flexível, pois permite ao usuário a criação de estruturas complexas a partir de estruturas básicas. Além disso, ela permite cálculos matemáticos com alta precisão. Por permitir ao usuário controle sobre alocação de memória e tamanho das variáveis, a linguagem C tem um vasto uso em computação de alto desempenho.

REQUISITOS

Para o curso, é desejável ter conhecimentos básicos em lógica de programação. Inglês básico é um facilitador.

EMENTA

  • Conceitos básicos de C

      • Estrutura de um programa

      • Compilação

  • Variáveis

      • Tipos primitivos

      • Estruturas

      • Ponteiros e arrays

  • Entrada e Saída de informações

  • Operadores

      • Aritméticos

      • Lógicos

  • Condicionais

  • Estruturas de repetição

  • Criação de funções

  • Funções matemáticas

SOBRE A AUTORA

Atualmente cursando Doutorado em Computação pela Universidade Federal Fluminense (UFF), Rafaela é bacharel em Ciência da Computação e mestre em Ciências Computacionais pela Universidade do Estado do Rio de Janeiro (UERJ). Ela participou da Fase Regional da Maratona de Programação da ACM-ICPC em 2014, 2015, 2016 e 2018, sendo classificada para a Final Brasileira em 2016. Também participou da Maratona de Programação da IEEE, a IEEExtreme, em 2014, 2015 e 2016, sendo a 12º, 9º e 10º colocada no ranking do Brasil, respectivamente.

Python+MySQL: manipulação e disponibilização de dados

RESUMO

No contexto de inteligência orientada a dados - Data Driven, é muito comum que o uso estratégico dos dados só seja possível quando informações contidas em diferentes ferramentas (ou ambientes) estabelecem comunicação entre si. Em geral essa comunicação acontece seguindo protocolos adequados que atendam quem vai fornecer e quem vai receber a informação. E uma das formas mais adotadas para esse fim é a disponibilização de dados é por meio de uma interface de programação de aplicativos; ou, uma API. Nesse minicurso será abordada uma estratégia para disponibilização de dados presentes em um banco MySQL por meio de uma API construída à partir do uso de bibliotecas da linguagem de programação Python. A construção do modelo será contextualizada em um problema de leitura de dados elementar. E serão apresentados, também, alguns conceitos fundamentais da linguagem Python, das bibliotecas utilizadas e do banco de dados MySQL.

REQUISITOS

Noções de lógica de programação, bancos de dados e REST API's são bem vindas. Entretanto, não são exigidos conhecimentos avançados para o minicurso, uma vez que todas as execuções serão detalhadas à medida em que forem realizadas. É importante ressaltar que grande parte dos comandos são específicos das bibliotecas, podendo, muitas vezes, serem novos mesmo para programadores mais experientes.

O projeto será totalmente desenvolvido em sistema operacional Linux (Ubuntu 18.04) e questões relativas à instalação das ferramentas adotadas não serão abordadas. Por essa razão, pode-se verificar tutoriais de instalação em ambientes Linux e Windows.

EMENTA

  • Apresentação do minicurso

  • Contextualização do problema

  • Introdução ao banco de dados MySQL

  • Populando o banco de dados e testando queries

  • Introdução ao Python

  • O Sublime Text3

  • A biblioteca mysql.connector

  • Conectando-se ao MySQL pelo Python3

  • Restfull API's

  • Introdução à biblioteca flask

  • Verbos HTTP e códigos de status

  • Construção da aplicação

  • Testando os dados disponibilizados

  • Discussão final

SOBRE O AUTOR

Alesson é doutorando em Ciências Computacionais pelo CComp-UERJ com ênfase em Redes Neurais, Deep Learning e Ciência de Dados. Foi analista de software na Indeva by VTEX e tem experiência em desenvolvimento web, gestão de bancos de dados, Restfull API's e modelagem computacional.