The document introduces aspect oriented programming (AOP) as a programming paradigm that deals with cross-cutting concerns, such as logging and transaction management, that cut across multiple parts of a system. It discusses how AOP increases modularity and manages these cross-cutting concerns through features like advice, pointcuts, and weaving. Benefits of AOP include cleaner code, reduced repetition, and better encapsulation. Common AOP techniques are interceptors using dependency injection containers and IL code weaving tools.