teaching
Core Courses (English Summaries).
🛰️ Google Earth Engine (GEE) Resources
I have developed specialized materials for using cloud computing in Remote Sensing. Note: These resources are currently available in Portuguese (PT-BR).
-
Introduction to Satellite Image Processing and Analysis with GEE A comprehensive guide and talk covering the fundamentals of the GEE JavaScript API, focusing on image collections, reducers, and environmental analysis workflows.
-
GEE in Remote Sensing and Geoprocessing Education Educational material designed to integrate cloud-based workflows into undergraduate introductory courses, replacing traditional local processing with planetary-scale data analysis.
💡 For a complete list of my teaching materials, including labs, workshops, and tutorials, please visit my Notion.
Summary
The sections below provide English summaries of the core courses I regularly teach at UFMA, highlighting their technical focus and international relevance.
⚙️ Compilers
- Level: Undergraduate (Computer Engineering)
- Languages/Tools: Java, Haskell, Python, nand2tetris framework
- Focus: Lexical analysis, parsing, code generation, and optimization through hands-on compiler construction
- Why it matters internationally: Develops transferable skills in formal languages, automata theory, and tooling — foundational for PL research, verification, and compiler engineering roles.
🧮 Algorithms & Data Structures
- Level: Undergraduate (Computer Engineering)
- Languages: Python, Java, C
- Focus: Algorithm design patterns, complexity analysis, and efficient data organization for geospatial and environmental datasets
- Project Example: Implement spatial indexing structures (R-trees, quadtrees) for land-use data queries
- Global relevance: Core competency for technical interviews and research in computational geography, optimization, and large-scale data processing.
🔄 Programming Paradigms
- Level: Undergraduate (Computer Engineering)
- Paradigms Covered: Imperative, Object-Oriented, Functional (Haskell), Logic
- Focus: Comparative analysis of paradigms; when and why to choose each approach for scientific computing problems
- International value: Prepares students for diverse codebases and research environments that mix paradigms (e.g., data engineering pipelines).
λ Functional Programming
- Level: Undergraduate elective / Graduate module
- Language: Haskell
- Focus: Pure functions, type systems, monads, and declarative problem-solving for reproducible scientific workflows
- Connection to research: Functional approaches support verifiable, side-effect-free geospatial data transformations
🗺️ Introduction to Geoprocessing (Graduate)
- Program: Professional Master’s in Environmental Science & Technology (PPGCTAmb)
- Tools: QGIS/PyQGIS, PostGIS, TerraLib, OGC standards
- Focus: Spatial data models, coordinate systems, geoprocessing workflows, and environmental modeling fundamentals
- INPE Connection: Builds on methodologies developed during my PhD research in dynamic land-use/land-cover modeling at INPE
- Output: Students produce reproducible geoprocessing pipelines for regional environmental analysis
💻 Introduction to Computers (Graduate)
- Program: Professional Master’s (PPGCTAmb / PROFCOMP)
- Focus: Information representation, computer architecture fundamentals, operating system concepts for scientific workflows