Naziv predmeta

Programiranje u C#

Detalji
Kod
VSITE133
Skr.
CSH
ECTS
5
Godina
3
Semester
Ljetni semestar
Vrsta
izborni
Razina HKO 6
Preddiplomski studij
E-Learning
0%
Aktivnosti
IT zg - Zim 19/20
ECTS
Jedinice
Sati
Svega
P
1
15
2
30
A
0.5
15
1
15
L
0.5
6
2
15
S
0
0
0
0
KA
0
0
0
0
KP
0
2
1
0
PR
0
1
6
0
IP
0
1
1
1
IU
0
1
2
0
SU
3
1
90
90
NastavniciNositelji: mr. sc. Julijan Šribar, v. pred.
Asistenti: Jurica Đurić, pred.
PreduvjetiNema
Sadržaj

Karakteristike strukturalnog i objektno orijentiranog programiranja. Varijable, operatori, kontrolne naredbe. Polimorfizam i nasljeđivanje. Strukture i polja. .NET Runtime okružje. XML dokumentacija u C#. Klase i objekti. Obrada iznimki. Nasljeđivanje, apstraktne klase. Sučelja, događaji i njihova obrada. Izrada Windows formi. Izrada Windows aplikacije. Razvoj aplikacije u web okružju. Web servisi, web forme. Osnove ASP.NET aplikacije. SOAP. Usporedba C# sa: C/C++, Java, Visual Basic 6, ostalim .NET jezicima. Dekompozicija problema kod većih projekata. Analiza problema i izrada programske podrške. Testiranje modula i cijele aplikacije. Postavljanje web aplikacije u radno okruženje.

Ciljevi učenja

Pisanje programskog koda u objektno-orijentiranom jeziku. Korištenje programskih razvojnih alata.
Razumijevanje funkcioniranja .NET okruženja. Definiranje, korištenje i razumijevanje karakteristika pojedinih tipova. Razumijevanje principa polimorfizma, virtualnih metoda, prijenosa argumenata metodama. Definiranje i korištenje svojstava, sučelja, delegata i događaja. Rukovanje iznimkama. Korištenje korisnički definiranih atributa te generičkih tipova. Razumijevanje rada sustava za automatsko upravljanje memorijom (Garbage Collector).

Ishodi učenja

1. Vladati vokabularom jezika C# te znati pročitati i interpretirati programski kod napisan u jeziku C#.
2. Koristiti većinu mogućnosti koje pružaju jezik C# i .NET okruženje.
3. Napisati jednostavnije i srednje složene programe u jeziku C# koristeći tehnologije dostupne u .NET okruženju: Windows Forms, ASP.NET, WPF.
4. Koristeći Visual Studio razvojni alat moći će otkriti i ispraviti pogreške u kodu.

Sposobnosti

Kolegij pruža specijalistička znanja s područja programiranja kao nadogradnju jezgre računarstva i osposobljava polaznika za izradu programske podrške u programskom jeziku C#.

Preporučena literatura

1. Eric Gunnerson, "A Programmer's Introduction to C#", Apress 2000. 2. Standardi i specifikacije: SOAP, HTML, ASP, XML

Dodatna literatura
predavanja (P)
  1. Jezik C♯: povijest, osnovne karakteristike jezika, proces standardizacije, usporedba s drugim najpopularnijim OO jezicima (Java, C++). Uvod u .NET okruženje (.NET Framework): osnovne komponente, pogodnosti koje nudi, mehanizam kreiranja, distribucije i izvođenja aplikacija, biblioteka klasa (FCL), zajednički tipski sustav (CTS), zajednička jezična specifikacije (CLS)
  2. Osnovni tipovi podataka i operatori: osnovna struktura C♯ programa, metoda Main(), komentari, imenici (namespaces), identifikatori, ključne riječi, osnovna svojstva tipova podataka, podjela na vrijednosne i referentne tipove, ugrađeni brojčani tipovi, implicitne i eksplicitne pretvorbe ugrađenih tipova, pravila numeričke promocije, nulabilni tipovi, znakovni nizovi (string), pobrojenja (enumerations), operatori: aritmetički, usporedbe, logički, bitovni, operatori pridruživanja, pretvorba (cast), operatori typeof, sizeof, as is
  3. Naredbe za kontrolu toka: blokovi naredbi, doseg (scope) objekta, grananje if, uvjetno pridruživanje (?:), grananje switch, petlja while, petlja do-while, petlja for, petlja foreach, prekid petlje naredbama break i continue, naredba goto, naredba return. Definiranje tipa: što je tip, osnovni tipovi (enum, class, struct), razlika između class i struct, sadržaj definicije tipa, prava pristupa tipu, prava pristupa članovima tipa, dodatni atributi u definiciji tipa (vritual, override, abstract, new, sealed, static, const, readonly), konstruktori instance, podrazumijevani konstruktor, konstruktori tipa, destructor, metoda Finalize(), eksplicitno oslobađanje resursa, sučelje IDisposable, blok using
  4. Razlika vrijednosni tip - referentni tip (value type - reference type): smještaj u memoriji, inicijalizacije i pridruživanje, zapakiravanje/otpakiravanje (boxing/unboxing). Zajednička svojstva tipova: opis tipa System.Object, jednakost objekata - jednakost po identitetu ili po vrijednosti, implementacija metode Equals(), operatori == i !=, hashcode, kloniranje
  5. Metode: definicija metode, poziv metode, preopterećenje metode, podrazumijevane vrijednosti argumenata,imenovani argumenti, mehanizam prosljeđivanja argumenata, usporedba vrijednosnih i referentih tipova kao argumenata, prosljeđivanje argumenata po referenci, promjenjivi broj argumenata, virtualne metode, apstraktne metode, parcijalne metode
  6. Svojstva (properties): enkapsulacija podataka, korištenje i definiranje svojstava, svojstva s argumentima (indexers). Preopterećenje operatora (operator overloading): primjena i definicija, alternativne oznake po CLS-u, operatori pretvorbe, konstruktori pretvorbe, metode ToXxx, operatori implicitne i eksplicitne pretvorbe.
  7. Delegati: definicija, primjer korištenja, pridruživanje statičkih metoda i metoda instance, pozadina delegata - opis razreda MulticastDelegate, ulančavanje metoda, GetInvocationList(). Događaji (events): problem uparenosti među objektima, objekti koji sudjeluju u razmjeni događaja, definicija sudionika, pozadina implementacije.
  8. Sučelja: razlika nasljeđivanje implementacije - nasljeđivanje sučelja, problem višestrukog nasljeđivanja, definiranje i implementacija sučelja u jeziku C♯, pravo pristupa sučelju, prvao pristupa članovima sučelja, pravo pristupa implementaciji sučelja, višestruko nasljeđivanje sučelja, primjeri nasljeđivanja u FCL-u, organizacija koda i značaj sučelja u velikim projektima, implementacija jednakih članova iz različitih sučelja, eksplicitna implementacija sučelja.
  9. Generički tipovi (generics): generičko programiranje, parametar tipa, instanciranje tipa, prednosti korištenja generičkih tipova, generički tipovi u FCL-u, generička sučelja, generički delegati, preopterećenje parametriziranih članova, ograničavanje parametara.
  10. Rad s tekstom: znakovi, struktura System.Char i njeni članovi, razred System.String, posebni znakovi (escape sequences), operacije sa znakovnim nizovima, dinamičko mijenjanje znakovnog niza, razred StingBuilder, znakovna prezentacija objekta, lokalizacijski specifični formati i kulture, formati brojeva, datuma, pobrojenja, IFormatProvider, formatiranje ispisa, pretvorba znakovnog niza u objekt, podržana kodiranja (UTF-32, UTF-16, UTF-8 i sl.), Base-64 kodiranje.
  11. Pobrojenja (enumerations) i polja bitova (bit-fields): definicija, eksplicitna dodjela vrijednosti, prednosti korištenja pobrojenja, dohvaćanje vrijednosti, dohvaćanje simbola, definicija polja bitova, razlike u odnosu na pobrojenja.
  12. Nizovi (Arrays): osnovna svojstva, razlika između nizova vrijednosnih i nizova referentnih tipova, System.Array, višedimenzionalni nizovi, nepravilni nizovi, pretvorbe nizova, prosljeđivanje nizova metodama i nizovi kao povratne vrijednosti, nizovi s početnim indeksom različitim od 0, brzina dohvaćanja nizova.
  13. Iznimke (Exceptions): povijesni pregled signalizacije pogrešaka, definicija try- catch -finally blokova i slijed izvođenja, filtar iznimki, bacanje iznimki, ponovno bacanje, iznimke u FCL-u, definiranje vlastitih iznimki, praćenje iznimki, obrada neuhvaćenih iznimki
  14. Korisnički definirani atributi (Custom Attributes): opis i primjer korištenja, navođenje cilja, definiranje atributa, mehanizam implementacije atributa, pseudo-atributi.
  15. Sustav za automatsko upravljanje memorijom (Garbage Collection): život objekta, curenje memorije u neupravljanim (unmanaged) programima, alokacija memorije, upravljana hrpa, skupljanje smeća, generacije, finalizacije, slabe reference.
auditorne vježbe (A)
  1. Pisanje najjednostavnijeg programa u jeziku C#, prevođenje, izvođenje
  2. Usporedba vrijednosni-referenti tip
  3. Naredbe za kontrolu toka - specifičnosti u odnosu na ostale programske jezike
  4. Definiranje tipa, definiranje izvedenog tipa
  5. Mehanizam virtualnih metoda
  6. Definiranje i korištenje svojstava
  7. Definiranje i primjena delegata, definiranje i primjena događaja
  8. Definiranje i implementacija sučelja
  9. Definiranje i korištenje generičkih tipova
  10. Osnovne operacije s tekstom
  11. Definiranje i korištenje pobrojenja
  12. Korištenje nizova podataka
  13. Definiranje iznimki, bacanje i obrada iznimki
  14. Korištenje i primjer definiranja korisničkih atributa
  15. Ilustracija rada sustava za automatsko upravljanje memorijom
laboratorijske vježbe (L)
  1. Upoznavanje sa razvojnim okruženjem (Visual Studio), kreiranje projekata, pisanje, prevođenje i testiranje C# programa, argumenti metode Main, korištenje programskog kôda za hvatanje iznimki.
  2. Razlika između klase i strukture (referentni, odnosno vrijednosni tip), pisanje i korištenje klasa i struktura na primjeru.
  3. Izrada grafičkog sučelja, povezivanje grafičkog sučelja sa programskom logikom.
  4. LINQ, korištenje na primjeru programskog kôda LINQ prema objektu, LINQ prema SQL-u i LINQ prema XML-u.
  5. Izrada web aplikacije korištenjem ASP.NET tehnologije.
  6. Izrada Windows aplikacije.
kolokvij - teorija (KP)
  1. Kolokvij se polaže kroz test koji se sastoji od 30 kratkih zadataka teoretskog i praktičnog značaja. Obuhvaća sljedeće nastavne cjeline: (1) Osnovni tipovi podataka i operatori, (2) Naredbe za kontrolu toka, (3) Definiranje tipa, (4) Razlika vrijednosni tip - referentni tip, (5) Zajednička svojstva tipova, (6) Metode, (7) Svojstva. Svaki zadatak se ocjenjuje s 1 - 5 bodova, ovisno o njegovoj težini, a uvjet za prolaz je 50% maksimalnog broja bodova. Kolokvij se u slučaju opravdanog razloga može pisati naknadno. U protivnom, student pripadajući dio gradiva polaže na pismenom ispitu.
  2. Kolokvij se polaže kroz test koji se sastoji od 30 kratkih zadataka teorietskog i praktičnog značaja. Obuhvaća sljedeće nastavne cjeline: (1) Preopterećenje operatora, (2) Delegati, (3) Događaji, (4) Sučelja, (5) Generički tipovi, (6) Rad s tekstom, (7) Pobrojenja i polja bitova, (8) Nizovi, (9) Iznimke. Svaki zadatak se ocjenjuje s 1 - 5 bodova, ovisno o njegovoj težini, a uvjet za prolaz je 50% maksimalnog broja bodova. Kolokvij se u slučaju opravdanog razloga može pisati naknadno. U protivnom, student pripadajući dio gradiva polaže na pismenom ispitu.
projekt (PR)
  1. Student mora izraditi i prezentirati jednostavnu aplikaciju u jeziku C# prema svom izboru.
ispit - zadaci (IP)
  1. Nije definirano
ispit - teorija (IU)
  1. Za studente koji su položili kolokvije, ispit se sastoji od usmenog ispita kroz koji se provjerava teoretsko i praktično znanje. Konačna ocjena se formira na osnovu rezultata kolokvija, ocjene laboratorijskih vježbi, ocjena stečenih tijekom nastave na osnovu izlaznih testova, ocjene praktičnog rada i ocjene usmenog ispita. Studenti koji nisu položili kolokvije moraju pismeno polagati pripadajuće gradivo kroz test koji se sastoji od 30 zadataka teoretskog i praktičnog značaja.
samostalno učenje (SU)
  1. kolokviji, konzultacije, samostalno učenje, samostalno rješavanje numeričkih zadataka, samostalni rad u laboratoriju