14. maaliskuuta 2010

T-kurssien riippuvuus

Viime kesänä tulin tehneeksi graafin kurssien riippuvuudesta. Dot-kuvauskieli ja Graphviz ovat varsin tehokkaita kaluja kun niiden käytön jaksaa opetella kunnolla. Allaoleva graafi syntyi n. kolmessa vartissa asettelut ja muut hieronnat mukaanlukien.

Kunnia tämänkin idean keksimisestä kuuluu Sanna Suorannalle, Ursula Holmströmille ja Elisa Schaefferille, jotka olivat vääntäneet vastaavan graafin jollain toisella graafikilkkeellä kun itse kävin johdatus opiskeluun -kurssia. Harmillisesti hyvää ideaa ei enää jatkettu seuraavina vuosina.

Liian tiiviistä inserttikuvasta näkyy hyvin, kuinka pyrin erottelemaan moduulirakenteen esihavainnoitavilla (onko olemassa kanonista suomennosta sanalle preattentive?) muodoilla ja väreillä. Tarkoituksena on, että O, P ja A1-moduulit on helppo erotella. Siniset ja punaiset kolmiot (tietotekniikan ja informaatiotekniikan A1-moduulit) ovat toisensa poissulkevia.



Luettavammankokoinen SVG. Huomaa myös elementtien klikattavat linkit, jotka oli helppo lisätä, kiitos Nopan standardiuden.


Koko ylläoleva komeus generoidaan näppärästi oheisesta lähdekoodista. Itse en välttämättä jaksa tehdä uusia revisioita ikuisesti, mutta joku noheva opiskelija voisi tarkastaa graafin paikkaansapitävyyden ja päivittää sen vastaamaan 2010 opinto-opasta, kunhan se julkaistaan.

En näe miksi vastaavaa ei voisi tehdä muidenkin aineiden perusopinnoista.


digraph D{

//LeftRight, voisi olla myös TopBottom (defaultti)
rankdir="LR";

{
/*
Lukukaudet
*/
node [shape="plaintext"];
s1->k1->s2->k2->s3;
s1 [label="1. Syksy"];
s2 [label="2. Syksy"];
s3 [label="3. Syksy"];
k1 [label="1. Kevat"];
k2 [label="2. Kevat"];
//note skandit rikki. pitais tehda utf-8:lla (ei kiva kekkosella)
}

subgraph cluster_selitys{
node [fontsize=8];
"P-moduuli" [shape="box"];
"O-moduuli" [shape="hexagon", style=filled, color="grey"];
"T A1-moduuli" [shape="invtriangle", style=filled, color="blue"];
"I A1-moduuli" [shape="triangle", style=filled, color="red"];
label="Symbolit";

}
/*
Uijui, \N viittaa noden nimeen. Täähän on kuin ruusuilla tanssimista

*/
{
node [URL="https://noppa.tkk.fi/noppa/kurssi/\N", fontsize=8];

{
/*
perusopinnot ovat laatikoita
*/
node [shape="box", width=1.0];
alku [label="T-0.1002\n Johdatus opiskeluun \nT-ohjelmassa"];
alku->"T-106.1200";
alku->"T-106.1150";
alku->"Mat-1.1110";
alku->"Tfy-3.1241";
"T-106.1200"->"T-106.1240";
"T-106.1200"->"T-106.1220";
"T-106.1220"->"T-76.1143";
"Mat-1.1110"->"Mat-1.1120"->"Mat-1.1131";
"Mat-1.1110"->"T-79.1001";
"Mat-1.1120"->"Mat-1.2600"
"Mat-1.2600" [label="Mat-1.2600/2620"];
"Tfy-3.1241"->"Tfy-3.1242"->"Tfy-3.1253"->"Tfy-3.1254";

}

{
/*
Ohjelman yhteiset ovat timantteja
*/
node [shape="hexagon",style=filled, fillcolor=grey];
"Mat-1.1120"->"Mat-1.1132";
"Tu-22.1101" [label="Tu-22.1101\nJA Tu-22.1103"];
"Tu-22.1101"->"Mat-1.1132" [constraint=false, style="dotted",\
label="vaihdannaisia", fontsize=8];
"T-106.1150"->"T-110.2100";
"T-106.1200"->"T-111.2350";
"T-121.2100";
"Mat-1.2600"->"T-61.2010";
"Mat-1.1120"->"T-61.2010";
}

{
/*
T-A1
näissä esitietoina mm "basics in programming" joka tulkittu
T1-kurssiks
*/
node [shape="invtriangle", style=filled, fillcolor=blue];
"T-106.1240"->"T-106.3101";
"T-106.1220"->"T-106.3101";
"T-106.1220"->"T-76.3601";
"T-79.1001"->"T-79.3001";
"T-106.1220"->"S-87.3190";
}

{
/*
I-A1
Esitietoina "perusmatikat", joita edustaa C3-II (koska sen asiat on
tärkeitä I-moduulissa)
*/
node [shape="triangle", style=filled, fillcolor=red];
"T-61.2010"->"T-61.3010";
"Mat-1.1132"->"T-61.3020";
"Mat-1.2600"->"T-61.3020";
"Mat-1.1132"->"T-61.3040";
"Mat-1.2600"->"T-61.3040";
"Mat-1.1132"->"T-61.3050";
"Mat-1.2600"->"T-61.3050";
}

}

/*
rajoitetaan että tietyn kevaan tai syksyn kurssit on samalla tasolla
graafissa ao. ajankohdan labelin kanssa
*/

{rank=same;s1;"Mat-1.1110";"Tfy-3.1241";"Tfy-3.1242";"T-106.1200";
"T-106.1150";};

{rank=same;k1;"Mat-1.1120";"Tfy-3.1253";"Tfy-3.1254";"T-106.1220";
"T-106.1240";"T-110.2100";};

{rank=same;s2;"Mat-1.1131";"Mat-1.1132";"Tu-22.1101";"T-79.1001";
"T-76.1143";"T-61.2010";"Mat-1.2600";};

{rank=same;k2;"T-121.2100";"T-61.3020";"T-61.3010";"T-111.2350";"T-76.3601";
"T-79.3001"; "S-87.3190"; "T-106.3101";};

{rank=same;s3;"T-61.3040";"T-61.3050";};
}

2 kommenttia:

  1. Kiva tietää että edes joku katsoi aikanaan sitä kaaviota, jonka nyhräämiseen meni tovi, kuin myös sen imagemapin käsisäätöön. Tiedätkö onko jossain graafipulauttimessa mahdollisuutta tehdä laatikoista tai nuolista semitriviaalisti linkkejä?

    VastaaPoista
  2. Tosiaan, tää graphviz tekee suoraan kunhan generoi svg:ksi. Ihastuin ensinäkemältä. Kauneinta on, että pystyin speksaamaan "URL="https://noppa.tkk.fi/noppa/kurssi/\N"", eli että solmun urli on allaoleva urlibody + solmun nimi.

    VastaaPoista