Lecture notes, interactive slide decks, and academic resources prepared for undergraduate and graduate computer science courses.

🎨 Computer Graphics ⚡ Analysis of Algorithms 🌐 Systems Architecture

🎨 Computer Graphics

Undergraduate • UNICAP

Fundamental principles of 2D and 3D computer graphics, vector representations, homogeneous transformation matrices, projections, rasterization, and real-time graphics pipelines.

Interactive Lecture Reveal.js + Canvas

2D Geometric Transformations (Part 1)

Mathematical formulation, 3x3 homogeneous coordinate matrices, and interactive dynamic simulations of translation, scaling, rotation, and shearing with live Canvas manipulation.

Interactive Lecture Reveal.js + Warsaw Beamer KaTeX + Simulators

2D Geometric Transformations (Part 2)

Inverse transformations, composite transformations (matrix order & non-commutativity), fixed-point rotation & scaling, reflections, shearing, and interactive sandbox playground.

Interactive Lecture Reveal.js + Warsaw Beamer KaTeX + Canvas & WebGL

2D Geometric Transformations (Part 3)

Transformations between 2D coordinate systems (change of basis), Method 1 (rotation angle $\theta$), Method 2 (orthonormal basis without angles), transformations in HTML5 Canvas, execution order, and pipeline integration with WebGL & Three.js.

Interactive Lecture Slide Viewer + Warsaw Beamer 3D Homogeneous Coordinates

3D Geometric Transformations (Part 1)

Transition from 2D to 3D spaces, 4D homogeneous coordinates & $4 \times 4$ matrices, 3D translation vectors, uniform/non-uniform scaling, right-hand Cartesian coordinate system, and principal axis rotations ($R_x, R_y, R_z$) with geometric derivation.

⚡ Analysis of Algorithms

Undergraduate • UNICAP

Asymptotic time and space complexity analysis, Big-O / Big-Omega / Big-Theta notation, recurrence relations (Master Theorem), algorithmic design paradigms (divide-and-conquer, greedy methods, dynamic programming), and graph algorithms.

Interactive Lecture Reveal.js + Warsaw Beamer KaTeX + Simulators

Lecture 5: Complexity of Iterative Algorithms (Part 2)

3-step complexity calculation method, quadratic sorting analysis (Selection Sort & optimized Bubble Sort with triangular sums), best/worst/average cases (Linear Search), $O(n \cdot m)$ nested loops, $O(\sqrt{n})$ primality testing, Two Pointers technique, and 10 solved exercises with interactive live step simulators.

Interactive Lecture Reveal.js + Warsaw Beamer KaTeX + Simulators

Lecture 6: Complexity of Algorithms & Data Structures

Impact of data structures on computational complexity: contiguous vs. linked memory, dynamic array resizing & amortized analysis, stacks & circular queues ($O(1)$ operations), binary search trees (BST), binary heaps & priority queues, hash tables (collisions, open addressing, rehashing), and comparative complexity trade-offs with solved exercises.

Slide Presentation PDF Slide Viewer Recurrences & Master Theorem

Lecture 6.b: Complexity of Recursive Algorithms

From iterative limits to recursive functions, modeling recurrence relations ($T(n) = aT(n/b) + f(n)$), building and analyzing recursion trees (Factorial, Merge Sort, Binary Search), and mastering the Master Theorem (intuition of the 3 cases, root vs. leaves battle, and applicability rules).

Slide Presentation PDF Slide Viewer P Class & Polynomial Time 📊 Gráfico Interativo (Slide 16)

Lecture 7: Introduction to P Problems

Complexity of computational problems vs. algorithms, definition of the P complexity class, polynomial time vs. super-polynomial/exponential growth, tractability (Cobham's thesis), decision vs. optimization problems, input encoding, and classic problems in P with solved exercises. Inclui simulador gráfico interativo do Slide 16 (2ⁿ vs n³ e n²).

🌐 Systems Architecture

Undergraduate • UNICAP

Architectural models for distributed systems, structured and flat naming, Distributed Hash Tables (DHTs), Domain Name System (DNS), clock synchronization, distributed election algorithms, and microservices fundamentals.

Interactive Lecture Reveal.js + Warsaw Beamer Live DNS Simulators

Lecture 4.3: Structured Naming & Domain Name System (DNS)

From identifiers to structured hierarchical naming, reverse FQDN resolution, DNS namespace layers (Global, Administrational, Managerial), authoritative comparative analysis, iterative vs. recursive name resolution trade-offs, and multi-tier DNS caching with interactive live Canvas simulators.