SECCOM 2019 - Minicursos
Submeta seu minicurso!
A SECCOM - Semana Acadêmica de Ciência da Computação e Sistemas de Informação - é um evento anual que ocorre na UFSC, trazendo palestras e minicursos de temas além do que é visto na graduação. Assim como na última edição, esta contará com uma Maratona de Programação e um Capture The Flag, e ainda temos alguns extras por vir! Mas não daremos spoilers :).
Planejamento Geral
A SECCOM 2019 está marcada para os dias 30 de Setembro a 4 de Outubro.
- Keynotes¹: 9
- Palestras: 11 (8 diurnas, 3 noturnas)
- Minicursos: no mínimo 4
¹: Keynotes são palestras de convidados especiais da comissão organizadora.
Para os minicursos matutinos (direcionados ao público de Ciência da Computação):
- Poderão ter duração de 1 ou 2 dias, sendo 2 ou 3 créditos²/dia;
- Serão oferecidos de segunda a quinta-feira (30 de Setembro a 3 Outubro), começando às 8h20, 9h10 ou 10h10, e terminando até 12h.
Já os minicursos noturnos (direcionados ao público de Sistemas de Informação):
- Poderão ter duração de 1 ou 2 dias, sendo 2 créditos²/dia;
- Serão oferecidos segunda, terça e quinta-feira (30 de Setembro, 1 e 3 de Outubro), das 20h20 às 22h.
²: Cada crédito tem 50min.
Veja exemplos de horários nesta imagem. Será possibilitado ter mais de um minicurso no mesmo horário.
Escolha dos Minicursos
Os minicursos serão escolhidos pelo público conforme seus critérios de interesse. A Comissão Organizadora apenas filtrará minicursos que não correspondam ao objetivo da semana acadêmica (temas fora do escopo, por exemplo). Também serão escolhidos os minicursos de forma a diversificar os temas (evitando muitos minicursos do mesmo assunto, mesmo que tenham sido os mais bem votados).
Lembramos que o objetivo do minicurso é divulgação do conhecimento prático (como ferramentas e técnicas), e portanto esse deve ser seu foco. A SECCOM possui espaços próprios para divulgação de empresas/negócios/etc., e para esses fins você pode entrar em contato com a comissão organizadora (seccom.ufsc@gmail.com) informando seu interesse.
O que submeter
- Título do minicurso;
- Resumo: uma descrição do minicurso, de até 2 parágrafos, dando uma visão geral sobre o que será tratado nele, e quais ferramentas/técnicas serão apresentadas;
- Conhecimentos necessários: quais os conhecimentos técnicos/ferramentas que o público deveria conhecer para poder aproveitar o conteúdo abordado no minicurso;
- Restrições de horário: caso você estritamente não consiga ministrar em um dos horários, informe qual(is);
- Ferramentas necessárias: descrever quais ferramentas precisam já estar instaladas nas máquinas (para deixarmos tudo pronto antes da semana), incluindo a versão mínima delas.
Propostas
Introdução a computação quântica utilizando o simulador QSystem
A computação quântica toma proveito de fenômenos da mecânica quântica para resolver alguns problemas de maneira mais eficiente do que a computação clássica.
Este minicurso aborda conceitos básicos de computação quântica, como, bit quântico, superposição, entrelaçamento, medida e representação. Sendo todos eles vistos na prática com o simulador quântico QSystem para Python.
É recomendado um conhecimento básico de álgebra linear e Python.
LGPD data privacy
Uma abordagem leve, interessante e engraçada sobre a Lei Geral de Proteção de Dados, a partir de um cidadão e cientista de dados! Alguém que terá muito em breve direitos, deveres e pontos a se atentar...
Antes de qualquer sensação de qualquer sensação de pânico ou noites em claro por causa do assunto, iremos trazer através de uma linguagem simples e amigável os principais pontos da lei.
Como empresas que atuam/tratam dados (in)diretamente deverão se atentar e também como nós pessoas se portaremos junto a mesma.
Tanto a Ciência de Dados como a Inteligência Artificial serão impactadas pela lei e como de alguma podemos atuar perante ela ....
Matemática Funcional em Scheme
Scheme é um dos principais "dialetos" de Lisp, que adere ao paradigma funcional e é a segunda linguagem de programação mais antiga ainda amplamente utilizada.
Devido à sua flexibilidade e simplicidade, Scheme é usada para extender e customizar o comportamento de outros softwares e foi adotada como a linguagem de scripting oficial do GNU Project.
O minicurso abordará algumas técnicas de programação funcional em Scheme para algoritmos matemáticos e métodos numéricos, incluindo:
- Tipos de recursão e tail call optimization
- Abstração com funções de alta ordem e closures
- Paradigma de fluxo de dados (streams): ao infinito e além com lazy evaluation
- Processamento simbólico e metalinguagem
É necessário conhecimento prévio de programação, não necessariamente do paradigma funcional.
' or 1=1: Introdução a vulnerabilidades em aplicações Web
Sendo atualmente o modelo de aplicação mais difundido no mercado, as aplicações web vão desde sistemas complexos como e-commerces até simples APIs. Conhecer e saber como explorar as vulnerabilidades que uma aplicação web pode ter é vital para todo profissional que atua ou deseja atuar nas áreas relacionadas ao ecossistema da web, seja para detectá-las durante uma análise de segurança ou para previnir que as mesmas aconteçam durante o processo de desenvolvimento.
O minicurso terá a duração de 2 dias e será totalmente prático. Durante o primeiro dia será utilizada uma aplicação open source que foi construída de forma vulnerável propositalmente para ilustrar e demonstrar os tipos mais comuns de vulnerabilidades encontradas em uma aplicação web, como explorar as falhas, os impactos causados pelo processo de exploração e como mitigar o problema. Durante o segundo dia serão apresentados diferentes exemplos de ambientes preparados com vulnerabilidades em aplicações web (máquinas virtuais vulneráveis para estudo de segurança), para ilustrar cenários um pouco mais realista dos impactos que podem ser causados, através de uma sessão guiada, onde os participantes irão dar ideias do que fazer para avançar no processo.
É necessário conhecimento básico em desenvolvimento para web e conhecimento básico em Linux.
Durante o curso utilizaremos as seguintes ferramentas:
- Mozilla Firefox v68.0.2 (https://www.mozilla.org/en-US/firefox/new/)
- FoxyProxy Standard Add-on v6.6.2 (https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-standard/)
- Burp Suite Community Edition v2.1.02 (https://portswigger.net/burp/communitydownload)
- DVWA v1.9 (https://github.com/ethicalhack3r/DVWA) - É um processo bem trabalhoso para instalar, recomendo o uso da versão em Docker
- Netcat, wget, curl - Já vem por padrão na maioria dos Unix
Restrições de horário: Terça e Quinta, no período noturno (2 créditos/dia)
Programação Linear e Inteira
- Resumo: Programação Linear e Inteira são áreas da Computação que contribuem com soluções para problemas de otimização. Tipicamente temos um problema onde queremos maximizar ou minimizar uma função linear sujeita a algumas restrições lineares. Há formas de medir a qualidade de cada solução. Por isso, é esperado que as soluções sugeridas sejam valorizadas.
Neste minicurso apresentaremos:
1. Alguns problemas de otimização;
2. Uma modelagem para problemas de otimização; e
3. O uso de uma ferramenta que resolve problemas de otimização.
- Conhecimentos necessários: Introdução à programação e álgebra linear.
- Restrições de horário: Terça depois das 15h (não posso); quinta o dia todo (não posso); quarta das 8h até 12 (não posso).
- Ferramentas necessárias: Gurobi (versão acadêmica - https://www.gurobi.com).
Minicurso planejado para 2 dias com 2 créditos para cada dia.
Python
Descrição: Minicurso introdutório de Python, com ênfase nas ferramentas necessárias para iniciar um projeto em Python e na sintaxe básica e utilidades diversas da linguagem.
Conhecimento prévio: Conhecimento básico de linha de comando e uso de algum editor de texto.
Restrição de horário: Conversando certinho dá de fazer qualquer horário.
Ferramentas necessárias: Distribuição Linux com Python 3.6 ou 3.7. Poetry instalado (pode ser a nível de usuário). (disponibilizadas pela SECCOM).