Potprogram u računalnom programiranju je manji dio većeg kodnog modula koji ima vlastite interne operacije dizajnirane da opslužuju cjelokupni program. Potprogram se ponekad naziva funkcija ili metoda jer vraća određeni rezultat koda koji koristi program. Funkcionalno programiranje omogućuje svestran kod koji je raspoređen u komadima. Programeri tada biraju događaje koji pokreću funkcije koje “pokreću” korisničko iskustvo.
Različiti računalni jezici koriste funkcije potprograma na različite načine. Neki računalni programski jezici koriste model “stoga”, gdje su funkcije ili potprogrami raspoređeni u linearnom formatu i koriste se prema njihovoj neposrednoj relevantnosti. Drugi jezici koriste podijeljene formate kako bi izolirali funkcije i razlikovali ih jedne od drugih.
Ispravno korištenje potprograma dio je onoga što programer uči kada traži načine kako da računalni kod bude dostupan. Kritične strategije kao što je učinkovita upotreba potprograma idu zajedno s drugim općenitijim strategijama kao što je kako koristiti razmak u kodu ili kako ostaviti upute za promjene programa s komentarima. Aranžiranje računalnog koda na odgovarajući način uvelike olakšava drugim programerima i inženjerima da ga “čitaju” i razumiju što se događa u programu.
Sav kod koji čine potprogrami i drugi moduli koda često se pretvara u “izvršni” program. Pozivanje izvršnog programa odnosi se na ideju izvršavanja ili “pokretanja” programa. U mnogim slučajevima, izvršni program jednostavno se sastoji od zbirke potprograma. Kada netko “pokrene” program, računalo počinje s početnim redom koda, a zatim ga upućuju na druge uzastopne retke koda prema uputama zapisanim u programu.
Još jedna glavna prednost potprograma je u zadatku otklanjanja pogrešaka u programu. Ako postoji problem s programom, inženjeri mogu ući u kod i pregledavati redove koda uzastopno kako bi vidjeli gdje je problem započeo. Uz potprograme, programeri mogu gledati svaki dio koda zasebno i “obrisati” dijelove koji su bez grešaka kako bi se usredotočili na to gdje su se pogreške dogodile.
Korištenje potprograma sastavni je dio učenja računalnog programiranja. Potprogrami će često biti dio akademske nastave informatike. Programeri uče ove vještine u školi ili na terenu kako bi stvorili programe s boljom općom funkcijom i transparentnošću.