WeBWorK is a widely used open-source online homework system for science courses.
WeBWorK is supported by the Mathematical Association of America and the National Science Foundation and it comes with a National Problem Library (NPL) of over 20,000 homework problems.
The problems in the library are designed not only for lower division undergraduate math courses but also some advanced courses.
Here is an introduction to WeBWorK courtesy of Dr. Michael Nyenhuis from the Mathematics Department at Kwantlen Polytechnic University in Surrey, BC.
WebWorK syntax and functions: