Problem analysis, algorithm development, simple program design techniques, study of a contemporary programming language, use of a computer environment and appropriate system software. -- Course Website