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 TKT:n 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.