Basic Concepts, Applications, and Programming