An introductory book organized as a course covering one semester, designed for level one undergraduate or sub-degree students taking a first course in software development or programming. The topic is taught from first principles and assumes no prior knowledge of the subject.