Reasoning about the knowledge and beliefs of a single agent or group of agents is an interdisciplinary concern spanning computer science, game theory, philosophy, linguistics and statistics. Inspired, in part, by issues in these different "application" areas, many different notions of knowledge and belief have been identified and analyzed in the formal epistemology literature. The main challenge is not to argue that one particular account of belief or knowledge is primary, but, rather, to explore the logical space of definitions and identify interesting relationships between the different notions. A second challenge (especially for students) is to keep track of the many different formal frameworks used in this broad literature (typical examples include modal logics of knowledge and belief, the theory of subjective probability, but there are many variants, such as the Dempster-Shafer belief functions and conditional probability systems). This foundational course will introduce students to key methodological, conceptual and technical issues that arise when designing a formalism to make precise intuitions about the beliefs of a group of agents, and how these beliefs may change over time. There are two central questions that I will address is this course: 1. What is the precise relationship between the different formalisms describing an agent's beliefs (e.g., what is the relationship between an agent's graded beliefs and full beliefs?); and 2. How should a agent change her beliefs in response to new evidence?