Automatinis programavimas kompiuterių moksle ir kompiuterių inžinerijoje reiškia kompiuterio programavimo kodo kūrimą tam tikromis sistemomis ar programine įranga, reaguojant į abstraktesnius vartotojo įvestis ar komandas. Tam tikra prasme automatinis programavimas apibūdina bet kokią situaciją, kai kompiuteris ar programinė įranga pakeis programuotojo įvestą teiginį kodo bloku, galinčiu konkrečiai atlikti teiginyje aprašytus veiksmus. Naudojant kitą prasmę, automatinis programavimas gali apibūdinti tikslą sukurti programavimo kalbą ar sistemą, galinčią intuityviai surinkti užbaigtą taikomąją programą, remdamasi tik griežčiausia programuotojo kryptimi. Automatinis programavimas gali būti naudojamas kai kuriose kompiuterių tyrimų srityse, nurodant dirbtinio intelekto (AI) sistemos, galinčios savarankiškai sukurti programą, skirtą užduočiai atlikti, arba savarankiškai modifikuoti savo kodą, kad pagerintų funkcionalumą, kūrimo procesą.
Automatinio programavimo apibrėžimas yra šiek tiek neaiškus. Iš pradžių jis buvo naudojamas pirmaisiais kompiuterių programavimo metais, siekiant apibūdinti abstrakčių surinkimo kalbą panašių instrukcijų vertimą į išplėstinį mašininį kodą. Tai buvo vadinama automatiniu programavimu, nes kompiliatorius automatiškai pakeisdavo vieną žmogui suprantamą teiginį dešimtimis ar daugiau mašininio kodo instrukcijų, iš esmės automatiškai primityviai parašydamas programą. Daugeliu atvejų kalbos kompiliatoriai atlieka tuos pačius veiksmus, neatsižvelgiant į naudojamą programavimo kalbą.
Kitas termino „automatinis programavimas“ panaudojimas yra automatinio kodo generavimo apibūdinimas. Tai yra tada, kai integruota kūrimo aplinka (IDE) ar kitas įrankis gali būti naudojamas vizualiai arba kokiu nors labai paprastu būdu, norint nurodyti, kaip galutinis vartotojas matytų programą. Sukūrus pageidaujamą rezultatą, programinė įranga arba IDE gali automatiškai sukurti funkcinį šaltinio kodą, kad pasiektų rezultatą be jokios papildomos programuotojo įvesties.
Kai kuriais atvejais automatinis programavimas taip pat reiškia tyrimą, kaip įdiegti kalbas tokiu aukštu lygiu, kad šaltinio kodas atrodytų kaip natūrali kalba. Tokia programavimo kalba tada automatiškai sukurtų programą pagal plačią programuotojo įvestį. Kad ir kokia automatinė kalba taptų, reikia pažymėti, kad programuotojas tam tikru momentu turi rankiniu būdu modifikuoti kodą konkrečioms funkcijoms, naudodamas pačią programavimo kalbą.
Dirbtinio intelekto srityje atliekami tam tikri tyrimai kuriant sistemą, galinčią automatiškai užprogramuoti save, kad pridėtų galimybių, kurių iš pradžių nebuvo suteikta. Tai taip pat apima AI, galinčius parašyti nepriklausomą programinę įrangą, galinčią išspręsti konkrečią problemą. Viena iš programų būtų sukurti programavimo kalbą, kuri galėtų naudoti AI greitiems programų prototipams generuoti.