Average-Case Complexity by Andrej Bogdanov & Luca Trevisan