<prompt> Eleza mada nne kuu za sayansi ya kompyuta.  <response>: Mada nne kuu za sayansi ya kompyuta kwa ujumla huzingatiwa kuwa: 1. Algorithms na miundo ya data: Mada hii inaangazia uundaji, uchambuzi na utekelezaji wa algoriti na miundo ya data ili kutatua shida za hesabu. Hii inajumuisha mada kama vile kupanga na kutafuta algoriti, algoriti za grafu, pamoja na miundo ya data kama vile mkusanyiko, orodha zilizounganishwa, miti na grafu. 2. Lugha za programu: Mada hii inashughulikia uchunguzi wa lugha mbalimbali za programu, sintaksia na semantiki zao, pamoja na kanuni za kuandaa, kutafsiri na kutekeleza programu. Pia inajumuisha mada kama vile dhana za upangaji programu kama vile upangaji unaolenga kitu, utendakazi au utaratibu, muundo na utekelezaji wa lugha, na kanuni za ukuzaji programu. 3. Usanifu wa kompyuta: Mada hii inahusu muundo na mpangilio wa mifumo ya kompyuta katika kiwango cha vifaa. Hii ni pamoja na mada kama vile kupanga kompyuta, seti za maagizo, mifumo ya kumbukumbu, ingizopato na muundo wa mantiki dijitali. Pia inaenea kwa utafiti wa mifumo inayofanana na iliyosambazwa, pamoja na mitandao ya kompyuta na itifaki zao. 4. Nadharia ya ukokotoaji: Mada hii inahusu misingi ya kinadharia ya kompyuta, ikijumuisha mada kama vile nadharia otomatiki, lugha rasmi, nadharia ya utangamano na nadharia changamano. Inashughulikia dhana za kimsingi kama vile mashine za Turing, uwezo wa kuamua na ukamilifu wa NP, na hutoa mfumo wa hisabati wa kuelewa mapungufu na uwezo wa kompyuta. 