This course will provide a thorough introduction to QGIS plugin development starting with the most basic plugins to advanced plugins, map tool plugins, processing plugins and more. We will touch on the entire ecosystem of tools used to create plugins including Qt Designer and the QGIS specific Qt Widgets, the Plugin Builder 3 plugin for creating the basic plugin template files, the First Aid plugin for debugging plugins within QGIS, the pb_tool command line tool for building, packaging, and deploying your plugin, the Sphinx system for documentation, Git and Github for verion control, collaboration, and issue tracking, and much more.