
Jornada de 7 Semanas - Artigos em IA, Programação em Java e o Hackathon EducaTech
Da semana 31 até semana 38
Hackathon
Tive a oportunidade de participar do meu primeiro Hackathon, organizado pela UniFil e tendo como tema principal, educação, o "EducaTech" foi uma ótima forma de aprender sobre hackathons e como as ideias geradas lá podem ser usadas para resolucionar problemas. Fiz parte de um time de cinco pessoas, e juntos desenvolvemos nossa ideia dentro de um problema central a ser resolvido, a comunicação no ambiente educacional. Desde a validação da dor até o protótipo do projeto, aprendi muito e pretendo participar de mais hackathons no futuro. Hackathons são uma ótima oportunidade de aprendizado para os participantes e são uma ótima fonte de inovação para as organizações e empresas apoiadoras e envolvidas.
Interfaces em Java
Partindo de onde paramos com POO (Programação Orientada a Objetos), O professor Marcela Yamamoto nos ensinou o que é uma interface em Java e como são utilizadas em meio ao POO a fim de promover reutilização de código. Em sua essencia, interfaces são um contrato feito com suas subclasses, onde as subclasses devem implementar sua funções abstratas.
Já as funções abstratas em si, são funções pré-inicializadas que são utilizadas pelas subclasses, nem todas devem ser usadas em uma classe abstrata, mas em interfaces, todas devem ser implementadas.
Logo abaixo, quando digo vetores, me refiro a arranjos.
Fizemos diversas atividades práticas, colocando a mão na massa com projetos em Java, desde simples algoritmos para entender como interfaces e classes abstratas funcionam até desenvolver pequenos sistemas que gerenciam estruturas de dados como vetores e listas, que também foram conteúdos abordados pelo professor em nossas aulas recentes.
Aprendemos a diferença entre vetores e listas, um exemplo de diferença é seu tamanho dinâmico, em listas o tamanho pode mudar, já em vetores, seu tamanho é fixo, e caso seja necessário expandi-lo, será necessário criar um novo vetor e passar os dados para o novo vetor.
Alguns dos conceitos vistos em aula:
- interface
- abstract class
- abstract methods
- Array
- List
- ArrayList
- Set
Grupo de IA - Artigos e IA
IAs Supervisionadas e Não Supervisionadas
Nos encontros recentes do grupo de IA, o professor Ricardo Petri pode se aprofundar mais em Machine Learning, um exemplo são as Redes Neurais, as quais tivemos uma apresentação sobre, apresentada por um dos integrantes do grupo, Vitor, que nos mostrou como as Redes Neurais funcionam e como podem resolver problemas diversos. Além disso também entendemos melhor a diferença entre IAs Supervisionadas e IAs Não Supervisionadas, que tem como sua maior diferença a inexistencia de rótulos no caso de IAs não supervisionadas, por conta disso, as IAs não supervisionadas tem que criar sua própria forma de separação dos dados a fim de tentar classifica-los da melhor forma possível, já que aqui, não temos o sistema de classificação presente nas IAs Supervisionadas.
Artigos
Entre esses estudos, o professor também apresentou aos alunos um artigo que foi publicado por ele enquanto era estudante na UEL (Universidade Estadual de Londrina), um artigo que explorava o uso de quatro diferentes modelos de IA (LSTM, Naive, TCN e ARIMA) a fim de prever a geração de energia de uma usina fotovoltaica ao longo do tempo.
Photovoltaic Generation Forecast - Model Training and Aversarial Attack Aspects
Link: https://arts.units.it/retrieve/47a78763-b50f-4e60-8137-f6b66f962049/10.1007%40978-3-030-61380-843-Post_print.pdf
Foi muito interessante ver como é possível criar um artigo no tema de IA, explorando diferentes formas de resolver um problema e trazendo uma conclusão válida ao final, fiquei interessado em saber como se faz para publicar seu próprio artigo e durante um dos encontros, questionei o professor, que nos explicou muito bem como isso pode ser feito, por meio de revistas, onde é necessário submeter seu artigo referente a um tema proposto de acordo com as normas da revista, e após um tempo, se recebe um feedback referente ao seu artigo, dizendo se ele foi aprovado ou se vai estar necessitando de revisões para poder ser publicado.
Achei esse encontro muito interessante, assim como o artigo desenvolvido pelo professor, e caso tenha uma oportunidade de publicar um artigo próprio estaria adorando faze-lo. Quem sabe em um futuro próximo terei a oportunidade, já que o grupo de IA parece estar incentivando os alunos à tenderem ao lado da pesquisa, e com isso, terei mais tempo para focar nessa área.
Complexidade de Algoritmos
Começamos com uma nova unidade curricular, nela estudamos estruturas de dados, Big O Notation e Sorting Algorithms.
Portfolio Pessoal
Desenvolvi uma nova versão do meu portfolio pessoal. A um bom tempo tenho indo e vindo no meu protótipo do Figma a fim de descobrir o que fica melhor em um portfólio, e agora finalmente terminei a primeira versão funcional, ela já está no ar em:
https://witortena.netlify.app
Desenvolvido com React, Next.js, TailwindCSS e Motion(Framer Motion).
Tem como objetivo, ser portfólio dos meus projetos e estudos em geral, a fim de ser uma forma de entender melhor quem eu sou e servir como apresentação para possível recrutadores.
Conclusão do Pensamento Computacional
Nesse último mês terminamos o Pensamento Computacional, nas últimas aulas os alunos participaram de um pequeno Hackathon entre seus colegas, a fim de poderem aprender o que é um Hackathon e como podem participar, desenvolvendo suas próprias soluções. Foi uma ótima experiência participar do projeto do Pensamento Computacional como monitor, pois tive a oportunidade de ajudar diversos dos alunos com suas dúvidas sobre programação, desenvolvimento, IA e outros temas dos quais me interesso. É bom ver como eles aprenderam com o projeto, desde desenvolvimento WEB com HTML, CSS e Javascript e lógica de programação até participar do Hackathon da turma.
Algebra Linear
Após a nossa primeira unidade curricular de Algebra Linear, meu interesse em algebra tem aumentado, agora entendo melhor a importância da algebra em algoritmos, um ótimo exemplos são as IAs, que em uma rede neural, usamos de calculos para faze-la funcionar de forma satisfatória. Começamos o curso aprendendo o básico, com algebra booleana e entendendo como bits funcionam em um computador, e agora estamos estudando os seguintes temas:
- Vetores
- Limites
Esses temas são muito mais faceis de entender agora que já passamos por aulas explicando sobre:
- Conjuntos
- Matrizes
- Funções, regras e propriedades
- Algebra Booleana