Automaatne programmeerimine arvutiteaduses ja arvutitehnikas viitab arvutiprogrammeerimiskoodi tootmisele mõne süsteemi või tarkvara poolt vastusena abstraktsematele kasutaja sisestustele või käskudele. Ühes mõttes kirjeldab automaatne programmeerimine iga olukorda, kus arvuti või tarkvara asendab programmeerija poolt sisestatud avalduse koodiplokiga, mis suudab avalduses kirjeldatud toiminguid konkreetselt sooritada. Kui seda kasutatakse muus tähenduses, võib automaatne programmeerimine kirjeldada eesmärki luua programmeerimiskeel või -süsteem, mis suudab intuitiivselt kokku panna valmis rakenduse, tuginedes programmeerija kõige otsesemale suunale. Automaatset programmeerimist saab kasutada mõnes arvutiuuringute valdkonnas, et viidata tehisintellekti (AI) süsteemi kavandamise protsessile, mis on võimeline iseseisvalt tootma programmi ülesande täitmiseks või ise oma koodi funktsionaalsuse parandamiseks modifitseerima.
Automaatse programmeerimise määratlus on mõnevõrra ebamäärane. Algselt kasutati seda arvutiprogrammeerimise algusaastatel, et kirjeldada abstraktsete montaažikeelsete juhiste tõlkimist laiendatud masinkoodiks. Seda nimetati automaatseks programmeerimiseks, kuna kompilaator asendas ühe inimese loetava lause automaatselt kümnete või enama masinkoodi käskudega, kirjutades programmi sisuliselt automaatselt primitiivsel viisil. Keelekompilaatorid teevad enamikul juhtudel samu toiminguid, sõltumata kasutatavast katvast programmeerimiskeelest.
Mõiste “automaatne programmeerimine” teine kasutusala on automaatse koodi genereerimise kirjeldamine. See on siis, kui integreeritud arenduskeskkonda (IDE) või muud tööriista saab visuaalselt või mõnel väga lihtsal viisil kasutada, et määrata, kuidas lõppkasutaja programmi näeks. Kui soovitud tulemus on loodud, saab tarkvara või IDE automaatselt toota funktsionaalset lähtekoodi, et saavutada tulemus ilma programmeerijapoolse täiendava sisendita.
Mõnel juhul viitab automaatne programmeerimine ka selle uurimisele, kuidas rakendada keeli nii kõrgel tasemel, et lähtekood näeks välja nagu loomulik keel. Selline programmeerimiskeel loob rakenduse automaatselt programmeerija laiaulatusliku sisendi põhjal. Ükskõik kui automaatseks keel muutub, tuleb siiski märkida, et programmeerija peab mingil hetkel käsitsi muutma koodi konkreetsete funktsioonide jaoks, kasutades programmeerimiskeelt ise.
Tehisintellekti valdkonnas tehakse mõningaid uuringuid sellise süsteemi väljatöötamiseks, mis suudab end automaatselt programmeerida lisama võimalusi, mida tal algselt ei antud. See laieneb ka AI-dele, mis on võimelised kirjutama sõltumatut tarkvara, mis suudab konkreetse probleemi lahendada. Üks rakendus oleks programmeerimiskeele loomine, mis saaks kasutada tehisintellekti kiirete programmide prototüüpide genereerimiseks.