Learning basic logic and fundamental programming techniques are essential for new programmers to succeed. A distinctive fundamentals-first approach and clear, concise writing style characterize this unique new text. Basic programming concepts are introduced on control statements, loops, functions, and arrays before object-oriented programming is discussed. Abstract concepts are carefully and concretely explained using simple, short, and stimulating examples. Explanations are presented in brief segments, with many figures and tables.