1 / 15

Datorzinātnes pamati

Datorzinātnes pamati. Kursa saturs, ievada piezīmes. Kas ir “datorzinātne”?. Dažādas pieejamas “definīcijas”, nav mērķis izvēlēties kādu vienu. Datorzinātne ir skaitļošanas un informācijas apstrādes pētīšana, gan aparatūras, gan programmatūras līmenī.

allene
Download Presentation

Datorzinātnes pamati

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Datorzinātnes pamati Kursa saturs, ievada piezīmes

  2. Kas ir “datorzinātne”? Dažādas pieejamas “definīcijas”, nav mērķis izvēlēties kādu vienu. Datorzinātne ir skaitļošanas un informācijas apstrādes pētīšana, gan aparatūras, gan programmatūras līmenī. Datorzinātne ir zinātnes disciplīna, kas interesējas par metodēm un līdzekļiem automātiski izpildāmā datu apstrādē. Datorzinātne ir datoru pētīšana, ietverot gan aparatūru, gan programmatūru. Datorzinātne sastāv no daudzām plašām disciplīnām, kas ietver mākslīgo intelektu un programminženieriju. Datorzinātne ir algoritmu pētniecība, kas aplūko: to formālās un matemātiskās īpašības; to realizāciju aparatūrā; to lingvistisko realizāciju; to pielietojumus.

  3. Datorzinātne ir zinātne par datoriem(Newell, Perlis, Simon 1967) Datori pastāv. Ar tiem saistītās parādības ir daudzveidīgas un bagātīgas. Atliek atbildēt uz dažu skeptiķu iebildumiem. A. Zinātnes priekšmets var būt tikai dabiskas parādības (kā fizikai, bioloģijai), bet datori ir mākslīgi radīti, tādēļ tie nepakļaujas nemainīgiem likumiem, tādēļ tie nevar tikt aprakstīti un analizēti. Atbilde: (1) datori tiek aprakstīti un analizēti, (2) organiskajā ķīmijā, fizikā, bioloģijā arī tiek aplūkoti mākslīgi radīti fenomeni. Bez tam matemātika arī ir zinātne. B. Jēdziens “dators” nav precīzi definēts, šī jēdziena saturs mainās laika gaitā. Atbilde: Katrai zinātnei pētījumu objekts mainās laika gaitā. Matemātika arī ir reiz definēta kā “zinātne par daudzumiem”. C. Datorzinātne ir zinātne par algoritmiem vai programmām, nevis datoriem. Atbilde: “Datori” nozīmē “dzīvi datori” – ieskaitot gan aparatūru, gan programmas (algoritmus), gan citas ar tām saistītas lietas.

  4. Datorzinātne ir zinātne par datoriem (2)(Newell, Perlis, Simon 1967) Datori pastāv. Ar tiem saistītās parādības ir daudzveidīgas un bagātīgas. Atliek atbildēt uz dažu skeptiķu iebildumiem. D. Datori, līdzīgi kā termometri, ir instrumenti, nevis parādības, kas būtu atsevišķi pētāmas. Atbilde: Datora izmantošana pilnībā nav ietverta nevienas citas zinātnes priekšmetā.Datoru pētniecībā tiek iegūtas atziņas, kas būtiski attiecas uz pašiem datoriem, nevis uz kādu citu zinātni. E. Datorzinātne ir elektronikas (vai matemātikas, vai psiholoģijas) nozare. Atbilde. Lai pētītu datorus, var būt vajadzīga gan matemātika, gan elektronika, gan psiholoģija. Datorzinātnei var būt kopējas problēmas gan ar elektroniku, gan matemātiku, gan psiholoģiju, tomēr visa datorzinātne neiekļaujas pilnībā nevienā no tām. F. Datori attiecas uz inženieriju, nevis zinātni. Atbilde: datori attiecas gan uz inženieriju, gan zinātni. Profesionālās specializācijas vēlamais apjoms kļūs skaidrāks laika gaitā.

  5. Kāpēc pastāv datorzinātne? Kas ir īpašs iekārtai, ko sauc par datoru, kādēļ šai iekārtai tiek veltīta vesela zinātne (bet nav, piemēram, termometru zinātnes, vai radiatoru zinātnes, teleskopu zinātnes, u.tml.)? Datora spēja izpildīt ļoti plašu lietotāja uzdevumu klāstu:- aprēķinu veikšana, tekstu sagatavošana, - informācijas uzglabāšana (datu bāzes), - foto reportāžu gatavošana, mūzikas atskaņošana, - sensoru informācijas apstrāde, - e-vēstuļu nosūtīšana, utt…). Datora spēja izpildīt lietotāja simboliski kodētas instrukcijas (programmas). Datora spēja izpildīt algoritmus [var pieļaut, ka algoritms tiek kodēts arī kā citādi, nevis simboliski].

  6. Kas ir algoritms? Algoritms, kas reizina 2 patvaļīga garuma skaitļus (risina kādu citu uzdevumu) Algoritms (intuitīvā nozīmē): dažādiem ieejas datiem pielietojams (masveidīgs), viennozīmīgs (determinēts) priekšraksts elementāru (atsevišķu, diskrētu) un efektīvu (izpildāmu) instrukciju secīgai izpildei, ar mērķi atrisināt noteiktu uzdevumu, ir paveicams galīgā laikā. Vai katra programma realizē algoritmu? Masveidība - ? Mērķis - ? Garantēta apstāšanās - ?

  7. Kas ir algoritms (2)? Algoritms (intuitīvā, plašākā nozīmē): viennozīmīgs (determinēts) priekšraksts elementāru (atsevišķu, diskrētu) un efektīvu (izpildāmu) instrukciju secīgai izpildei. [+ masveidība, + mērķis, + garantēta apstāšanās ]. Katru no šīm prasībām var pievienot, atkarībā no konteksta. Ļoti daudzi algoritmi var tikt veidoti un veiksmīgi izmantoti, balstoties uz šo intuitīvo izpratni. Cita algoritma “definīcija”(Wikipedia): Algoritms – galīga labi definētu instrukciju kopa noteikta uzdevuma veikšanai, kas, sākot darbu noteiktā sākuma stāvoklī, pabeigs darbu atbilstošā atpazīstamā beigu stāvoklī. Labi definēts – efektīvs, izpildāms Sākuma stāvoklis – ieejas dati (masveidība) Beigu stāvoklis – garantēta apstāšanās + mērķis Instrukciju kopa – ? – priekšraksts ??Kā tad īsti ir?

  8. Algoritma jēdziena precizēšana: abstraktās mašīnas Izmanto abstraktās mašīnas (diskrētās iekārtas). Abstraktā mašīna: vadības bloks + datu bloks Abstraktās mašīnas stāvoklis: - norāde uz kārtējo instrukciju vadības blokā, - datu bloka saturs Abstraktās mašīnas komandas izpilde: - izpilda kārtējo instrukciju no vadības bloka (iespējams, izmaina datu bloka saturu; var būt arī ievadaunizvada operācijas) - uzstāda nākamo kārtējo vadības bloka instrukciju. Sākumā domājam: katram algoritmam sava abstraktā mašīna.

  9. Abstraktās mašīnas (turpināts) Vadības bloka instrukcijas: dažādiem algoritmiem var būt dažādas. Reizināšanas realizācija, izmantojot saskaitīšanu, atņemšanu un salīdzināšanu. r := 0; while (x > 0) do x := x - 1; r := r + y od Kāpināšanas realizācija, izmantojot reizināšanu, saskaitīšanu, atņemšanu un salīdzināšanu. k := 1; while (x > 0) do x := x - 1; k := k * y od Algoritms instrukciju bāzē B: abstraktā mašīna, kuras instrukcijas pieder instrukciju kopai B. Svarīgi, lai instrukcijas “elementāras”.

  10. Abstraktās mašīnas datorzinātnē Datorzinātne pēta dažādas abstrakto mašīnu klases (arī konkrētas abstraktas mašīnas). Vai dažādas abstrakto mašīnu klases ir ekvivalentas? Vai ir tādas abstrakto mašīnu klases, kurās ir mašīnas pilnīgi visu algoritmu izpildei? Vai var būt tādas abstraktas mašīnas, ar kurām var izpildīt dažādus algoritmus? Dators pats kā abstrakta mašīna. Programmēšanas valodas vide (interpretators) kā abstrakta mašīna. Abstrakta mašīna: teorētiski pētījumi, praktiska realizācija

  11. Diskrēti, nepārtraukti, hibrīdi procesi Kas notiek abstraktas mašīnas darbības laikā? Diskrētā procesa jēdziens. Diskrētais process – laikā sakārtotu, konkrēti identificētu darbību virkne. Darbība – atomāra, momentāna. Ilgstošai darbībai – varam fiksēt darbības sākuma un beigu momentus. No fizikālās realizācijas viedokļa “momentāni” ir abstrakcija, līdzīgi kā “materiāls punkts” vai “ideāla gāze”. Tomēr tā ir ļoti noderīga abstrakcija (ļauj runāt par abstraktajām mašīnām). Diskrētais process var tikt aplūkots arī kā notikumu koks (piemēram, ņemot vērā iespēju programmas izpildei notikt pa dažādiem zariem, atkarībā no lietotāja rīcības). Nepārtraukts process – sistēma, kuras raksturlielumi darba gaitā mainās nepārtraukti (piemēram, radiators silda istabu, temperatūra pieaug). Hibrīdie procesi – sistēmas, kam ir gan diskrēta, gan nepārtraukta procesa komponentes (ledusskapja dzesētāja ieslēgšanās un izslēgšanās ir diskrēts process, temperatūras maiņa notiek nepārtraukti).

  12. Datorzinātnes pamati 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. Kurss būs interesants studentiem: • kas interesējas par minētajām datorzinātnes nozarēm, kā arī • kas vēlas labāk izprast saikni starp studiju laikā iegūstamajām matemātikas zināšanām un programmu būves praksi. (sk. konkrētās kursā iekļautās tēmas).

  13. 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īgi automāti, to izmantošana sistēmu modelēšanā. Galīgu 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.

  14. Plānotais kursa saturs (turpināts) 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. 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.

  15. Kursa prasības un informatīvais atbalsts Vērtēšana: • Mājas darbi (aptuveni 10), iesniegti noteiktos termiņos, pēc tam eksāmenā atbildēti • Eksāmens (vienkārši teorijas jautājumi un uzdevumi). Informatīvais atbalsts: www.ltn.lv/~karlisc/stud.htm,Datorzinātnes pamati Kursa saturs, prasības, mājas darbi, papildmateriāli (t.sk. izveidotie slaidi elektroniskā formā) E-pasts: Karlis.Cerans@mii.lu.lv Tel. 7213716 Vieta: LU MII (Raiņa bulv.29, 421. istaba).

More Related