A step-based tutoring system for linear circuit analysis is being developed with the capabilities to automatically generate circuit problems with specified characteristics, including randomly generated topologies and element values. The system further generates fully-worked, error-free solutions using the methods typically taught in such classes, and accepts a rich variety of student input such as equations, matrix equations, numerical and multiple-choice answers, re-drawn circuit diagrams, and sketches of waveforms. A randomized, controlled study was conducted using paid student volunteers to compare the effectiveness of two of our tutorials in comparison to working conventional textbook-based problems. The average learning gain was only 3/100 points for the textbook users, but 29/100 points, about 10 times higher, for the tutorial users. The effect size on the post-test scores was 1.21 pooled standard deviations (Cohen d-value) and was statistically significant. A motivational survey administered to these students yielded a 0.53 point higher rating for the software than for the textbook (on a 1-5 scale). The system is being used in Spring 2013 by over 340 students in EEE 202 at Arizona State and two community colleges. About 99% of these students rated the system as "very helpful" or "somewhat helpful."