cs106A cousrse  provided by stanford for Programming Methodology