The free online Stanford Introduction To Computer Science Programming Methodology CS106A Class assignments.