This document provides an introduction to natural language processing (NLP). It discusses the importance and challenges of language, provides a brief history of NLP, and introduces the Natural Language Toolkit (NLTK) for practical NLP. The key points covered are: (1) Language is complex and diverse, yet critical for human communication and civilization. (2) Early NLP drew from formal language theory, symbolic logic, and the principle of compositionality to computationally model language. (3) Current challenges include analyzing vast online text and developing more human-like dialogue systems.