Generell informasjon om PUT-gruppen

Prosjektoppgaver i programutvikling

Programming technology student projects

Ved Institutt for informatikk ved UiB kan du være med på å utvikle morgendagens programmeringsteknologi, med vekt på utviklingsmetoder, språkabstraksjoner, og verktøystøtte.

PUT tilbyr et bredt utvalg i prosjekttema for studenter på bachelor og master. De fleste av disse temaene kan brukes på flere måter:

Det lønner seg å snakke direkte med potensielle veiledere for å finne et prosjekt som passer deg. Vi tar gjerne imot forslag til oppgaver med ekstern veiledning (næringsliv, forvaltning, mm). Vi er også lydhøre for initiativ fra studentene selv. Nedenfor følger noen prosjektforslag som kan velge blant — eller inspirere deg til å foreslå en oppgave som passer deg.

Alle oppgavene åpner for samarbeid med andre forskere internasjonalt.

Aktuelle veiledere

Supervisors

Det lønner seg å snakke med potensielle veiledere. De kan ha idéer som ikke er listet opp her. De er også åpne for forslag du kan ha.

Prosjektforslag

Project proposals

Forslagene er fordelt under 4 hovedoverskrifter.

Logikk og algebraiske metoder

Logic and algebraic methods

Diverse prosjekter om logikk, algebraiske metoder og maskinlæring.

For mer informasjon om oppgaver i disse temaene, kontakt veilederne Håkon Robbestad Gylterud, Ana Ozaki, Michal Walicki eller Uwe Wolter.

Decidability and Complexity of Learning

Gödel showed in 1931 that, essentially, there is no consistent and complete set of axioms that is capable of modelling traditional arithmetic operations. Recently, Ben-David et al. defined a general learning model and showed that learnability in this model may not be provable using the standard axioms of mathematics. The main tasks of this project are to study Gödel's incompleteness theorems, the connection between these theorems and the theory of machine learning, and to investigate learnability and complexity classes in the PAC and the exact learning models.

References:

Hovedveileder er Ana Ozaki.

Learning Ontologies via Queries

In artificial intelligence, ontologies have been used to represent knowledge about a domain of interest in a machine-processable format. However, designing and maintaining ontologies is an expensive process that often requires the interaction between ontology engineers and domain experts. The main tasks of this project are to study an algorithm for learning ontologies formulated in the ELH description logic, implement the algorithm, and evaluate it using an artificial oracle developed in the literature that simulates the domain expert.

References:

Hovedveileder er Ana Ozaki.

Modelldrevet utvikling

Model driven development

Modelldrevet utvikling er en programutviklingsteknikk som prøver å løfte abstraksjonsnivået nærmere brukeren. Oppgavene er relatert til å bruke eller utvikle videre Diagram Predicate Framework (DPF) et grafisk verktøy for Eclipse utviklet i samarbeid med HVL.

Hovedveileder er Uwe Wolter.

Relasjonelle databaser

Relational databases

Åpent for tema innen databaseteknologi: teoriutvikling eller praktisk programmering.

Hovedveileder er Uwe Wolter.

Programmeringsspråk- og teknologi

Programming languages and technology

Oppgaver om programmeringsspråk, -verktøy, programutvikling og -vedlikehold. De oppgvene vi veileder har gjerne en teoretisk forankring, men kan være med å forme fremtidens programmering. Feks er arbeidet vårt med på å forme utviklingen av sentrale programmeringsspråk gjennom standardiseringsarbeidet som foregår i internasjonal regi.

'

Programming language evolution

Utvikling av programmeringsspråk

The evolution of programming languages forms the future of programming. As members of international standardisation efforts we are influencing how this future will look. We have several research topics needed for and associated to the following major industrial languages.

For mer informasjon om oppgaver i disse temaene, kontakt veilederne Magne Haveraaen, Jaakko Järvi eller Mikail Barash.

Programming models: new ways of programming

Programmingsmodeller: nye tilnærminger til programmering

Deklarativ GUI-programmering

Declarative User Interface Programming

User interfaces are costly to develop and difficult to get correct. Estimates place the effort of programming UIs between 30% and 60% of the total programming effort of applictions. Yet, despite all the effort that goes into UI construction, UIs are more often than not of low quality; they contain defects and lack useful functionality, which means we are often hindered or prevented from completing our desired tasks with computers. Complaints about user interfaces are not new, but the software industry remains unable to consistently produce high quality user interfaces. We are tackling this problem with a declarative programming approach based on data-flow constraint systems (among other things). The goal is to drastically simplify the programming of user interfaces, and get rid of the "event-handling spaghetti" that most GUI code essentially is.

We offer several masters projects in the general theme of declarative user interface programming, based on three different pieces of existing work:

Some relevant papers:

Kontaktpersoner: Mikhail Barash, Magne Haveraaen og Jaakko Järvi.

Magnolia - en annen programmeringsopplevelse

Magnolia - a new programming experience

Magnolia is a programming language with a solid theoretical foundation. It combines practical programming and formal specifications (concepts with axioms), giving a unique support for type-safe generic programming. Concepts and axioms provide a way of declaring interfaces and behaviour of classes and functions. We’re exploring the use of concepts to structure programs (domain engineering), and the use of axioms for program testing and optimisation.

Axioms from concepts can be used for program transforamtion. Program transformation uses rewrite rules to change one program into another, and is useful in program optimisation, generative programming, compilation, program analysis, etc. Embedding support for program transformation directly in a programming language opens possibilities for libraries that optimise themselves and wide use of generative techniques to save developer time.

Magnolia research has been formative in Fortran's approach to type safe generic programming.

Some suggested topics:

More information.

Some previous master projects on this theme. Also see the list of thesis for array computations below.

Relevant litteratur:

Relevant literature:

Kontaktpersoner: Mikhail Barash, Magne Haveraaen og Jaakko Järvi.

Contacts: Mikhail Barash, Magne Haveraaen and Jaakko Järvi.

Array-bregninger

Array computations

Array-beregninger er kjernen i all programvare for store datamengder, fra maskinlæring til simulering, feks i værvarsling og klimaforskning. Matematikken til Array (MoA) er en teori for å optialisere array-beregninger. MoA ble utviklet av Lenore Mullin i hennes doktoravhandling fra 1988.

Array computations are the core of any big data application, from machine learning to simulations, e.g., in weather/climate predication. Mathematics of Arrays (MoA) is a theory of array computation optimisation. MoA was originally developed by Lenore Mullin in her 1988 PhD thesis.

Vi har flere prosjekter innen dette temaet, fra ren teori, via Magnolia-eksperimenter, til løsning av praktiske problem. Dette knytter også an til grønne beregninger, se energiinformatikk nedenfor.

We have several projects on this topic, from pure theory, via Magnolia experiments, to solving practical problems. MoA is an enabler for green computing, see energy informatics below.

Gjennomførte master-oppgaver i dette temaet:

Some previous master projects on this theme:

Relevant litteratur:

Relevant literature:

Veiledere: Magne Haveraaen, Lenore Mullin.

Supervisors: Magne Haveraaen, Lenore Mullin.

Forbedret enhetstesting Improved unit testing

Testing er svært sentralt for å redusere antall feil i programvare, og enhetstesting inngår som daglig aktivitet hos profesjonelle utviklere. Men mye testing er ad hoc, og det blir veldig tilfeldig hva som testes. Det er svært vanskelig å lage gode og nødvendige tester.

I Java, f.eks., må strenge krav oppfylles for å ha full glede av "collection classes" og andre rammeverk. Men hvordan kan vi systematisk og grundig teste at koden vår oppfyller slike krav? Vi jobber med verktøy og teknikker for å utvikle tester basert på spesifikasjoner, og å tilrettelegge dette for vanlige programmører.

Vi har flere mulige prosjekter innen enhetstesting:

Relevant litteratur:

Relevant literature:

(Litt) mer informasjon.

Kontaktperson: Magne Haveraaen.

Domain engineering

Software product line engineering

In software engineering, demand of customers for configuration options that address various different business concerns creates the need to manage variability by developing not just a single software system but, in fact, an entire family of software systems with similar functionality. Software Product Line (SPL) engineering is a software engineering method to efficiently develop a family of software systems by capitalising on their similarities while explicitly handling their differences. Due to the size and complexity of these systems, SPLs constitute a major investment with long-term strategic value. Over time, SPLs have to be adapted as part of software evolution to address new requirements, which is particularly complicated as an entire software family has to be adapted.

While existing approaches can identify the evolution paradoxes in an evolution plan of SPLs and can analyse whether an evolution plan will satisfy the given requirements, there is still lacking support for explaining why the business requirements cannot be satisfied (Thesis A). Furthermore, instead of rigorously prohibiting problematic changes, we may devise a flexible method that determines appropriate additional changes to perform to still reach the intended evolution goal when possible (Thesis B). An SPL can be defined in terms of multiple configurable features structured within a feature model, which also specifies feature dependencies. We would like to extend the current work so that feature dependencies are also taken into account in the reachability analysis of software evolution planning (Thesis C).

Kontaktperson: Crystal Chang Din.

Contact person: Crystal Chang Din.

ΔQSD

The purpose of this project is to develop a web-based toolset for a modern software (and systems) development paradigm called ΔQ Systems Development (ΔQSD). This is a state-of-art paradigm, formalisation of which is taking place at IOHK – the emerging research empire at the cryptocurrency industry – hand in hand with PNSol (UK). The practical toolset of this project will be based on the theory being developed at PLWorkz (Belgium) and Magnolia.

Teaching autumn 2023: INF329A Selected Topics in Programming Theory

Kontaktpersoner: Magne Haveraaen og Seyed Hossein Haeri.

Typesikker fysikk

Fysikk (og andre fagfelt) arbeider med et vidt spekter av data som representerer ulike abstraksjoner av verden. Det kan være avstand, høyde, temperatur, fart, som alle kan måles på mange ulike måter. Oppgaven går på å studere hvordan slike data kan håndteres på et typesikkert vis slik at de ikke uforvarende forveksles: feks vil det ikke være bra om avstand i meter og høyde i fot ble lagt sammen.

Kontaktpersoner: Magne Haveraaen og David Grellscheid

Energiinformatikk

Energiinformatikk er et nytt fagfelt med tema bruk av digitale verktøy i energi-feltet. Dette omfatter grønne beregninger, storskala simulering av energisystemer, analyse av strømnett, målesystemer for grønn energi mm. Fagfeltet er essensielt for gjennomføringen av det grønne skiftet. Se energiinformatikk og Hva er energiinformatikk? for mer informasjon.

En spennende oppgave er programmering av styringssystemet for droner slik at de kan samarbeide. Mulige aktiviteter er måling av vind i ulike høyder over bakken over et større område. Dette er svært viktig for havvind og andre fornybare energikilder. Arbeidet er i samarbeid med Geofysisk institutt, UiB, og Bergen Offshore Wind Centre (BOW).

Et annet tema er grønne beregninger (Green computing). En beregning er grønn om den er effektiv slik at den ikke bruker unødvendig mye maskinvare (alt for mange CPU-kjerner) og strøm. Dette er spesielt viktig for store beregninger, så som innen værmelding, klimaforskning, vindparksimulering, astronomi, materialteknologi, osv.

Undervisning høst 2023: INF289 Utvalde emne i energiinformatikk

Teaching autumn 2023: INF289 Selected Topics in Energy Informatics

Gjennomførte master-oppgaver i dette temaet:

Some previous master projects on this theme:

Kontaktpersoner: Magne Haveraaen, Ahmad Hemmati, Nello Blaser.


Oppgaver med ekstern veileder eller foreslått av studenter

Alle veiledere ved PUT tar gjerne imot forslag til oppgaver med ekstern veiledning (næringsliv, forvaltning, mm). Vi er også lydhøre for initiativ fra studentene selv.

Kontakt gjerne Anya Bagge eller Crystal Chang Din for å komme i gang og få kontakt med rett veileder.


Generell informasjon om PUT-gruppen