self-studying CS106B course from Stanford University