cs

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.

Ver o código CV académico

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-net

    MicroServicesDemo

    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 curso 2024–2027 · COMPETE2030-FEDER

    IoT e IA para tornar a reciclagem de plásticos mais precisa.

  • EMBRACE

    Em curso 2025–2028 · COMPETE2030-FEDER

    Prevenir o declínio associado à idade: treino cognitivo, exercício, nutrição e literacia digital.

  • ESG4NPO

    Concluído 2025–2026 · FCT

    Uma ferramenta assistida por IA para a sustentabilidade de organizações sem fins lucrativos.

  • Secure Horizons

    Concluído 2024–2025 · FCT

    Aprendizagem federada e cloud para proteger dados de saúde.

Publicações recentes

  1. 2024

    1. RevistaVisão por computador

      Object and Event Detection Pipeline for Rink Hockey Games Future Internet · doi:10.3390/fi16060179
    2. RevistaIoT e edge

      An Efficient Edge Computing-Enabled Network for Used Cooking Oil Collection Sensors · doi:10.3390/s24072236
    3. RevistaVisão por computador

      Advancements in Glaucoma Diagnosis: The Role of AI in Medical Imaging Diagnostics · doi:10.3390/diagnostics14050530
    4. 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
  2. 2023

    1. RevistaBlockchain

      Blockchain-Based Electronic Voting: A Secure and Transparent Solution Cryptography · doi:10.3390/cryptography7020027
  3. 2022

    1. 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
    2. ConferênciaAprendizagem automática

      Classification of Table Tennis Strokes in Wearable Device using Deep Learning ICAART 2022 · doi:10.5220/0010871100003116
    3. ConferênciaIoT e edge

      An IoT Sensing System for Managing Industrial FOG-Separators SmartNets 2022 · doi:10.1109/SmartNets55823.2022.9993981

Lista completa na Ciência Vitae

Contacto

Para aulas, orientações ou colaborações, o email é o melhor caminho.

Universidade Fernando Pessoa
Praça 9 de Abril, 349
4249-004 Porto

Perfis