This document discusses code switching, which is the practice of alternating between two or more languages or varieties of language in a single conversation. It provides examples of code switching and explores reasons why bilinguals may code switch, such as situational or metaphorical reasons. The document also examines different types of code switching, such as intra-sentential, inter-sentential, and turn-taking code switching. It analyzes structural patterns and typology of code switching, as well as functions of code switching as relating to social relationships and language choice.