Taustaa

Kandiopiskelijat Riku ja Ville tarvitsevat järjestelmän, joka auttaa heitä pitämään kanditöiden kirjoittamisessa käytetyt lähdeviitteet järjestyksessä ja sopivassa muodossa kandia varten. Kuten kaikki valveutuneet tietojenkäsittelyn opiskelijat, myös Riku ja Ville kirjoittavat kandin LaTeX:illa.

LaTeX:ia käytettäessä teksti näyttää seuraavalta:

\documentclass{article}
\usepackage[utf8]{inputenc}

\title{Ohtun esimerkki}
\author{Matti Luukkainen}
\date{November 2022}

\begin{document}

\maketitle

\section{Johdanto}

Tehostettu kisällioppiminen \cite{VPL11} (Engl. eXtreme Apprenticeship, XA) on
alunperin ohjelmoinnin alkeisopetukseen kehitetty kisällioppimisen \cite{CBH91}
johdannainen. XA-menetelmä pyrkii ohjelmointitaidon lisäksi kiinnittämään 
panostamaan myös laadukkaan koodin \cite{Martin09} luomiseen. 

\bibliographystyle{plain} 
\bibliography{references}

\end{document}

Tekstissä on siis mukana muotoiluun vaikuttavia vinoviivalla alkavia LaTeX-komentoja. Miniprojektissa tehtävän softan kriittinen komento on \cite{viiteavain} jonka avulla lähdeviiteet merkataan.

LaTeX-dokumenteissa lähdeviitteet kirjoitetaan ns. BibTeX-muodossa. Ylläolevan dokumentin lähdeviitteet näyttävät seuraavalta:

@inproceedings{VPL11,
    author = {Vihavainen, Arto and Paksula, Matti and Luukkainen, Matti},
    title = {Extreme Apprenticeship Method in Teaching Programming for Beginners.},
    year = {2011},
    booktitle = {SIGCSE '11: Proceedings of the 42nd SIGCSE technical symposium on Computer science education},
}

@article{CBH91,
    author = {Allan Collins and John Seely Brown and Ann Holum},
    title = {Cognitive apprenticeship: making thinking visible},
    journal = {American Educator},
    year = {1991},
    volume = {6},
    pages = {38--46}
}

@book{Martin09,
    author = {Martin, Robert},
    title = {Clean Code: A Handbook of Agile Software Craftsmanship},
    year = {2008},
    publisher = {Prentice Hall},
}

Jokaisen lähdeviitteen ensimmäinen “kenttä” on avain (esim. ylimmässä VPL11), jota käyttämällä LaTeX-tiedostosta muodostetaan lähdeviite.

Latex tukee useita eri tyyppisiä viitteitä, kuten esimerkin inproceedings, article ja book. Jokaisen tyyppisellä viitteellä on joukko erilaisia mahdollisia kenttiä, kuten author, title ja year.

LaTeX:illa “käännetty” lopputulos näyttää seuraavalta:

Huomaamme että teksti päättyy oikeaoppisesti lähdeviitteisiin ja juuri lähdeviitteiden hallintaan nyt toteutettavan ohjelmiston on tarkoitus tuoda helpotusta.

LaTeX:ia voi kirjoittaa tekstieditorilla ja dokumentin voi kääntää Pdf-muotoon komentoriviltä kun LaTeX on asennettuna koneelle. Nykyään on kuitenkin erittäin yleistä tehdä LaTeX-dokumentteja suoraan verkossa olevalla Overleaf-palvelulla.

Yo. dokumentti on nähtävillä tässä olevassa Overleaf-projektissa.

Lisää BibTeXistä esim. seuraavassa:

Esimerkki hieman laajemmasta BibTeX-tiedostosta täällä.

Järjestelmän kuvaus

Riku ja Ville siis haluavat järjestelmän, jonka avulla he voivat hallinnoida viitteitä helposti. Ohjelmalla pitää olla ainakin seuraavat ominaisuudet:

  • viitteitä pitää pystyä lisäämään järjestelmään ihmiselle hyvässä muodossa, esimerkiksi jonkun lomakkeen avulla
  • järjestelmässä olevista viitteistä pitää saada generoitua LaTeX-dokumenttiin sopiva BibTeX-muotoinen tiedosto
  • myös viitteiden listaaminen ihmiselle sopivammassa formaatissa pitää onnistua
  • viitelistoja pitäisi pystyä jotenkin rajoittamaan
    • esim. kirjoittajan, vuoden, julkaisun mukaan
    • olisi kyllä hyvä, jos jokaiseen viitteeseen voisi liittää joukon kategorioita tai tägejä, jotka mahdollistaisivat tarkemmat haut
  • ihan jees jos kyseessä on yhdellä koneella toimiva sovellus, parempi olisi kuitenkin jos se olisi verkossa ja joka paikassa käytettävissä
  • jos toimii vaan paikallisella koneella, pitää eri koneiden välillä pystyä jotenkin synkronoimaan talletetut viitteet
  • sellainen olisi loistavaa, että jos antaa linkin esim. ACM:n digitaaliseen kirjastoon, esim. näin, niin softa crawlaa sieltä viitteen tiedot
  • jopa vielä parempi feature olisi datan haku DOI-tunnisteen perusteella
  • kannattaa muistaa että LaTeX mahdollistaa vaikka mitä kenttiä eri viitetyypeille, näistä kentistä aika moni on kuitenkin ainakin kandin tekijöille ihan turhia

Vaatimuksia tarkennetaan asiakkaan kanssa viikoittaisissa palavereissa.