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.