My attempt at Stanfords CS106A free online course