On mitmeid erinevaid arvutiprogrammeerimise kursusi, millest mõned on väga standardsed ja teised on suunatud teatud tööstusharudele. Üldiselt saab enamikku arvutiprogrammeerimise kursusi klassifitseerida õpetatava keele, teadmiste võimaliku rakendamise või õpetatavate konkreetsete nišisüsteemide järgi. Põhilistes programmeerimiskeeletundides õpetatakse järk-järgult põhjalikumatel seanssidel ainult ühte keelt, mida tavaliselt liigitatakse selle klassi jaoks nõutava kogemuse järgi. Klassid, mis õpetavad konkreetset rakendust või tööstust, näiteks turbe- või võrgusüsteeme, ei ole tavaliselt mõeldud sissejuhatavatele õpilastele ja nõuavad piisavalt teadmisi mitte ainult programmeerimise, vaid ka üldise arvutiteaduse kohta. Nišiklassid võivad olla suunatud programmide kirjutamise õpetamisele ühte tüüpi masinatele (nt suurarvutitele) või konkreetsele abstraktsele programmeerimisliidesele (API) ning üldiselt on vaja tugevat tausta arvutiteaduses, kuigi mitte tingimata arvutiprogrammeerimises.
Üldised arvutiprogrammeerimise kursused algtasemel käsitlevad suures osas kas arvutiprogrammeerimise kõikehõlmavaid kontseptsioone keeleneutraalselt või keskenduvad vaheldumisi ainult ühes kindlas keeles programmeerimise õpetamisele. Seda tüüpi kursused on olulised, et neil oleks kindel alus, millele tugineda spetsiifilisematele teadmiste valdkondadele. Kui keeled on praktilises kasutuses tihedalt seotud, võivad mõned kursused koondada ühte tunniplaani rohkem kui ühe keele, näiteks hüperteksti märgistuskeele (HTML) ja hüperteksti eelprotsessori (PHP).
Seal on palju arvutiprogrammeerimise kursusi, mis õpetavad programmeerimise konkreetset kasutamist. Seda tüüpi kursusi on mitu, enamik neist on programmeerimiskeele või arvutiteaduse eeltingimustega. Selliseid kursusi arendatakse pidevalt uute tehnoloogiate ilmnemisel. Näiteks programmeerimine närvivõrkude, graafika ja pildistamise, reaalajas süsteemide ja turvasüsteemide jaoks.
Niši arvutiprogrammeerimise kursuste eesmärk on õpetada õpilasi kasutama üht süsteemi või metoodikat, mis ei pruugi olla laiemate programmeerimisainete puhul kohe rakendatav. Nendel klassidel on peaaegu alati keelenõuded, kuna sihtsüsteemid kasutavad tavaliselt ainult ühte keelt. Mõnel kursusel pole aga keelenõudeid, eriti kui nišisüsteem kasutab oma varakeelt. Need kursused võivad hõlmata programmeerimist ühte tüüpi mobiilseadmete, spetsiaalsete insenerisüsteemide või isegi lennundussüsteemide jaoks.
Samuti on olemas oma valdkonnas ainulaadsed arvutiprogrammeerimise kursused. Sellised klassid võivad hõlmata teoreetilisi kontseptsioone, katseid arendada programmeerimiskeeli, mis kasutavad loomulikku grammatikat või isegi programmeerimist eksperimentaalsetel masinatel. Need kursused võivad anda väärtuslikku teavet arvutite ja programmeerimiskeelte töö kohta, kuid mõnikord ei anna need praktilisi teadmisi ja jäävad selle asemel teoreetilise programmeerimise valdkonda.