Protseduuriline programmeerimine on termin, millega tähistatakse viisi, kuidas arvutiprogrammeerija programmi kirjutab. See tarkvara arendamise meetod, mida nimetatakse ka rakenduseks, keerleb koodi võimalikult lühidal hoidmise ümber. Samuti keskendutakse väga konkreetsele lõpptulemusele, mis tuleb saavutada. Imperatiivne programmeerimine on teine termin, mida kasutatakse seda tüüpi arendustegevuse tähistamiseks. Kui programmil on teatud tulemuste saavutamiseks teatud sammud kohustuslik, siis öeldakse, et kood on kirjutatud vastavalt protseduurilisele programmeerimisele.
Tarkvaraarendajad, kes programmeerivad selle kontseptsiooni järgi, kirjutavad tavaliselt enne koodi kirjutamist esialgse plaani lihtsas keeles. Protseduurilist programmeerimist õpetatakse sageli algajatele arvutiteaduse üliõpilastele selle taga oleva loogika tõttu. Neid julgustatakse mõtlema mitmetele vajalikele sammudele, mida eesmärgi saavutamiseks tuleb astuda.
Näiteks võib professor julgustada klassi panema kirja vajalikud toimingud maapähklivõi ja tarretisega võileiva valmistamiseks. Teeseldes, et ei tea, kuidas võileiba valmistada, proovivad kõik õpilased samm-sammult juhiseid järgida. Nad õpivad, et kui midagi välja jäetakse, ei saa nad lõpptooteks, mida nad tahtsid, nii et nad õpivad täpsete juhiste tähtsust. See arusaam aitab õpilast, kui ta hakkab tegelikku koodi kirjutama.
Protseduuriline programmeerimine ei ole alati rakenduste kodeerimise eelistatud meetod. Väga keeruline tarkvara võib nõuda sõna otseses mõttes tuhandeid koodiridu, muutes sellega töötamise inimeste meeskonnal mõnevõrra keerulisemaks. Mõned programmeerijad on arvamusel, et äärmiselt suurte rakenduste haldamine võib ühel arendajal muutuda keeruliseks.
Mõned inimesed arvavad ekslikult, et protseduurilises programmeerimiskeeles on võimatu kirjutada väga suurt või keerulist tarkvara. Teatud programme võib objektorienteeritud programmeerimise (OOP) abil hõlpsamini kirjutada, kuid see ei tähenda, et neid ei saaks protseduuriliselt arendada. Linuxi tuum, mis on avatud lähtekoodiga operatsioonisüsteemi tuum, on kirjutatud protseduurilise programmeerimise abil. Teised suuremad rakendused, nagu Apache server, Drupali sisuhaldussüsteem ja Samba, on kõik kirjutatud sel viisil. Need rakendused on suured ja valdav enamus programmeerijaid peab neid keerukateks.
Olemasolevate protseduuriliste programmeerimiskeelte hulgas on C, Fortran ja Python. Paljud olulised rakendused ja utiliidid on sellistes keeltes kodeeritud. Näiteks Anaconda, Fedora Linuxi installer, on kirjutatud Pythonis, nagu ka erinevad tarkvarahaldustööriistad.