Programiranje umjetnom inteligencijom je proces kojim računalni stručnjaci ili programeri daju umjetnu inteligenciju (AI) računalnim uređajima. AI se obično definira kao sposobnost računalnih sustava da rade na način koji se može nazvati inteligentnim. Općenito omogućuje tim uređajima da formuliraju plan djelovanja prikladan za situaciju ili dane upute.
Programeri umjetne inteligencije obično implementiraju programiranje umjetne inteligencije koristeći mnoge programske jezike. Često koriste ove programske jezike kako bi naučili strojeve razmišljati. Obično se fokusiraju na jednu temu u kojoj žele da stroj bude stručnjak, pretvarajući ih tako u ekspertne sustave. To se često može postići prikupljanjem i pohranjivanjem informacija o određenom području, poput medicine, geologije ili robotike, u bazi podataka koja se također obično naziva baza znanja. Informacije u bazi znanja obično pomažu strojevima u rješavanju sofisticiranih problema koji im često daju dojam da su inteligentni.
Postoji mnogo aplikacija u kojima se može koristiti programiranje umjetne inteligencije. Može se koristiti unaprijed i kritičnim sustavima uključenim u istraživanje svemira, video igre i znanstvene studije. Također se može koristiti čak iu običnim automatskim kućanskim aparatima. U većini ovih aplikacija obično postoji nekoliko stalnih elemenata uključenih u programiranje umjetne inteligencije, kao što su zadani skup pravila i baza znanja. Oni su često potrebni za uspješnu simulaciju ljudske inteligencije.
Tijekom procesa programiranja umjetne inteligencije uzimaju se u obzir i drugi važni elementi računalne inteligencije kao što su automatsko upravljanje memorijom, generiranje kodova, ponavljanje izračuna i dopuštanje postupaka pretraživanja. Pomoću ovih elemenata računalni se sustavi često mogu prilagoditi promjenama okoline, tražiti rješenja problema i izvršavati dane upute. Na primjer, korisnik može htjeti rasporediti svoje datoteke silaznim redoslijedom i prema veličini. Uz programiranje umjetne inteligencije, računalni sustav često može lako i brzo obavljati većinu zadataka.