DE0944 Paralēlā funkcionālā programmēšana

Kods DE0944
Nosaukums Paralēlā funkcionālā programmēšana
Statuss Obligātais/Ierobežotās izvēles; Brīvās izvēles
Līmenis un tips Augstākā līmeņa, Akadēmiskais
Tematiskā joma Datorika
Struktūrvienība Datorzinātnes, informācijas tehnoloģijas un enerģētikas fakultāte
Mācībspēks Pāvels Rusakovs
Kredītpunkti 6.0
Daļas 1
Anotācija Studiju kursā tiek aplūkota paralēlā programmēšana modernajās funkcionālajās programmēšanas valodās. pārsvarā Erlang (Elixir) un F# valodās. Sniegts apskats par funkcionālo un loģisko programmēšanu, pavedieniem un dalītājiem aprēķiniem. Aplūkoti matemātiski balstīto valodu teorētiskie pamati. Programmēšanas līmenī detalizēti izskatīta pavedienu veidošana un pavedienu savstarpējā iedarbība, resursu aizsardzība, dalītie aprēķini un dalīto sistēmu modelēšana. Analizēti ar funkcionālo paralēlo programmēšanu saistīti papildu satvari un bibliotēkas. Laboratorijas darbos studentiem ir nodrošināta iespēja pilnveidot studiju kursā apgūtās teorētiskās zināšanas un programmēšanas prasmes..
Studiju kursa saturs
Saturs Pilna un nepilna laika klātienes studijas Nepilna laika neklātienes studijas
Kontaktstundas Patstāvīgais darbs Kontaktstundas Patstāvīgais darbs
Matemātiskās programmēšanas valodas. Funkcionālā un loģiskā programmēšana. 4 4 0 0
Imperatīvās un funkcionālās programmēšanas salīdzināšana. 2 2 0 0
Funkcionālās programmēšanas elementi un principi. 6 6 0 0
Funkcijas un predikāti, to līdzība un atšķirības. 4 4 0 0
Funkcionālā programmēšana objektorientētajās valodās. 4 4 0 0
Erlang valodas īpašības funkcionālās programmēšanas kontekstā. 6 6 0 0
Standarta moduļu bibliotēka un šablonu risinājumu bibliotēka – satvars OTP (Open Telecom Platform) Erlang valodā. 6 6 0 0
Pavedienu koncepcija Erlang valodā. 6 6 0 0
Aktoru modelis un tā realizācija Erlang valodā. 4 4 0 0
Savstarpējā pavedienu iedarbība Erlang valodā. Asinhronie ziņojumi. 4 4 0 0
Dalītie aprēķini Erlang valodā. 4 4 0 0
Drošums un drošība Erlang valodā. 6 6 0 0
Elixir valoda kā Erlang valodas uzbūve. 4 4 0 0
F# valoda un funkcionālā paralēlā programmēšana .NET platformā. 6 6 0 0
Funkcionālā pieeja un aktoru modelis pavedienos Scala valodā. 6 6 0 0
Paralēlās dalītās sistēmas globālajā tīmeklī. 4 4 0 0
Erlang un Elixir valodas reāllaika sistēmu kontekstā. 4 4 0 0
Kopā: 80 80 0 0
Mērķis un uzdevumi, izteikti
kompetencēs un prasmēs
Studiju kursa mērķis ir sagatavot studentu funkcionālās paradigmas lietošanai paralēlajā/laiksakritīgajā programmēšanā un dalītājiem aprēķiniem. Studiju kursa uzdevumi: - veicināt izpratni par funkcionālo un loģisko programmēšanu; - iemācīt funkcionālo un loģisko programmēšanas valodu matemātisko aparātu; - attīstīt prasmi lietot funkcionālās programmēšanas iespējas imperatīvajās valodās; - attīstīt pavedienu vadības un dalīto aprēķinu prasmes; - iemācīt pielietot funkcionālās valodas dalīto sistēmu izstrādei; - attīstīt prasmes lietot funkcionālo programmēšanu globālajā tīmeklī.
Sasniedzamie studiju
rezultāti un to vērtēšana
Spēj izstrādāt programmatūru funkcionālajās un loģiskajās valodās. - Laboratorijas darbu izpilde un aizstāvēšana. Kritēriji: spēj veidot programmu no funkcijām, predikātiem un moduļiem.
Spēj uzlabot objektorientētās programmas ar funkcionālās programmēšanas konstrukcijām. - Laboratorijas darbu izpilde un aizstāvēšana. Kritēriji: spēj pielietot funkcionālo pieeju objektorientētajās un procedurālajās programmās.
Spēj izstrādāt paralēlo/laiksakritīgo programmatūru Erlang un Elixir valodās. - Laboratorijas darbu izpilde un aizstāvēšana. Kritēriji: spēj kontrolēt pavedienus un nodrošināt resursu aizsardzību.
Spēj pielietot aktoru modeli funkcionālajās valodās. - Laboratorijas darbu izpilde un aizstāvēšana. Kritēriji: spēj implementēt aktoru modeli neatkarīgi no programmēšanas valodas.
Spēj spriest par vairākiem paralelitātes un dalīto aprēķinu jautājumiem. - Eksāmens. Kritēriji: spēj atbildēt uz teorētiskajiem jautājumiem, rakstīt programmas, atklāt un izskaidrot kļūdas eksistējošās programmās.
Studiju rezultātu vērtēšanas kritēriji
Laboratorijas darbi - 50%
Eksāmens - 50%
 
Priekšzināšanas Procedurālā programmēšana, objektorientētā programmēšana
Studiju kursa plānojums
Daļa KP Stundas Pārbaudījumi Pārbaudījumi (brīvai izvēlei)
Lekcijas Prakt. d. Lab. Ieskaite Eksāmens Darbs Ieskaite Eksāmens Darbs
1 6.0 32.0 0.0 32.0 * *

Pieteikties uz šo kursu

[Kursa apraksts PDF formātā]