Reikäkorteista pilvipalveluihin - vuosikymmeniä tietotekniikan opiskelun muutoksissa mukana
Aloitin tietotekniikan opinnot vuonna 1976 Helsingin yliopiston Tietojenkäsittelyopin laitoksella. Opiskelupaikat olivat hajautettuna neljään eri toimipisteeseen Helsingissä, Porthanialle, Bulevardille, Domukselle sekä Eduskuntatalon taakse Töölönkadulle, jossa sijaitsi tietokonesali. Nimenomaan tietokonesali, sillä isossa salissa oli Burroughs B6700-sarjan mainframe-luokan kone ja sali täynnä erilaisia järjestelmään liittyviä laitteita: keskusyksikkö, nauha-asemia, levyasemia, rivikirjoittimia ja operaattorien työpisteitä. Opiskelijalla ei ollut mitään asiaa konesaliin, se esiteltiin meille ikkunan takaa. Burroughs oli aikansa edelläkävijä arkkitehtuureillaan, ja koneen käyttäjät voivat käyttää korkean tason ohjelmointikieliä kuten Algol ja Cobol sekä Fortran. Burroughsin toiminta jatkuu nykypäivänä Unisys-tietokoneiden sarjana.
Ohjelmoinnin opiskelu Helsingin yliopistossa 70-luvulla
Ohjelmoinnin opiskelu aloitettiin symbolisella konekielellä (assembly), jossa konekieliset komennot (bittijonot) korvattiin helpommin muistettavilla tekstikomennoilla kuten LOAD, STORE, ADD, DIV jne. Konekielen jälkeen ohjelmointi jatkui lausekielillä eli Algolilla ja Cobolilla.
Ohjelmoinnin opiskelu tapahtui teorialuennoilla, kotitehtävät ja tentti tehtiin kynällä ja paperilla. Komennot piti siis muistaa ulkoa. Tentissäkin koodattiin paperille ilman mitään apuvälineitä. Kotitehtävistä sai lisäpisteitä kurssiarvosanan muodostumiseen. Kotitehtävät purettiin siten, että assistentti, joka piti laskuharjoitukset (kotitehtävien purkutilaisuus), määräsi suoritetuksi merkittyjen tehtävien perusteella opiskelijan kirjoittamaan koodinsa liitutaulle.
Jokaiseen ohjelmointikurssiin liittyi harjoitustyö eli oppien soveltaminen käytäntöön. Ohjelmakoodi tallennettiin reikäkorteille. Reikäkorttikoneen käyttö opetti tarkkuutta. Lyöntivirhe tarkoitti kortin hylkäystä ja uuden kirjoittamista sen tilalle. Yhdelle kortille kirjoitettiin yleensä yksi komento. Lausekielissä komento saattaa olla hyvinkin pitkä ja niitä tietenkin jaettiin usealle eri kortille. Muistan esimerkiksi Cobol-harjoitustyöni pituudeksi yli 1000 korttia. Niitä pinoja sitten kuljetettiin salkussa kotiin ja koululle. Korttien järjestys piti säilyä täsmälleen oikeana. Jos pakka tippui ja järjestys sotkeutui, ei ollut muuta keinoa kuin lukea korttien yläreunasta koodia ja järjestää kortit sen mukaan.
Ohjelman suorituksen pystyi ajamaan kolme kertaa päivässä, ensimmäinen puolilta päivin, toinen ajo oli kolmen maissa iltapäivällä ja viimeinen oli yöajo. Korttipakka vietiin tietokonesalin seinustalla olevaan laatikostoon kuminauhalla ympäröitynä. Kun ajo oli suoritettu, pinosta etsittiin oma ketjulomakelistaus ajon tuloksista ja noudettiin oma korttipakka pois. Nämä olivat niin sanottuja eräajoja eli mahdolliset syötteet annettiin reikäkorteilla ajoon mukaan.
Ajokäytäntökin kouli meitä ohjelmoinnin opiskelijoita äärimmäiseen tarkkuuteen. Esimerkiksi pisteen puuttuminen koodista tarkoitti, että käännös ei mennyt läpi ja piti odottaa vähintään kolme tuntia ennen kuin sai ajettua uudestaan. Yleensä kesti useita päiviä, että sai kielioppivirheet korjattua koodistaan ja sitten vasta pääsi testaamaan varsinaista toimintaa eli tekikö ohjelman sen mitä piti.
Kolmantena opiskeluvuotena laitokselle hankittiin opiskelijoiden käyttöön kolme näyttöpäätettä. Päätteille sai varata aikaa korkeintaan puolen tunnin pätkissä, mutta ei peräkkäisiä aikoja. Varsinainen koodin tallennus piti tehdä reikäkorttikoneilla. Jatkokehityksen pystyi tekemään päätteen avulla ja ohjelman pystyi myös laittamaan ajojonoon päätteellä. Ohjelmien kehittäminen helpottui todella paljon, kun ei tarvinnut odottaa kolmen tunnin välein tapahtuvaa operaattorien käynnistämää eräajoa. Neljäntenä opiskeluvuotenani 1979 laitos siirtyi Tukholmankadulle, jonne reikäkorttikoneita ei enää asennettu, vaan näyttöpäätteiden määrää lisätiin reilusti. Näyttöpäätteiden käytössäkin piti olla huolellinen. Kun koodauksen tallensi, ei riittänyt pelkkä save-komento. Piti muistaa lisäksi tehdä safe save -komento. Lähes kaikille sattui ainakin kerran, että safe save-komento unohtui ja monen tunnin työ saattoi mennä hukkaan. Operaattorit tyhjäsivät tallennustiloja tarvittaessa ja vain safe save tiedostot säilyivät.
Ensimmäiset mikrotietokoneet (ABC80) hankittiin laitokselle 1980-luvun alussa. Itse en niitä käyttänyt opintoihini, mutta assistenttina opiskelujeni neljännestä vuodesta lähtien toimiessani opastin mikrojen käyttöä joissain harjoitustöissä. Kielenä käytettiin Basic-kieltä. Koneissa tallennusvälineinä toimivat kasetit.
Tekstinkäsittely
Tekstinkäsittelyohjelmat olivat 70- ja 80-lukujen vaihteessa vaatimattomia. Tekstille annettiin erillisillä komennoilla ohjauskoodeja HTML-kieltä muistuttavalla tavalla. Erikseen sai tulostettua koodit sisältävän tekstin ja lopullisen version. Tulostus tehtiin ketjulomakkeelle. A4-tulostus piti tehdä sellaiselle ketjulomakkeelle, jossa A4-arkit olivat liimattuna yläreunastaan kiinni. Arkit irrotettiin sitten erikseen ketjupohjasta. Oman graduni olen vielä kirjoittanut kirjoituskoneella, koska tein graduni loppuun äitiyslomani aikana. Nykyisin päättötöistä opiskelija toimittaa ohjaajalle useita eri versioita ennen varsinaista palautusta. Omana aikanani ensimmäinen palautus oli yleensä viimeinen palautus. Kirjoituskoneella tehty kymmenien sivujen mittainen kirjoitelma piti kirjoittaa kokonaan uudestaan, jos siihen halusi tehdä muutoksia. Itsellä ei aika riittänyt aloittaa uudelleen kirjoitustyötä alusta vaipanvaihdon lomassa, vaikka arvosana olisi siitä noussut.
Poissa opiskeluympäristöstä
Ennen valmistumista siirryin assistentin tehtävistä Rehtorin viraston suunnittelijaksi, jossa Cobol-koodia käyttäen ylläpidin Helsingin yliopiston opiskelijarekisterijärjestelmää eli meidän Peppiämme vastaavaa ohjelmistoa. Ohjelmistolla ylläpidettiin lähes 30 000 opiskelijan tietoja. Siihen aikaan yliopiston kirjoilla pystyi olemaan muistaakseni yli kymmenen vuotta ja senkin jälkeen vielä niin sanotulla rehtorin mustalla kirjalla.
Muutamaksi vuodeksi 80-luvun alkupuolella menetin kokonaan kontaktini tietotekniikan opiskelukäytäntöihin, koska siirryin Espoon kaupungin atk-toimistoon systeemisuunnittelijaksi. Vastuullani olivat Espoon sosiaalipuolen tietojärjestelmät. Järjestelmien ohjelmointiin käytettiin Databus-ohjelmointikieltä.
Seinäjoen ammattikorkeakouluun
Muutettuamme Seinäjoelle 80-luvun puolivälissä palasin opetustöihin Kauppaoppilaitokselle. Pidin aikuisille suunnattuja iltakursseja. Opetin tietokoneen peruskäyttöä, tekstinkäsittelyohjelman käyttöä sekä taulukkolaskentaa. Opetus tapahtui mikroilla. Muistaakseni mikrot olivat IBM PC -koneita, jotka käyttivät Intelin 80286-mikroprosessoreita. Mikrot olivat kehittyneet niin, että kasettien sijasta tallennus tapahtui levykkeelle. Aluksi levykkeet olivat 5,25-tuumaisia taipuvia niin sanottuja lerppuja ja IBM:n PS/2 -sarjasta lähtien 3,5 tuuman korppuja. Käyttöjärjestelmänä mikroissa oli MS-DOS, Windows-sarjan edeltäjä. Kotikoneina Commodore 64 -mikrot olivat yleistyneet. Commodoreilla pystyi koodaamaan Basic-kieltä, jota siihen aikaan käytettiin yleisesti vasta-alkajan opetukseen.
90-luvun alussa minulla oli taas muutaman vuoden katkos opetustöissä, koska olin suunnittelijan Seinäjoen Atk-palvelussa. Työnkuvani oli koodaamisen lisäksi taloushallinnon järjestelmämyynti kokonaispakettina, joka sisälsi laitteet, ohjelmistot ja niiden koulutus. Siihen aikaan tietokoneista puhuttiin prosessorityypin mukaan joko 286-, 386-, 486- tai Pentium-koneista vähän samaan tapaan kuin nykyisin puhutaan puhelimista 4G tai 5G. Mikroissa nimitys tuli Intelin prosessorityypin mukaan.
Palasin opetustyöhön 90-luvun puolivälissä Kaupan alan yksikköön ammattikorkeakoulun perustamisen aikoihin. Näkyvin muutos opetuskäyttöön tarkoitetuissa laitteissa oli siirtyminen komentopohjaisesta MS DOS -käyttöjärjestelmästä graafiseen Windows-käyttöjärjestelmään. Toki Windows-versiot pitkään aina Windows XP-käyttöjärjestelmään saakka perustuivat MS DOS -käyttöjärjestelmään. Itselle komentopohjaisesta käytöstä graafiseen käyttöön perustuvat komennot aiheuttivat jonkin aikaa pientä vastarintaa. Vanhan koulukunnan edustajana olin tottunut kirjoittamaan pitkän komentojonon nopeasti ja hiiren sekä kuvakkeiden kanssa säätäminen tuntui aluksi vaivaloiselta. Nopeasti graafiseen käyttöjärjestelmään kuitenkin tottui. Enää ei tarvinnut muistaa ulkoa komentoja ja niiden parametreja. Windows oli sen verran uusi asia, että sen käyttöä opetettiin Tietotekniikan perusteet -kurssilla.
Myös internet teki tuloaan Suomeen ja myös opetukseen. Internetin suosituimmat sovellukset 90-luvun alussa olivat sähköposti ja ftp tiedostojen siirto. Nämä palvelut eivät kuitenkaan olleet suurten massojen käytössä. Muistan 90-luvun puolivälissä esitelleeni opiskelijoille Gopher-palvelua, jolla oli mahdollista hakea tietoa internetistä. Sisällöntarjoajat pystyivät järjestämään tiedon aihealueittain ja käyttäjät hakivat tietoa näistä aiheista. Palvelu toimi tekstipohjaisesti. Vasta www-sovelluksen julkaisu aiheutti valtaisan muutoksen. Kaupalliset yritykset kehittivät helppokäyttöisä selaimia, joilla tietoa voitiin hakea internetistä. Suosituimmaksi selaimeksi alussa nousi Netscape ja vähän myöhemmin Microsoftin Internet Explorer. World Wide Web (www) onkin 90-luvun loppupuolelta asti tarkoittanut useimmille ihmiselle samaa kuin internet. Kehittyneet hakukoneet ovat vielä lisänneet webin käyttöä tiedon haussa siinä määrin, että nykyisin tiedonhaun synonyymina käytetään sanaa googletus. Vielä 90-luvulla moneen uuteen asiaan tutustuminen tarkoitti tiedonhakua kirjoista. Itse muistan hakeneeni kirjastosta kirjan, jossa neuvottiin tapetointi. Nykyisin etsisin youtube-videon aiheesta.
Ohjelmoinnin opetusta Seinäjoella
80-luvulla suosittu Basic-ohjelmointikieli oli vielä seuraavallakin vuosikymmenellä käytössä ja varsinkin sen pohjalta kehitetty VisualBasic ja sen .NET -versio saavutti suuren suosion. Muita opetuksessa käytettyjä kieliä 90-luvulla olivat muun muassa C-kieli. Alun perin C-kieli kehitettiin jo 70-luvulla Unix-käyttöjärjestelmää varten. Se tarkoitettiin järjestelmäohjelmointikieleksi, mutta sillä on ohjelmoitu paljon myös sovellusohjelmia.
C++ -kieli perustuu C-kieleen. C++-ohjelmointikieltä käytetään usein ohjelmistojärjestelmien, ohjelmien sekä pelien ohjelmointiin ja se mahdollistaa olio-ohjelmoinnin. Myös jotkin uudemmat 90- ja 2000-luvun olio-ohjelmointikielet pohjautuvat C-kieleen ja siitä kehitettyyn C++ -kieleen, kuten C# ja Java. Java on suosittu kieli, jota voi käyttää moniin tarkoituksiin joko yleiseen kehitykseen tai esimerkiksi peliohjelmointiin.
Vaikka JavaScript nimeltään muistuttaa Java-kieltä, se eroaa kuitenkin Javasta muuten paitsi kieliopiltaan. JavaScriptiä käytetään web-kehityksessä. Toinen suosittu web-ympäristössä käytettävä kieli on PHP.
C# on yksi suosituimmista kielistä aloittelijoiden keskuudessa. C#-ohjelmointikieltä käytetään ensisijaisesti pelikehitykseen ja erityisesti Windows-pohjaisiin sovelluksiin. Myös Python on suosittu ensimmäinen kieli, koska sen kielioppia pidetään muita kieliä helpompana. Toisaalta Pythonista ei ole niin helppo siirtyä käyttämään muuta ohjelmointikieltä sen yksinkertaisen rakenteen vuoksi.
Näitä kaikkia kieliä on opiskeltu tai opiskellaan Seinäjoen ammattikorkeakoulussa. Itse näistä kielistä olen opettanut Javaa ja C#-kieltä. Ohjelman kehitys nykyisillä sovelluskehittimillä on mielestäni teknisesti erittäin helppoa. Koululla käytössä oleva VisualStudio-kehitin avustaa koodaajaa koko prosessin ajan. Jos vertaa koodin kirjoittamista omaan aloitukseeni reikäkorttikoneella ja vielä 80- ja kenties 90-luvun alussa käytettyyn muistiolla kirjoittamiseen, on tultu huima edistysaskel eteenpäin. Sovelluskehittimien IntelliSense-ominaisuus avustaa kirjoittamista koko ajan, ulkoa ei oikeastaan tarvitse enää muistaa komentoja. Kehittimien avulla oikeaa ratkaisua voi myös hakea niin sanotulla pistetempulla. Jos haluaa etsiä, mitä esimerkiksi jollekin oliolle voi tilanteessa tehdä, riittää kun kirjoittaa olion nimen perään pisteen ja IntelliSense tekee ehdotuksia.
Kehitystä kaikilla osa-alueilla
Ohjelmoinnin opetus ja opiskelu ovat tehneet suuria harppauksia. Myös tiedon tallennuksessa on tultu huimasti eteenpäin. Ei ole reikäkortteja tai reikänauhoja tai lerppuja tai korppuja. Lerpun tallennustila oli 360 kB ja korpun joko 720 kB tai 1,44 MB. Kun 80-luvun lopussa asensin asiakkaalle taloushallinnon ohjelmistopakettia, minulla saattoi olla mukana yli 20 korppua, joilta asennus suoritettiin. Joskus kävi niin, että viimeinen tai lähes viimeinen levyke olikin viallinen ja koko työ meni hukkaan. Asennuksen pystyi tekemään vasta, kun ohjelmistotoimittajalta tuli postin välityksellä uudet levykkeet. Kiintolevytilaa 80-luvun työmikrossa oli useimmiten vain 20 MB. Nykyisin siirrettävät muistit kuten muistitikut saattavat tallentaa tietoa kymmeniä gigoja, puhumattakaan ulkoisista kovalevyistä, joiden kapasiteetti voi olla useita teratavuja.
Pilvipalvelut ovat jotain sellaista, joista ei 70-luvulla osannut edes unelmoida. Palveluun voi olla yhteydessä mistä tahansa ja milloin tahansa, kunhan nettiyhteys on käytössä. Tallennustilaa voi ostaa lähes rajattomasti ja tietoja voi jakaa muiden kanssa. Siirrettäviä muisteja ei välttämättä tarvita ja ohjelmien asennukset sujuvat kätevästi netin välityksellä.
Tekniikassa on tultu työurani aikana isoja harppauksia eteenpäin. Tekniikka on tietysti tukenut myös opetuksen toteuttamista. Vaikea olisi kuvitella, että nyt opettaisin ohjelmointia teorialuennoin. Käytäntö on paras opettaja ohjelmoinnissa. Kun opiskelijat saavat itse kokeilla konkreettisesti reaaliajassa ohjelman kirjoittamista ja ajamista, tulee palaute oppimisesta välittömästi. Opiskelija voi ohjelmaa kehittäessään ajaa omaa ohjelmaansa muutaman minuutin aikana kenties kymmenenkin kertaa, melkoinen muutos oman opiskeluaikani kolmeen ajoon päivässä. Tiedän, että esimerkiksi Keski-Euroopassa ohjelmoinnin opetus saattaa edelleen olla teoriapainotteista. Nyt rajoitustenkin aikana ohjelmoinnin opetus on sujunut kohtuullisen hyvin kehittyneen tiedonsiirtotekniikan ansiosta. Kykenin näyttämään omalla koneella kotoa käsin esimerkin ja opiskelijat voivat yrittää samaa omalla koneella. Jos vielä kaikilla olisi ollut kotona käytössä kaksi näyttöä, opiskelu olisi sujunut vielä paremmin.
Itse ohjelmoinnissa perusasiat ovat säilyneet samanlaisina. Ohjelmoinnissa käytetään edelleen muuttujia ja rakenteina ehtolauseita, toistolauseita ja metodeja. Kun osaa ohjelmoida jollakin ohjelmointikielellä, on kohtuullisen helppo omaksua muita kieliä. Minä itse olen urani aikana käyttänyt noin kymmentä eri ohjelmointikieltä. Suurin muutos minun aikanani on ollut olio-ohjelmoinnin omaksuminen. Sitä ei oman opiskelun aikana opetettu, vaikka olio-ohjelmoinnin keskeiset periaatteet oli esitetty jo 60-luvulla.
Myös opiskelijan ja opettajan kanssakäymisessä on tapahtunut muutos näinä vuosikymmeninä. Oman opiskeluaikanani opettajan kanssa pystyi keskustelemaan vain tiettynä vastaanottoaikana. Vastaanottoaikaa taisi olla pari tuntia viikossa. Jos jostain syystä myöhästyi ajasta, piti odottaa ensi viikkoon. Sähköinen yhteydenpito helpottaa nykyisin opettajan ja opiskelijan tiedon vaihtoa. Pidän siitä, että opettaja ei nykyisin ole enää opiskelijan ’yläpuolella’, vaan enemmänkin rinnalla kulkija. Toivottavasti tekniikka ja ymmärtävä suhtautuminen puolin ja toisin vie opiskeluelämää yhä paremmille urille.
Osin haikein ja osin helpottunein mielin jään nyt eläkkeelle. Seinäjoen ammattikorkeakoulussa olen työskennellyt vuodesta 1994, aluksi Kaupan alan yksikössä Koulukadulla. Sen jälkeen jatkoin uudella Framilla, johon perustettiin ICT-yksikkö Kaupan alan tietojenkäsittelyn koulutusohjelmasta ja Tekniikan yksikön tietotekniikan koulutusohjelmasta. Muutokset jatkuivat, kun tietojenkäsittelyn koulutusohjelma lakkautettiin ja siirryin tietotekniikan koulutusohjelman opettajaksi ja edelleen, kun tietotekniikan koulutusohjelma lakkautettiin siirryin automaatiotekniikan koulutusohjelmaan opettajaksi. Toki olen koko Framilla työskentelyn ajan opettanut useammassa koulutusohjelmassa, kaikissa tekniikan yksikön koulutusohjelmissa ja lisäksi Sosiaali- ja terveysalan opiskelijoille olen opettanut tieto- ja viestintätekniikkaa. Olen viihtynyt Seinäjoen ammattikorkeakoulussa erinomaisesti, työyhteisö on ollut kannustava ja nuorten kanssa toimiminen on ollut palkitsevaa. Nyt on edessä sitten viimeinen siirtymä, koulutusohjelmasta ei ole kyllä vielä tietoa!
Hilkka Niemelä
Tietotekniikan lehtori
SeAMK Tekniikka