These are scribed notes from a graduate courses on Computational Complexity oﬀered atthe University of California at Berkeley in the Fall of 2002, based on notes scribed bystudents in Spring 2001 and on additional notes scribed in Fall 2002. I added notes andreferences in May 2004.The ﬁrst 15 lectures cover fundamental material. The remaining lectures cover moreadvanced material, that is diﬀerent each time I teach the class. In these Fall 2002 notes,there are lectures on H˚astad’s optimal inapproximability results, lower bounds for parity inbounded depth-circuits, lower bounds in proof-complexity, and pseudorandom generatorsand extractors.The notes have been only minimally edited, and there may be several errors and impre-cisions.I will be happy to receive comments, criticism and corrections about these notes.The syllabus for the course was developed jointly with Sanjeev Arora. Sanjeev wrotethe notes on Yao’s XOR Lemma (Lecture 11). Many people, and especially Avi Wigderson,were kind enough to answer my questions about various topics covered in these notes.I wish to thank the scribes Scott Aaronson, Andrej Bogdanov, Allison Coates, Kama-lika Chaudhuri, Steve Chien, Jittat Fakcharoenphol, Chris Harrelson, Iordanis Kerenidis,Lawrence Ip, Ranjit Jhala, Fran¸cois Labelle, John Leen, Michael Manapat, ManikandanNarayanan, Mark Pilloﬀ, Vinayak Prabhu, Samantha Riesenfeld, Stephen Sorkin, KunalTalwar, Jason Waddle, Dror Weitz, Beini Zhou.Berkeley, May 2004.Luca Trevisan