Automaattinen ohjelmointi tietojenkäsittelytieteessä ja tietotekniikassa viittaa tietokoneohjelmointikoodin tuottamiseen jossakin järjestelmässä tai ohjelmistossa vastauksena abstraktimpiin käyttäjän syötteisiin tai komentoihin. Eräässä mielessä automaattinen ohjelmointi kuvaa tilannetta, jossa tietokone tai ohjelmisto korvaa ohjelmoijan syöttämän lausekkeen koodilohkoilla, jotka voivat konkreettisesti suorittaa lausunnossa kuvatut toimet. Kun sitä käytetään toisessa mielessä, automaattinen ohjelmointi voi kuvata tavoitetta luoda ohjelmointikieli tai -järjestelmä, joka voi intuitiivisesti koota täytetyn sovelluksen vain ohjelmoijan selkänojan perusteella. Automaattista ohjelmointia voidaan käyttää joillakin tietokonealan tutkimusaloilla viittaamaan tekoälyjärjestelmän (AI) suunnitteluprosessiin, joka kykenee joko tuottamaan itsenäisesti ohjelman tehtävän suorittamiseksi tai muokkaamaan omaa koodiaan toimivuuden parantamiseksi.
Automaattisen ohjelmoinnin määritelmä on hieman epämääräinen. Sitä käytettiin alun perin tietokoneohjelmoinnin alkuvuosina kuvaamaan abstraktien kokoonpanokielisten ohjeiden kääntämistä laajennettuun konekoodiin. Tätä kutsuttiin automaattiseksi ohjelmoinniksi, koska kääntäjä korvasi automaattisesti yhden ihmisen luettavan lausunnon kymmenillä tai useammilla konekoodiohjeilla, kirjoittaen ohjelman automaattisesti automaattisesti alkeellisella tavalla. Kielikääntäjät suorittavat edelleen samat toiminnot useimmissa tapauksissa riippumatta siitä, mitä päällekkäistä ohjelmointikieltä käytetään.
Toinen termi “automaattinen ohjelmointi” on kuvata automaattista koodin luomista. Tällöin integroitua kehitysympäristöä (IDE) tai muuta työkalua voidaan käyttää visuaalisesti tai jollakin erittäin helpolla tavalla määrittämään, miten loppukäyttäjä näkee ohjelman. Kun haluttu tulos on luotu, ohjelmisto tai IDE voi automaattisesti tuottaa toiminnallisen lähdekoodin saavuttaakseen tuloksen ilman ohjelmoijan lisäpanoksia.
Joissakin tapauksissa automaattinen ohjelmointi viittaa myös tutkimukseen siitä, miten kielet toteutetaan niin korkealla tasolla, että lähdekoodi näyttää luonnolliselta kieleltä. Tällainen ohjelmointikieli tuottaisi sovelluksen automaattisesti ohjelmoijan laajan tuloksen perusteella. Riippumatta siitä, kuinka automaattinen kieli tulee, on kuitenkin huomattava, että ohjelmoijan on jossain vaiheessa muokattava manuaalisesti tietyn toiminnon koodia käyttämällä itse ohjelmointikieltä.
Tekoälyn alalla tehdään jonkin verran tutkimusta sellaisen järjestelmän kehittämiseksi, joka voi automaattisesti ohjelmoida itsensä lisäämään ominaisuuksia, joita se ei alun perin saanut. Tämä ulottuu myös tekoälyihin, jotka pystyvät kirjoittamaan itsenäisiä ohjelmistoja, jotka voivat ratkaista tietyn ongelman. Yksi sovellus olisi luoda ohjelmointikieli, joka voisi käyttää tekoälyä nopeiden ohjelmien prototyyppien luomiseen.