profile photo

Matteo Cileneo Savan

Estudante de Ciência da Computação na UFSCar

Gostaria de mostrar, por meio deste portfólio, um pouco do meu trabalho e das minhas habilidades.

LinkedIn | Email

Microsoft OneNote: realização organizacional

Sem dúvida, essa foi a minha primeira conquista. Durante o curso, fiz questão de ter a melhor organização possível e, para tanto, utilizei o Microsoft OneNote para organizar minhas anotações, tarefas e projetos desde o primeiro semestre.

Desenvolvimento de programa com estruturas de dados em C

A linguagem C me acompanhou desde o início da universidade. Após uma excelente matéria de Introdução à Programação, tive vontade de me aprofundar na linguagem e li toda a parte sobre os comandos de C do livro C Completo e Total, de Herbert Schildt.

Deixo aqui um link para um programa feito em C para a matéria de Estruturas de Dados. A ideia do meu grupo foi de criar um aplicativo divertido, que rodasse no prompt de comando e que nos permitisse aplicar o conhecimento adquirido na matéria.

Foi neste momento que tive o meu primeiro contato com projetos maiores, e o resultado foi tão bom que me motivou a entrar, futuramente, na entidade de desenvolvimento de jogos digitais Maritacas Gamedev, da UFSCar Sorocaba.

Programação orientada a objetos e Java

Meu início na programação orientada a objetos se deu em 2021. Eu cheguei a ler integralmente dois livros voltados ao assunto: Java para Iniciantes: Crie, Compile e Execute Programas Java Rapidamente, de Herbert Schildt e Orientação a Objetos: Aprenda seus conceitos e suas aplicabilidades de forma efetiva, de Thiago Leite Carvalho.

Deixo um pouco de uma aplicação cliente-servidor que fiz usando sockets em Java e Python, e algumas capturas de tela das anotações que eu fiz na época. Ela está disponível no meu GitHub, basta clicar aqui.

Aproveito para dizer que li os capítulos recomendados pelo meu professor de Redes do livro do James F. Kurose, Redes de Computadores e a Internet: Uma Abordagem Top-down, e tenho conhecimento teórico de protocolos, camadas, endereçamento IP, TCP, UDP e HTTP, dentre outras coisas.

Web

Tive contato com desenvolvimento web duas vezes durante o curso. Nesses momentos, tive que lidar com o desenvolvimento front-end e back-end, usar padrões de projeto, arquitetura de software, Trello e fazer a documentação. Tive contato com PHP, Javascript, HTML, CSS, JSP, servlets, requisições, uso de APIs, AJAX, JDBC, jQuery e GitHub.

O projeto de Web que exigiu maior complexidade foi o desenvolvimento de um site de leilão, que devia receber lances, ser atualizado em tempo real (AJAX), guardar em um banco de dados todos os lances e os produtos disponíveis, utilizar a arquitetura MVC e o padrão de projeto DAO. O resultado está ao lado e o projeto está disponível aqui.

Aprendizados extras sobre HTML e CSS

E também, por vontade própria, li o livro de HTML e CSS de John Duckett, e usei todo o aprendizado para aplicá-lo em um site pessoal, com print screens ao lado. Fiz esforço para usar cada elemento do livro, desde tags básicas até recursos avançados de personalização.

Banco de dados e SQL

Tenho experiência acadêmica com bancos de dados relacionais e consultas SQL, envolvendo modelagem, construção de queries, subqueries e funções de agregação. Além da sintaxe, tive uma matéria da faculdade dedicada a otimização de consultas, buscando reduzir redundâncias, melhorar a organização das tabelas e estruturar queries de forma eficiente e legível. Meu foco é garantir clareza, desempenho e consistência na manipulação dos dados, aplicando boas práticas de organização e pensamento analítico voltado à eficiência.

Durante as aulas de Banco de Dados, fiz a leitura de todos os capítulos do livro do Sistemas de Banco de Dados, de Elmasri e Navathe, o que me proporcionou um conhecimento teórico aprofundado sobre o assunto, além da prática em SQL. Também fiz inúmeras consultas à documentação oficial do PotgreSQL.

Jogo digital: HajaPaciência!

O meu segundo projeto na entidade Gamedev foi um jogo de cartas. Ele também teve desafios de organização e o resultado foi exatamente como eu e minha dupla gostaríamos: um game refinado, com muita animações, efeitos sonoros e recursos bem implementados. Nele, foi explorado o uso real de estruturas de dados e princípios de interação humano-computador (IHC).

Clique aqui e divirta-se!

Segundo projeto na entidade Gamedev: Costurando Sonhos

Sem dúvida, esse foi um dos projetos mais desafiadores que já participei. Exigiu muita organização, planejamento, dedicação e estudo. Trata-se de um jogo no estilo visual novel, e meu grupo conseguiu concluir todo o projeto em um único semestre da faculdade - feito que nunca tinha acontecido antes com um jogo dessa complexidade, segundo a coordenação da entidade. O resultado foi surpreendente e minha equipe recebeu muitos elogios.

Foi fundamental o uso de ferramentas de organização, como o Trello, comunicação e uso de técnicas vistas no livro que li chamado Scrum: A arte de fazer o dobro do trabalho na metade do tempo de Jeff Sutherland, como a técnica do uso de raças de cachorros para "pesar" a dificuldade de implementação de tarefas.

Veja - e jogue - clicando aqui!.

Inteligência artificial

O meu primeiro contato com dados e inteligência artificial foi num projeto de clustering em que a propsta era a de implementar os algoritmos de agrupamento k-médias, single-link e complete-link usando Python, e depois aplicá-los a diferentes conjuntos de dados. O projeto exigiu a implementação dos algoritmos do zero, sendo permitido usar apenas bibliotecas para manipulação de dados, como NumPy e Pandas. Também era necessário fazer análise dos resultados usando índice Rand.

Foi um projeto muito importante para mim pois me fez desenvolver interesse pela área de análise de dados, o que me levou a cursar futuramente a matéria optativa de Aprendizado de Máquina.

Projeto de Machine Learning — Classificação de Estados Fisiológicos

Desenvolvi, com muito orgulho, um modelo de aprendizado de máquina para classificação de estados fisiológicos (estresse, atividade aeróbica e anaeróbica) a partir de dados reais e ruidosos coletados por smartwatch usando Python (NumPy, Pandas, scikit-learn). O projeto exigiu limpeza, análise exploratória dos dados, seleção de atributos relevantes, normalização, avaliação de múltiplos modelos e análise de underfitting e overfitting. Ele está disponível aqui. Participei de todas as etapas de implementação do projeto e foi muito enriquecedor.

Importante ressaltar que a documentação foi muito importante, e no repositório você irá encontrar um relatório detalhado feito em LaTex.

Aplicativo Android: temporizador e recursos para exercícios físicos

No segundo semestre de 2025, desenvolvi um aplicativo Android usando Flutter e Dart. Ele é um temporizador para exercícios físicos que permite criar treinos personalizados, com recursos como contagem regressiva, pausa, retomada e reinício. O app é intuitivo e fácil de usar, projetado para ajudar os usuários a manterem o foco durante os treinos.

Ele possui recursos muito úteis, como a possibilidade de adicionar vídeos do YouTube para cada exercício através de API, tradução para cinco idiomas diferentes, opções de temas, notificação para acompanhamento do andamento da rotina e uma agenda com registros de treinos feitos.

Developed by: Matteo Cileneo Savan