Podprogram (anglicky subroutine) je v informatice označení části počítačového programu, kterou je možné opakovaně použít („vyvolat“) v různých místech programu, i z podprogramů. Podprogram může mít parametry, které určují, s jakými daty má pracovat, a může vracet hodnotu použitelnou při jeho vyvolání z výrazu. V některých programovacích jazycích se podprogramy rozlišují na funkce a procedury podle toho, zda vrací hodnotu nebo ne, v mnoha jazycích se pro podprogramy používá jeden z těchto termínů bez rozlišování, zda nějakou hodnotu vracejí. V objektovém programování se podprogramy tříd nazývají metody, v paralelním programování se používají koprogramy, jinde též jako volatelné unity, subprogramy a podobně.[1]
Používání procedur je důležitým nástrojem strukturovaného programování a umožňuje zavádět do programů vyšší míru abstrakce.