You covered exponent rules (product, quotient, power of a power), negative and fractional exponents, and square/cube roots. You implemented fast exponentiation by squaring in time, space, and extended it to modular exponentiation for large values.
You also learned how powers of connect to bit manipulation, which common exponent values to memorize, and why integer arithmetic beats floating-point for root computations.