This document discusses an introduction to dependency injection (DI) and inversion of control (IOC) using a console application example in C#. It will progressively introduce these concepts through examples, exploring how to transform a simple program into a more complex one while applying DI and IOC. The learning objectives are to understand what DI and IOC are, whether they are always used together, and see how they work in a simple scenario. Examples will be provided on GitHub and various DI containers like StructureMap and Autofac may be explored.