This course is concerned with linguistic meaning, i.e., the way speakers of a language associate interpretations to expressions in that language. After defining basic semantic relations among sentences, we go on to investigate the way the meaning of sentences is constructed based on the meanings of their parts. We end with considering issues of reference and discourse structure. To help us be precise we will use the tools of Propositional and Predicate Logic as well as lambda calculus.