Porto · Universidade Fernando Pessoa
Christophe Soares
Sou professor de engenharia informática. Ensino a construir para a web, do servidor ao browser, e investigo sistemas que se misturam com o dia a dia: IoT, visão por computador e IA aplicada.
Ensino a construir para a web. Investigo IoT, visão por computador e IA. E desenvolvo o software que junta tudo.
Agora
- Dirijo a licenciatura em Engenharia Informática da UFP.
- Investigo no LIACC, da Universidade do Porto, e trabalho nos projetos Precision Plastics e EMBRACE.
- Em julho, ajudei a coordenar um bootcamp de carros autónomos do Ciência Viva para alunos do secundário.
Em números
- 2009 na UFP desde
- 199 trabalhos orientados, da licenciatura ao doutoramento
- 142 projetos finais de licenciatura
- 56 júris de provas académicas
Código para aprender
Projetos que escrevi para as aulas e para atividades com alunos. Estão no GitHub para ler, correr e alterar.
Continua a descer para os ver passar.
-
Excerto de MicroServicesDemo/docker-compose.yml
auth-service: build: ./auth-service environment: DB_HOST: postgres DB_NAME: auth_db JWT_SECRET: supersecretkey-change-in-production # teaching moment: don't hardcode secrets PORT: "8001" networks: - demo-netMicroServicesDemo
Uma galeria de fotografias partida em serviços em Go, Node e Python, ligados por RabbitMQ e montados com Docker Compose.
-
Excerto de MicroFrontend/shell/webpack.config.js
new ModuleFederationPlugin({ name: 'shell', remotes: { appA: 'appA@http://localhost:3001/remoteEntry.js', appB: 'appB@http://localhost:3002/remoteEntry.js', appC: 'appC@http://localhost:3003/remoteEntry.js', }, })MicroFrontend
Micro frontends com o Module Federation do Webpack 5: uma página feita de quatro aplicações React independentes.
-
Excerto de CienciaVivaUFP2026/day1/robot_kit.py
def andar_frente(segundos, velocidade=VELOCIDADE_PADRAO): """ Anda em frente, em linha reta, durante 'segundos'. Exemplo: robot.andar_frente(1.5) """ _car.steering = _val_steering(0.0) _car.throttle = _val_throttle(velocidade) time.sleep(segundos) parar()CienciaVivaUFP2026
Três dias de robótica com o JetRacer para alunos do secundário: da primeira curva ao SLAM com LIDAR.
-
Excerto de ArtificialIntelligenceGame/app.js
const detections = await faceapi .detectSingleFace(video, new faceapi.TinyFaceDetectorOptions({ inputSize: 416, scoreThreshold: 0.3 })) .withFaceLandmarks() .withFaceExpressions();ArtificialIntelligenceGame
O Desafio das Emoções: um jogo que lê a expressão facial pela câmara, no browser e numa app de secretária.
-
Excerto de Golang-Gin-Swagger-Docker-Hot-Reload/cmd/api/main.go
evaluation := router.Group("/api/v1/evaluation") evaluation.Use(authMiddleware) { evaluation.POST("/", evaluationHandler.Create) evaluation.GET("/", evaluationHandler.GetAll) evaluation.GET("/:id", evaluationHandler.GetByID) evaluation.PUT("/:id", evaluationHandler.Update) evaluation.DELETE("/:id", evaluationHandler.Delete) }Golang-
Gin- Swagger- Docker- Hot- Reload Uma API REST em Go com Gin, JWT e documentação Swagger, que recarrega sozinha dentro do Docker.
-
+57
E mais 57 repositórios públicos, de exercícios de JavaScript a APIs em Spring Boot.
Todos os repositórios no GitHub
Investigação
Computação ubíqua e IoT, visão por computador, aprendizagem automática e blockchain, quase sempre ao serviço de espaços inteligentes e de sistemas de apoio à saúde.
Investigador no LIACC, Universidade do Porto, desde 2017
O percurso completo, as orientações e os júris estão no CV académico. homepage.ufp.pt/csoares
Áreas
-
Computação ubíqua
Computação que se integra nos espaços do dia a dia, com sistemas sensíveis ao contexto.
-
IoT e edge
Redes de sensores e computação na periferia para monitorizar a indústria e o ambiente.
-
Visão por computador
Deteção de objetos e de eventos, e análise de imagem médica.
-
Aprendizagem automática
Aprendizagem profunda e por reforço aplicada, dos wearables às aplicações web.
-
Blockchain
Diplomas, identidade auto-soberana, revogação e voto eletrónico.
-
Espaços inteligentes e saúde
Tecnologias que ajudam as pessoas a viver de forma independente e segura.
Projetos
-
Precision Plastics
Em cursoIoT e IA para tornar a reciclagem de plásticos mais precisa.
-
EMBRACE
Em cursoPrevenir o declínio associado à idade: treino cognitivo, exercício, nutrição e literacia digital.
-
ESG4NPO
ConcluídoUma ferramenta assistida por IA para a sustentabilidade de organizações sem fins lucrativos.
-
Secure Horizons
ConcluídoAprendizagem federada e cloud para proteger dados de saúde.
Publicações recentes
-
2024
-
RevistaVisão por computador
Object and Event Detection Pipeline for Rink Hockey Games Future Internet · doi:10.3390/fi16060179 -
RevistaIoT e edge
An Efficient Edge Computing-Enabled Network for Used Cooking Oil Collection Sensors · doi:10.3390/s24072236 -
RevistaVisão por computador
Advancements in Glaucoma Diagnosis: The Role of AI in Medical Imaging Diagnostics · doi:10.3390/diagnostics14050530 -
ConferênciaAprendizagem automática
A Reinforcement Learning Based Recommender System Framework for Web Apps EPIA 2024 · doi:10.1007/978-3-031-73497-7_34
-
-
2023
-
RevistaBlockchain
Blockchain-Based Electronic Voting: A Secure and Transparent Solution Cryptography · doi:10.3390/cryptography7020027
-
-
2022
-
RevistaBlockchain
Analysis of Revocation Mechanisms for Blockchain Applications and a Proposed Model Based in Self-Sovereign Identity Journal of Information Technology Management · doi:10.22059/jitm.2022.87848 -
ConferênciaAprendizagem automática
Classification of Table Tennis Strokes in Wearable Device using Deep Learning ICAART 2022 · doi:10.5220/0010871100003116 -
ConferênciaIoT e edge
An IoT Sensing System for Managing Industrial FOG-Separators SmartNets 2022 · doi:10.1109/SmartNets55823.2022.9993981
-
Contacto
Para aulas, orientações ou colaborações, o email é o melhor caminho.
Praça 9 de Abril, 349
4249-004 Porto