How to write programs that make good tools, and how to program well in the process are the two main concepts. Structured programming and top down design are emphasized and applied to every program as are principles of design, testing efficiency and portabilit