Introductory courses in combinatorial optimization are popular at the upper undergraduate/graduate levels in computer science, industrial engineering, and business management/OR, owed to its wide applications in these fields. There are several published textbooks that treat this course and the authors have used many of them in their own teaching experiences. This present text fills a gap and is organized with a stress on methodology and relevant content, providing a step-by-step approach for the student to become proficient in solving combinatorial optimization problems. Applications and problems are considered via recent technology developments including wireless communication, cloud computing, social networks, and machine learning, to name several, and the reader is led to the frontiers of combinatorial optimization. Each chapter presents common problems, such as minimum spanning tree, shortest path, maximum matching, network flow, set-cover, as well as key algorithms, such as greedy algorithm, dynamic programming, augmenting path, and divide-and-conquer. Historical notes, ample exercises in every chapter, strategically placed graphics, and an extensive bibliography are amongst the gems of this textbook.