This should get you into the right direction. Since this is a homework question, I'm not going to give you a complete solution.
Quick Reference (MIPS instructions, calling convention, etc):
http://www.mips.com/media/files/MD00565-2B-MIPS32-QRC-01.01.pdf
An example assembly function that computes the dot product of a 32-bit and a 16-bit vector in a little-Endian environment:
http://code.google.com/p/mips32-asm/source/browse/dot32x16.S
Here you can see how the elements of arrays are accessed.
Note that ".set reorder" makes the assembler reorder the instructions and/or include NOPs to deal with the so-called delay slot. In case your professor wants to see that you understood the delay slot issue, you should order the instructions yourself properly and/or write your own NOP after a branch/jump.