Datorzinātnes pamati

Lekciju kurss FMF datorzinātņu bakalaura programmas un programmētāja profesionālās programmas 2.kursa studentiem
Kursa kods: DatZ2059
Kursa grupa: izvēles

Lektors: Kārlis Čerāns, LU MII 421.ist., e-pasts: Karlis.Cerans@mii.lu.lv, tel. 7 213 716
Nodarbības: trešdienās 10.30 - 12.10, LU, Raiņa b. 19, 12.auditorijā.

Kursa mērķis ir iespējami vienkāršā veidā:
- dot priekšstatu par pamata idejām klasiskajās datorzinātnes nodaļās (datoru arhitektūra, programmu veidošana, izpilde un analīze, u.c.),
- dot priekšstatu par datoriku kā vienotu zinātni,
- ilustrēt matemātisko metožu izmantošanu datorzinātnē.

Kurss balstās uz vienkāršu matemātisko modeļu izveidošanu un pētīšanu aplūkojamajās datorzinātnes nozarēs.

Plānotais kursa saturs

1. Datorzinātnes priekšmets. Algoritma intuitīvais jēdziens, abstraktās mašīnas. Diskrēti, nepārtraukti un hibrīdi procesi.

2. Galīgie automāti, to izmantošana sistēmu modelēšanā. Galīgo automātu algoritmiskā analīze. Paplašināta automāta jēdziens.

3. Tjūringa mašīnas: algoritma jēdziena formalizācija. Universālā Tjūringa mašīna.

4. Datora arhitektūras līmeņi. Loģiskās shēmas, to izmantošana datoros. Saskaitīšanas algoritma paralēla realizācija. Atmiņas elementa shēma.

5. RAM mašīna - teorētisks mašīnvalodas prototips.

6. Programmēšanas valodu konkrētā un abstraktā sintakse. Jēdziens par kompilatoru un interpretatoru.

7. Programmēšanas valodu semantika. Dabiskās un operacionālās semantikas definējumi imperatīvai valodai IMP.

8. Jēdziens par programmu korektību. Daļējās un pilnās korektības apgalvojumi. Hoara loģika strukturētu programmu korektības pierādīšanai. Jēdziens par cikla invariantu un cikla variantu programmu korektības pierādījumos.

9. Algoritmiski neatrisināmas problēmas.

10. Programmu ātrdarbība (efektivitāte) un tās novērtēšana. Teorēma par redukcijas novērtēšanu.

11. Paralēlu sistēmu modeļi, to salīdzināšana. Paralēlu sistēmu valodu un bisimulācijas ekvivalences.

12. Petri tīkli, to izmantošana modelēšanā. Marķējuma pārklājamības problēma Petri tīkliem.

13. Jēdziens par funkcionālo programmēšanu. Lambda - rēķini: algoritma jēdziena formalizācija. Funkcionālās programmēšanas valodas ML elementi.
 
Mājas darbi
 Atbalsta materiāli
Eksāmena jautājumi

Vērtēšana

Minimālās prasības ieskaites saņemšanai ir iesniegti un atbildēti visi mājas darbi, kā arī spēja atbildēt uz vienkāršiem teorijas jautājumiem (tiks publicēti šajā lapā).

Ja mājas darbi iesniegti noteiktajos termiņos, spēja atbildēt visus tos, kā arī teorijas jautājumus, vienā reizē dod atzīmi "9". Kavēšanās ar mājas darbu iesniegšanu, kā arī nepieciešamība atlikt uzsāktu to atbildēšanu studenta nezināšanas dēļ, pazemina atzīmi. Ieskaiti un atzīmi nevar saņemt students, kas līdz semestra pēdējās lekcijas sākumam nav iesniedzis vismaz 50% no visiem mājas darbiem. Atzīmi "10" var saņemt students, kas ir papildus atzīmes "9" prasību izpildei semestra gaitā iesniedzis izpildītus vismaz 3 mājas darbu papilduzdevumus (paaugstinātas grūtības variantus) un spēj tos atbildēt, kā arī spēj tiem analoģiskus uzdevumus atrisināt eksāmena gaitā. Students, kam bez attaisnojoša iemesla mājas darbu termiņu kavējumu summa nedēļās (nepilna nedēļa tiek skatīta kā pilna) pārsniedz uzdoto mājas darbu skaitu, uz atzīmi "10" pretendēt nevar.