Teaching Overview

I teach across master’s, specialization, and undergraduate programs with emphasis on Digital & Embedded Systems, Computer Architecture, Wireless/Visual Sensor Networks, IoT, and dependable smart-city applications. My classes combine clear theoretical foundations with hands-on implementation, structured labs, and design projects that mirror real engineering practice.

Master’s (PGCC/UEFS)

PGCC008 — Computer Systems

Foundations of modern computer systems spanning architecture, operating systems, concurrency, and distributed execution. Short, incremental labs connect concepts to performance, reliability, and reproducibility.


Specialization (CESiC/UEFS)

SIC002 — Digital Processing

Core DSP principles for embedded/real-time contexts: sampling, transforms, spectral analysis, filtering, fixed- vs. floating-point trade-offs, and implementation on MCU/FPGA targets.


Undergraduate (UEFS)

* Computer Engineering — Technology Department

TEC401 — Digital Circuits

Combinational/sequential logic, FSMs, synchronous timing, hazards, and HDL/FPGA prototyping with timing-aware verification.

TEC402 — Computer Architecture

ISAs and datapaths, pipeline design, memory hierarchy, I/O subsystems, performance modeling, and case studies bridging hardware and systems software.

TEC418 — Introduction to Hardware

Digital building blocks, sensor/actuator interfacing, signal integrity, PCB/SoC basics, and toolchain onboarding for hardware projects.

TEC440 — Microprocessors & Microcontrollers

MCU architecture, C/assembly for embedded targets, peripheral drivers (GPIO, UART, SPI, I²C), interrupts/timers/ADC, and bare-metal bring-up.

TEC470 — Embedded Systems

RTOS concepts, task scheduling, device drivers, low-power strategies, and communication stacks for IoT nodes with end-to-end integration labs.

TEC497 — Introduction to Electronics

Essential analog/digital concepts for computer engineers: devices, biasing, amplification, conversion, and mixed-signal interfaces.

TEC498 — Design of Digital Circuits

RTL design flow, constraints, synthesis, verification, timing closure, and FPGA implementation of system-level designs.

TEC499 — Digital Systems

System integration with sensors/actuators, communication interfaces, and test/validation of complete digital/embedded solutions.

TEC502 — Concurrency & Connectivity

Concurrent programming models, synchronization, and networking fundamentals for connected embedded applications and distributed services.

* Computer Engineering — Exact Sciences Department

EXA801 — Algorithms & Programming I

Algorithmic thinking, control structures, functions, and basic data types. Emphasis on problem decomposition and code clarity through weekly coding exercises.

EXA805 — Programming II

Data abstraction and modular design with structured programming; introduction to object-oriented concepts, error handling, and automated testing.

EXA806 — Data Structures

Arrays, lists, stacks, queues, trees, hash tables, and graphs with complexity analysis and application-driven labs in search, sorting, and indexing.

EXA810 — Database

Relational modeling, SQL, normalization, transactions, and introductory query optimization. Project work covers schema design and CRUD APIs.

EXA811 — Systems Analysis & Design

Requirements engineering, UML modeling, architectural styles, and iterative design. Students deliver specs and prototypes for a real-world scenario.

EXA862 — Numerical Methods

Root finding, linear systems, interpolation/approximation, and ODEs with computational assignments oriented to engineering applications.