Skip to main content

IT - C# Programming

Subject name

C# Programming

Details
Code
VSITE133
Abbrev.
CSH
ECTS
5
Year
3
Semester
Summer semester
Type
elective
NQF Level 6
Bachelor study
E-Learning
0%
Activities
IT zg - Win 24/25
ECTS
Units
Hours
Total
T
1
15
2
30
N
0.5
15
1
15
L
0.5
6
2
15
S
0
0
0
0
PN
0
0
0
0
PT
0
2
1
0
PR
0
1
6
0
EN
0
1
1
1
ET
0
1
2
0
AL
3
1
90
90
TeachersLeaders: Jurica Đurić, v. pred.
Assistants: mr. sc. Julijan Šribar, v. pred.
PrerequisitsNone
Content

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.

Learning objectives

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).

Learning outcomes

1. Comprehend the C# language keywords and to write and understand program code written in C#.
2. Use most of the features provided by C# language and .NET framework.
3. Write simple and mid-complex programs in C# language using technologies available in .NET environment: Windows Forms, ASP.NET, WPF.
4. Use Visual Studio development environment to locate and fix errors in code.

Competencies

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#.

Recommended Literature

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

Additional Literature
lectures (T)
  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.
numeric exercises (N)
  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
laboratory exercises (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.
preliminary exam - theory (PT)
  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.
project (PR)
  1. Student mora izraditi i prezentirati jednostavnu aplikaciju u jeziku C# prema svom izboru.
exam - numeric (EN)
  1. Not defined
exam - theory (ET)
  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.
autonomus learning (AL)
  1. kolokviji, konzultacije, samostalno učenje, samostalno rješavanje numeričkih zadataka, samostalni rad u laboratoriju

Ulica Vjekoslava Klaića 7, 10000 Zagreb, tel. 01/3764200 fax. 01/3764264