revision of Section 1.2: Problem Definition
revision of Section 2: Algorithm Design and Analysis