An introduction to programming methodology using a high level language, advanced operating system usage, problem-solving, algorithm development, control structures, arrays, program style, design correctness and documentation techniques, as well as a brief overview of computer systems and computer history.