LU-LSP-b

From DiLab
Revision as of 10:15, 5 February 2021 by Leo (talk | contribs) (Kalendārs)
Jump to: navigation, search

Īssaites: Kalendārs | Uzdevumi | Resursi | Šodiena: 30.04.20 : Rītdiena: 31.04.20 (ja ir lekcija)


Linux sistēmas programmēšana (LSP)

LU DF bakalaura studiju kurss DatZ3122, meklēt eStudijās.


  • Pasniedzējs: Leo Seļāvo (epasts: vards.uzvards @ gmail.com)
  • Vērtējums = 15% praktiskie darbi, 25% mājas darbi, 10% dalība klasē, 20% KD1 un 30% KD2(eksāmens).


Praktisko un mājas darbu iesniegšana

  • Mājas darbus iesniegt e-studijās vai darbu testēšanas serverī, atkarībā no darba specifikācijas.
  • Faila nosaukumam jābūt formā LSP_MD1_Vards_Uzvards.c (Mainot atbilstošo uzdevuma kodu un faila formātu pēc nepieciešamības)
  • Nevajag arhivēt failus, ja vien tas nav prasīts uzdevuma nosacījumos

Praktisko darbu vērtēšanas kritēriji

  • Praktisko darbu mērķis ir nostiprināt un parādīt izpratni par apgūto vielu, attiecīgi darbi ir jārisina patstāvīgi, tomēr jautājumu uzdošana pasniedzējam vai kolēģiem ir vēlama.
  • Maksimālo vērtējumu par praktisko darbu var saņemt, ja tas iesūtīts līdz praktisko darbu lekcijas beigām (vai brīdim, kad vienojamies, ka publiski apskatīsim PD risinājumu).
  • Pēc termiņa praktiskie darbi tiek pieņemti vēl tekošo nedēļu (līdz nākamās lekcijas sākumam) un tiks novērtēti, tomēr vairs ne ar maksimālo atzīmi.
  • Papildus praktiskajos darbos un lekcijās var izpelnīties "plusiņus" ar dalību diskusijās, unikālu risinājumu un ideju piedāvāšanu, trāpīgu jautājumu uzdošanu, atbildēšanu uz kolēģu jautājumiem u.t.t., kas savukārt palīdzēs savākt +10% no kopējā vērtējuma "par darbu klasē".

Mājas darbu vērtēšanas kritēriji

  • Mājas darbu iesniegšanas termiņa laiks ir attiecīgajā datumā 20:00
  • Ja darbs tiek iesniegts ar novēlošanos (kaut vai 1 sekundi!):
    • Tūdaļ pēc termiņa rezultāts tiek samazināts par 50%
    • Nedēļu pēc termiņa darbi vairs netiek pieņemti.

Kalendārs

Datums Tēma, saturs Uzdevumi

08.02.21

08:30

Ievads kursā


Unix un Linux operētājsistēmu pamatkoncepcijas un vēsture. Linux sistēmprogrammētaja rīki (shell, gcc, make, manpages u.c.)

Vispārīgs pārskats par valodu C.

  • Uzdots: MD0 mājas darbs - programmēšanas stils - izlasīt un ņemt vērā turpmākajos darbos.

...

29.04.21

15:00

Eksāmens


Eksāmena forma: projektu demonstrācija un prezentācija (darbība, pirmkods, diskusijas).

Pirms eksāmena kodam kopā ar kompilācijas un palaišanas instrukcijām jābūt iesniegtam e-studijās!

  • Iesniegt eksāmena/projekta failus un aprakstu E-studijās

Uzdevumi

Mājas darbi

  • MD0: Izlasīt kodēšanas stila dokumentus.
  • MD1: Ģimenes koka ģenerēšanas programma.
  • MD2 - nav uzdots.
  • MD3: Vienādo failu meklēšana direktorijas kokā.
  • MD4: Atmiņas rezervācijas funkciju salīdzināšana.
  • MD5: Atmiņas fragmentācijas algoritmu novērtējums.


Eksāmens izpaužas kā kursa projekta aizstāvēšana.

Resursi

Pamācoši vingrinājumi un piemēri

  • Failu I/O buferi un sekas: divi raksta, redzam trīs...
  • Aprēķins, cik laika vajag pārkopēt 1 TB pa baitam bez bufera.
  • Paging: piemērs 4K x 4K masīva apstaigāšanai, mainot indeksus: 4K vs 16M page faults

Literatūra

  • Advanced Programming in the UNIX(R) Environment, Second Edition, by W. Richard Stevens, Stephen A. Rago. Addison Wesley Professional, 2005, ISBN 0-201-43307-9. (Indiešu eksemplāram ir ISBN 81-317-0005-4)
  • "Linux system programming" by Robert Love, O'Reilly Media, 2007, ISBN 0596009585
  • "Building Embedded Linux Systems" O'Reilly Media, 2008, ISBN 0596529686

Programmētāja resursi

Programmēšanas analīzes rīki

  • PMD - scans source code and looks for bugs, dead code, suboptimal code, overcomplicated expressions, duplicate code.

Linux veiktspējas analīze

Āķīgi uzdevumi un pieredze

Atziņas