It's quite some time, since I've done scheme. I'm more familiar with emacs lisp. So take with a grain of salt:
(define (make-exponentiation base exponent)
(list '^ base exponent))
(define (base exponentiation)
(car (cdr exponentiation)))
(define (exponent exponentiation)
(car (cdr (cdr exponentiation))))
(define (exponentiation? exp)
(equal? (car exp) '^))
(define (derive-exponentiation exp var)
(let ((b (base exp))
(e (exponent exp)))
(make-product e (make-exponentiation b (- e 1))))