This course provides an introduction to cooperative and noncooperative game theory for both static and dynamic models, with deterministic as well as stochastic descriptions. The coverage will encompass both theoretical and algorithmic developments, with applications in networking and communications. To follow the course, familiarity with optimization techniques, basics in algebra and analysis, and some background in probability theory are required.