And you can turn to JavaScript and the DOM for dynamic operations.

Fill the gaps in this matrix with resizable input fields.
A = [ 1 4 ]
Left size: + - Right size: + -
(click these control buttons to see their effects.)

Each entry of the following matrix represents (x+y)n for some n. When you left-click any individual entry, it should toggle between its expanded and unexpanded forms. You can also unexpand all or expand all.

( x + y ) 0 1 ( x + y ) 1 x + y ( x + y ) 2 x 2 + 2 x y + y 2 ( x + y ) 1 x + y ( x + y ) 2 x 2 + 2 x y + y 2 ( x + y ) 3 x 3 + 3 x 2 y + 3 x y 2 + y 3 ( x + y ) 2 x 2 + 2 x y + y 2 ( x + y ) 3 x 3 + 3 x 2 y + 3 x y 2 + y 3 ( x + y ) 4 x 4 + 4 x 3 y + 6 x 2 y 2 + 4 x y 3 + y 4 ( x + y ) 3 x 3 + 3 x 2 y + 3 x y 2 + y 3 ( x + y ) 4 x 4 + 4 x 3 y + 6 x 2 y 2 + 4 x y 3 + y 4 ( x + y ) 5 x 5 + 5 x 4 y + 10 x 3 y 2 + 10 x 2 y 3 + 5 x y 4 + y 5