Preskoči na glavno vsebino

Računalniško programiranje

Predmet se izvaja v programu:
Fizika in astrofizika prve stopnje

Cilji in kompetence

Študenti se bodo seznanili z osnovnimi koncepti računalnikov in izdelave programov. Naučili se bodo izdelave računalniškega programa od priprave do izvajanja. Podrobneje se bo spoznal sintakso jezikov python, C++ in LaTex. Spoznali bodo osnovne numerične metode za reševanje matematičnih problemov. Spoznali bodo kako izdelati program za branje, analizo in prikaz meritvenih podatkov v znanstvenem poročilu.

Pogoji za vključitev v delo oz. za opravljanje študijskih obveznosti

Analiza I (1FAF01)

Vsebina

  1. Osnove računalništva
    - Tabela sistemskih ukazov
    - Osnovne enote
    - Principi računalniškega spomina in zapisi števil (cela, realna, kompleksna)
    - Računalniški programi od priprave do zagona

  2. Algoritmi in programski jeziki
    - Razlaga koncepta algoritma
    - Primer iskanja fiksne točke funkcije z iteracijo

  3. Uvod v C in C++
    - Osnovna sintaksa (tipi podatkov, polja, zanke, pogoji, funkcije, branje/pisanje datotek)
    - Matematična knjižnica in osnovne matematične funkcije
    - Strukture in objektno programiranje
    - Numerično integriranje in odvajanje

  4. Python
    - Osnovna sintaksa (tipi podatkov, polja, zanke, pogoji, funkcije, branje/pisanje datotek, moduli)
    - Naključna števila in Monte Carlo integriranje
    - Uporaba modula numpy in matplotlib za branje, analizo in prikaz podatkov meritev
    - Delo z matrikami (matrika rotiranja, večanja)
    - Uporaba modula scipy.optimize za linearno regresijo in prilagajanje modelov meritvam

  5. Uvod v LaTex
    - priprava znanstvene objave v LaTex-u, ki vključuje slike, strukturirano besedilo in enačbe

Predvideni študijski rezultati

Do konca tega predmeta bo študent sposoben pripraviti program v pythonu in C++, ki:
- prebere in analizira podatke iz tekstovnih datotek in poišče parametre modela, ki najbolje opišejo meritve
- izpelje izračune na podatkih
- prikaže in izriše rezultate
- izvozi sliko v uporabne formate (kot so PDF, PNG)
- pripravi znanstveno poročilo v LaTex, ki vključuje enačbe, strukturiran tekst in slike
- izvede numerično integriranje in odvajanje funkcije
- iterativno poišče mirujoče točke funkcije
- izvede numerično integriranje s pomočjo Monte Carlo metode
- numerično poišče trajektorijo projektila
- računa z matrikami
- poišče rešitev sistema linearnih enačb z uporabo linearne algebre in matrik

Načini ocenjevanja

  • domače naloge
  • pisni izpit

Reference nosilca

Dr. Egon Pavlica je izredni profesor za področje fizike na Univerzi v Novi Gorici. Egon Pavlica is an associate professor of physics at the University of Nova Gorica.
1. Marco Carroli, Alex Dixon, Martin Herder, Egon Pavlica, Stefan Hecht, Gvido Bratina, Emanuele Orgiu, Paolo Samorì, "Multiresponsive nonvolatile memories based on optically switchable ferroelectric organic field-effect transistors", Advanced materials, 2021, vol. 33, iss. 14.

  1. Srinivasa Rao Pathipati, Egon Pavlica, Emanuele Treossi, Vincenzo Palermo, Gvido Bratina, "The role of charge transfer at reduced graphene oxide/organic semiconductor interface on the charge transport properties", Organic electronics, 2020, vol. 77.

  2. Vadym Tkachuk, Egon Pavlica, Gvido Bratina, "Molecular alignment on graphene surface determines transport properties of graphene/organic semiconductor transistors", Organic electronics, 2020, vol. 87.

  3. Egon Pavlica, Nadiia Pastukhova, Robert A. Nawrocki, Artur Ciesielski, Vadym Tkachuk, Paolo Samorì, Gvido Bratina, "Enhancement of charge transport in polythiophene semiconducting polymer by blending with graphene nanoparticles", ChemPlusChem, 2019, vol. 84, no. 9.

  4. Gvido Bratina, Egon Pavlica, "Characterisation of charge carrier transport in thin organic semiconductor layers by time-of-flight photocurrent measurements", Organic electronics, Jan. 2019, vol. 64.