Programiranje i programsko inženjerstvo

Opis predmeta

Uvode se osnovni koncepti proceduralnog programiranja. Obrađuju se tipovi podataka, kontrolne strukture, funkcije, nizovi, datoteke. Daju se osnovni koncepti programskog inženjerstva poput algoritmizacije problema, raščlanjivanja na podzadatke, dokumentiranja i faza razvoja programske podrške.

Opće kompetencije

Predmet osposobljava za razvoj jednostavnijih proceduralnih programa u programskom jeziku C. Studenti će biti sposobni na temelju definicije problema načiniti jednostavniji algoritam, opisati ga u proceduralnom programskom jeziku, dokumentirati i testirati program, te u programu pronaći logičke pogreške.

Ishodi učenja

  1. objasniti način pohrane podataka u računalu
  2. primijeniti osnovne principe oblikovanja programa
  3. dizajnirati te implementirati i testirati jednostavnije programe i pronalaziti greške
  4. koristiti polja, grananja, petlje i funkcije
  5. opisati mehanizme poziva funkcija i predavanja parametara
  6. razviti programe sa slijednim i direktnim, binarnim i tekstualnim datotekama
  7. koristiti pokazivače i dinamičko pridruživanje memorije

Oblici nastave

Predavanja

Nastava je organizirana u dva ciklusa ukupnog trajanja 15 tjedana, u što su uračunata dva tjedna za međuispite. Predavanja traju četiri sata tjedno, a podijeljena su u dva dana, dakle 2+2 sata.

Provjere znanja

Provjera znanja provodi se putem međuispita i završnog ispita.

Laboratorijske vježbe

Organiziraju se dvije do tri laboratorijske vježbe koje se izvode pod nadzorom asistenta.

Način ocjenjivanja

Kontinuirana nastava Ispitni rok
Vrsta provjere Prag Udio u ocjeni Prag Udio u ocjeni
Laboratorijske vježbe 5 % 20 % 5 % 20 %
Kratke provjere znanja 0 % 15 % 0 % 0 %
Međuispit: Pismeni 0 % 25 % 0 %
Završni ispit: Pismeni 15 % 40 %
Ispit: Pismeni 0 % 80 %

Tjedni plan nastave

  1. Pojam algoritma. Pojam varijable. Tipovi varijabli. Operatori pridruživanja i aritmetički operatori. Elementarni ulaz i izlaz.
  2. Prevođenje programa u strojni kod. Uklanjanje pogrešaka. Naredbe predprocesora. Logički operatori i izrazi.
  3. Jednostrana selekcija. Dvostrana selekcija. Višestrana selekcija i skretnica.
  4. Petlja s ispitavanjem uvjeta ponavljanja na početku. Petlja s ispitavanjem uvjeta ponavljanja na kraju.
  5. Petlja s poznatim brojem ponavljanja. Jednodimenzionalni niz.
  6. Dvodimenzionalni niz. Višedimenzionalni nizovi.
  7. Rekapitulacija programskih struktura i prikaz pseudokodom.
  8. Funkcija. Prijenos argumenata po vrijednosti. Pokazivač.
  9. Prijenos argumenata preko adrese. Programski moduli i globalne varijable.
  10. Prijenos jednodimenzionalnog niza u potprogram. Prijenos dvodimenzionalnog niza u potprogram.
  11. Makro naredbe. Znakovni niz. Ugrađene matematičke funkcije. Slučajni brojevi.
  12. Ostale ugrađene funkcije. Ugrađene funkcije sa znakovnim nizovima. Vlastite funkcije sa znakovnim nizovima. Bitovni operatori i izrazi. Standardni ulaz.
  13. Standardni izlaz. Pojam datoteke i podjela. Preusmjeravanje ulaza i izlaza. Čitanje formatiranih datoteka.
  14. Pisanje formatiranih datoteka. Složeni tipovi podataka. isanje neformatiranih datoteka. Čitanje neformatiranih datoteka. Direktne datoteke.
  15. Parametri iz naredbenog retka. Dinamička alokacija memorije. Programska dokumentacija. Složeniji primjeri s provjerom ispravnosti programa.

Studijski programi

Sveučilišni preddiplomski
Elektrotehnika i informacijska tehnologija i Računarstvo (studij)
(1. semestar)

Literatura

Brian W. Kernighan, Dennis Ritchie, Dennis M. Ritchie (.), C Programming Language, Prentice Hall
Stephen Kochan (2004.), Programming in C 2004, Sams
N. King, K.N. King (1996.), C Programming: A Modern Approach, W. W. Norton & Company

Predavanja

Laboratorijske vježbe

Izvedba

ID 19676
  Zimski semestar
6 ECTS
R0 Engleski jezik
R1 E-učenje
60 Predavanja
0 Auditorne vježbe
15 Laboratorijske vježbe

Ocjenjivanje

87,5 izvrstan
75 vrlo dobar
62,5 dobar
50 dovoljan