The development, expansion, and assessment of a step-based computer-aided tutoring system to teach linear circuit analysis is described. Circuit problems and fully worked, error-free solutions to same are created automatically and randomly with any desired characteristics, varying both the layout and numerical values. Students therefore have access to an unlimited source of both examples and practice problems of variable difficulty. A unique feature is that students input each stage of their work in a variety of forms including redrawn circuit diagrams, equations, matrix equations, numerical answers, multiple choice answers, and sketches of time-dependent waveforms. Students receive immediate feedback on the correctness of each step of their work. The solutions use analytical methods, rather than the numerical methods used in a tool like PSPICE. A total of 15 tutorials are now available, including DC and AC circuits and two on Laplace transforms. The system has been used by over 1950 students to date. A randomized, controlled laboratory-based study finds a statistically significant learning gain of 1.21 standard deviations compared to working conventional textbook problems. Another randomized, controlled classroom study found a strong preference of students for this system over a widely-used commercial publisher-based homework system, as well as higher scores.