Programiranje 1

Ovo su web stranice kolegija Programiranje 1 koji slušaju studenti prve godine preddiplomskog sveučilišnog studija Matematika kao obavezni kolegij, te studenti druge godine preddiplomskog sveučilišnog studija Matematika, smjer nastavnički kao izborni kolegij.

Kolegij se održava u zimskom semestru, a nastava se sastoji od dva sata predavanja i dva sata vježbi svakog tjedna.

Glavni cilj ovog kolegija upoznavanje studenata s osnovama programiranja u programskom jeziku C, te elementarnim algoritmima iz teorije brojeva i manipulacije poljima.

Način polaganja

Elementi ocjenjivanja
  • 40% + 60% - dva kolokvija
  • domaće zadaće

Redoviti kolokviji
Tijekom semestra održat će se dva redovita kolokvija. Ukupan broj bodova na prvom kolokviju je najmanje 40, a na drugom najmanje 60 (oba kolokvija mogu imati bonus bodove). Za prolaz kolegija potrebno je sakupiti ukupno barem 45 bodova na redovitim kolokvijima (prvi i drugi zajedno ili popravni), a pri tome na barem jednom "programskom" zadatku treba sakupiti najmanje 80% mogućih bodova. Na kolokvijima će biti navedeno koji se zadaci smatraju "programskima" (u pravilu ih na prvom kolokviju neće biti). U gradivo svakog pojedinog kolokvija ulazi sve što se radilo na vježbama i predavanjima od početka semestra do dana održavanja kolokvija. Od pomagala, na kolokvijima je dozvoljeno koristiti isključivo službeni podsjetnik.

Popravni kolokvij pokriva gradivo cijelog semestra. Pravo izlaska na popravni kolokvij imaju svi studenti koji ne polože kolegij. Rezultati s prva dva kolokvija (bodovi i postotak sakupljenih bodova) se ne računaju na popravnom kolokviju, tj. brišu se.

Domaće zadaće
Uz kolokvije, bodove mogu donositi i domaće zadaće. Ti bodovi ne ulaze u granicu za prolaz (navedenih 45 bodova), nego se pridodaju bodovima onih studenata koji polože kolegij na redovitim kolokvijima ("za višu ocjenu"). Bodovi od zadaća, kao niti bodovi s prva dva kolokvija, ne pribrajaju se bodovima postignutim na popravnom kolokviju. O broju zadaća i bodova koje je moguće dobiti rješavajući zadaće te o krajnjem roku za predaju zadaća studenti će biti obaviješteni na predavanjima.

Studentima koji ostvare sve uvjete za prolaz, ocjena se zaključuje prema sljedećoj skali (računa se zbroj postignutih bodova):

45 - 59 bodovadovoljan (2)
60 - 74 bodovadobar (3)
75 - 89 bodovavrlo dobar (4)
90 - 100 bodovaizvrstan (5)

Završna provjera znanja
Završnoj provjeri znanja (koja se provodi praktično na računalima) pristupaju studenti koji polože kolokvijski dio ispita (na redovitim kolokvijima ili popravnom kolokviju), a nisu zadovoljni zarađenom ocjenom, te oni koje na tu provjeru pozove predmetni nastavnik. Tako postignuta ocjena iz kolegija može biti i niža od već zarađene ocjene (uključivo i pad kolegija).

Sadržaj kolegija

  1. Uvod u algoritme. Pojam algoritma. Primjeri algoritama. Osnovna svojstva.
  2. Matematičke osnove računarstva. Brojevni sustavi. Sudovi. Logički veznici i složeni sudovi. Konjunktivna i disjunktivna normalna forma.
  3. Principi rada računala. Pojam naredbe. Ulaz, izlaz, memorija. Izvršni dio računala. Von Neumannov model. Turingov stroj.
  4. Građa računala. Matična ploča i procesor. Ulazno-izlazne naprave. Memorija.
  5. Prikaz podataka u računalu. Osnovni tipovi podataka. Prikaz i aritmetika cijelih brojeva. Prikaz realnih brojeva - IEEE standard. Greške zaokruživanja: pojam i primjeri.
  6. Uvod u programski jezik C. Izvođenje programa. Struktura programa. Osnove rada u Unix okruženju. Osnove rada u Win okruženju: Dev-C++.
  7. Osnovni tipovi podataka. Konstante. Varijable. Operatori i izrazi.
  8. Ulaz i izlaz podataka. Funkcije getchar i putchar. Znakovni nizovi: funkcije gets i puts. Funkcije scanf i printf.
  9. Naredbe za kontrolu postupaka. Naredbe if i if-else. Naredba switch. Petlje while, for i do-while. Naredbe break i continue.
  10. Osnovni algoritmi na brojevima. Opća načela provjere: postoji li objekt traženog svojstva i ima li svaki objekt zadano svojstvo. Primjeri (Euklidov algoritam, ispitivanje djeljivosti, prikaz broja u zadanoj bazi, pronalaženje znamenke zadanog broja koja zadovoljava neki uvjet).
  11. Funkcije. Definicija i deklaracija. Naredba return. Funkcije tipa void. Prijenos argumenata. Rekurzivne funkcije.
  12. Složene strukture podataka. Jednodimenzionalna polja. Osnovne karakteristike. Inicijalizacija i definicija. Polje kao argument funkcije. Primjeri (najveći/najmanji element niza, aritmetička sredina).
  13. Operacije s nizovima podataka. Sekvencijalno pretraživanje. Binarno pretraživanje. Sortiranje traženjem ekstrema. Bubble sort.