In english
Espoo 30.-31.10.2008
Ohjelmoinnin perusopetuksen verkostohanke
Suurenna

Ohjelmoinnin perusopetuksen verkostohanke on Suomen Virtuaaliyliopiston (SVY) rahoittama matemaattis-luonnontieteellisellä alalla toimiva yliopistoverkosto. Yliopistojen tieteenalojen verkostot rakentavat jonkin tieteenalan tai monitieteistä valtakunnallista toimintaverkkoa. Verkostojen sivuilta löytyy tietoa mm. alan kursseista, tutkijakouluista ja ajankohtaisista tapahtumista.

Verkostohankkeen tarkoituksena on edistää ohjelmoinnin perusopetuksessa käytettyjen erikoistuneiden välineiden ja materiaalien leviämistä suomalaisissa yliopistoissa sekä edesauttaa tämän alueen opettajien verkostoitumista. Tavoitteena on vakiinnuttaa tasokas ja taloudellinen tieto- ja viestintätekniikan käyttöön vahvasti nojaava opetuksen ja tutkimuksen toimintatapa, joka hyödyntää myös viimeisintä alan tutkimustietoa.

Verkostohanke toimii tiiviissä yhteistyössä Tietojenkäsittelytieteen Seuran piirissä toimivan teemaryhmän Tietojenkäsittelytieteiden opetuksen SIG kanssa. Teemaryhmän tavoitteena on tuoda yhteen alan opettajia ja opetusteknologiasta kiinnostuneita tutkijoita. Muodostuvan verkoston tarkoituksena on edistää mm. opettajien välistä yhteistyötä, opetus- ja oppimateriaalien vaihtoa, opetuksen tueksi kehitettyjen tieto- ja viestintätekniikkaan perustuvien välineiden käyttöönottoa sekä ottaa kantaa ajankohtaisiin yhteiskunnallisiin alan opetukseen liittyviin kysymyksiin.

ViLLE-tehtävät TRAKLA2:ssa
Suurenna

VILLE on ohjelmoinnin alkeisopetukseen tarkoitettu visuaalinen työkalu sekä luentokäyttöön että itseopiskeluun. Sen yhtenä tärkeimpänä tavoitteena on havainnoida (imperatiivisten) ohjelmointikielten perustoiminnallisuuksien (asetuslause, kontrolli- rakenteet, metodit ja niiden määrittely) kieliriippumattomuutta; erilaiset ohjelmointikäsitteet eivät juurikaan eroa syntaksiltaan ja toiminnaltaan eri ohjelmointikielien välillä.

Tutoriaalit:
Esimerkin luonti (swf)
Kysymyksien lisääminen (swf)

Työpajan kuvaus

Työpajassa näytetään, miten ViLLE- ja TRAKLA2-tehtävistä voidaan muodostaa ohjelmoinnin peruskursseille kattava oppimiskokonaisuus. Aluksi tutustutaan ViLLEn ominaisuuksiin harjoittelemalla uusien esimerkkien ja kysymysten luontia sekä perehdytään syntaksieditorin mahdollisuuksiin. Luoduista harjoituksista muodostetaan verkossa TRAKLA2-palvelimen avulla toimiva kysymyssarja. Työpajan aikana osallistujat muodostavat kukin valmiin harjoituskokonaisuuden, jonka voi sellaisenaan integroida oman ohjelmoinnin perusopetuskurssinsa osaksi täydentämään tai korvaamaan harjoitustöitä, demonstraatioita tai muita harjoituksia. Lisäksi harjoitellaan ViLLEn vientiominaisuutta hyväksikäyttäen muodostamaan itsenäisesti toimiva harjoituspaketti, jonka voi tarjota opiskelijoiden käyttöön esimerkiksi muistitikulla tai verkosta ladattavaksi.

Työpajan ohjelma

  • ViLLEn ja TRAKLAN esittely 20 min.
  • Tehtävien tekeminen 25 min.
  • Kurssin tuloksien katselu 10 min.
  • Tauko 15 min.
  • ViLLEn opettajan versio ja sen toiminnot 15 min.
  • Uusien tehtävien tekeminen 25 min.
  • Tauko 10 min.
  • Hands-on harjoitukset jatkuvat 30 min.
  • Oman kurssin luonti ja palaute 15 min.

Graphics
Suurenna

Ohjelmoinnin opetuksessa opiskelijoiden mielenkiinnon ylläpito on monesti kovin haasteellista. Perusasioiden opettaminen on hyvä tehdä yksinkertaisilla esimerkkiohjelmilla, mutta nykyisiä opiskelijoita eivät kuvaruudulle tulostuvat tekstit ja numerosarjat paljon jaksa motivoida. Syykin on ymmärrettävä, kun katsoo, millaisia ovat ohjelmat, joita he itse käyttävät. Ne ovat täynnä visuaalista ilotulitusta ja rikkaita äänimaisemia.

Tällaisen multimediaspektaakkelin ohjelmointi aivan ruohonjuuritasolta lähtien on hankalaa. On kuitenkin kehitetty järjestelmiä, esimerkiksi Alice, jotka mahdollistavat kolmiulotteisten interaktiivisten ohjelmien yksinkertaisen toteutuksen. Monesti kuitenkin riittää vähempikin graafisuus, ja tätä varten on kehitetty fi.jyu.mit.graphics.

fi.jyu.mit.graphics, myöhemmin graphics, on Java-kirjasto yksinkertaisten kaksi- ja kolmiulotteisten ohjelmien tekemiseen. Kirjasto on kehitetty Jyväskylän yliopiston tietotekniikan laitoksella. Kirjasto esimerkkeineen ja lähdekoodeineen on julkisesti saatavilla osoitteessa: https://trac.cc.jyu.fi/projects/ohj1/wiki/graphics

Kirjastoa on käytetty Jyväskylän yliopistossa ohjelmoinnin ensimmäisellä kurssilla ohjelmoinnin peruskäsitteitä opetettaessa. Opiskelijat ovat ottaneet kirjaston innolla vastaan.

Luennoilla graphics-kirjastoa on käytetty ohjelmoinin perusrakenteiden, kuten ehtolauseiden, silmukoiden, aliohjelmien, funktioiden ja muuttujien käytön opetteluun.

Alla on yksinkertainen esimerkkiohjelma graphics-kirjastolla tehtynä.

	
	import fi.jyu.mit.graphics.EasyWindow;
	public class SimpleGraphics {
	  public static void main(String[] args) {
		EasyWindow window = new EasyWindow();
		window.addLine(0,0,100,100);
		window.addCircle(50,50, 20);
		window.showWindow();
	  }
	}
						

Työpajan ohjelma

  • 9:15- 9:25 Graphics esittely
  • 9:25- 9:40 Työkalujen hakeminen, kääntäminen komentoriviltä
    • Tehtävä 1 ja Tehtävä 2.2
  • 9:40-10:05 Aliohjelman motivoiminen
    • Tehtävä 2.3
  • 10:05-10:20 Samat Eclipsessä
    • Tehtävä 2.4, 2.5
  • 10:20-10:30 Omatoimista ideointia graphicsin ympärillä
    • Tehtävä 2.6, 2.7
  • 10:30-11:45 ComTest esittely ja omatoiminen kokeilu
    • Tehtävä 3.
  • 11:45-12:00 Marker esittely ja omatominen kokeilu
    • Tehtävä 4.

Tekniset vaatimukset: JDK 1.5 tai uudempi

ComTest
Suurenna

Testien kirjoittamista helpottamaan on tehty ComTest-työkalu.

Kohta peruskäsitteiden koostamisen opittuaan on opiskelijoiden hyvä oppia testaamisen merkitys. Näin he oppivat ymmärtämään hyödyn, mikä testaamisesta on ohjelmiston kehitykselle jo sen varhaisessa vaiheessa, eikä testauksesta muodostu pakollista rasitetta, joka vain pitää tehdä projektin lopussa. Opiskelija oppii suunnittelemaan ohjelmia testaten.

Testien kirjoittaminen Javalla, vaikka JUnit olisikin käytössä, on työlästä. Testit usein jäävät tällöin myös unhoon. ComTest-työkalu auttaa testien kirjoittamisessa, mutta nostaa myös testit esille, sillä ne dokumentoituvat mukaan rajapintadokumentaatioon esimerkkeinä rajapinnan käytöstä.

Alla yksinkertainen esimerkki käytöstä:

  /**
   * Funktiolla etsitään luvun pienin jakaja
   * @param n tutkittava luku
   * @return luvun pienin jakaja. 1 jos luku on alkuluku
   * @example
   * 
   * pieninJakaja(1) === 1;
   * pieninJakaja(2) === 1;
   * pieninJakaja(3) === 1;
   * pieninJakaja(4) === 2;
   * pieninJakaja(5) === 1;
   * pieninJakaja(6) === 2;
   * 
   */
    public static int pieninJakaja(int n) {
       for (int i=2; i<=n/2; i++)
	       if ( n % i == 0 ) return i;
       return 1;
    }
						

ComTest-työkalulla muodostetaan annetusta testistä JUnit-testi, joka ajetaan JUnit-työkaluilla. ComTest-liitännäinen Eclipse-kehitysympäristöön mahdollistaa testien generoinnin ja ajamisen automatisoinnin.

Työpajan ohjelma

Tekniset vaatimukset: Vähintään JDK 1.5. Mielellään Eclipse 3.2 tai 3.3 tai uudempi. Oikeus kirjoittaa hakemistoon eclipse/plugins.

Marker
Suurenna

Marker ruudun päällä oleva "läpinäkyvä" kalvo, jolle voidaan piirtää. Marker on erityisesti suunniteltu korostamaan luennolla esitettävän ohjelman eri osien/ tekstien merkitystä. Normaalistihan korostukseen on käytössä vain kursori ja mahdollisesti ohjelman oma alueen merkitseminen. Usein kuitenkin pitäisi samalla kertaa pystyä korostamaan kerralla monta ohjelman osaa ja mahdollisesti piirtämään näiden välisiä riippuvuuksia. Elävässä esityksessä, jossa käytetään todellista ohjelmaa PowerPoint kalvojen sijasta, ei korostusmahdollisuutta ole valmiina. Marker ratkaisee tämän ongelman.

Työpajan ohjelma

Tekniset vaatimukset: Windows 95,nt,2000,XP. Windows Vistan kanssa hieman ongelmia. Linux: toimii Winen kanssa.

IDLE
Suurenna

IDLE on edistynyt WWW-pohjainen oppimisympäristö, joka on suunniteltu erityisesti tietotekniikan monimuoto-opetuksen tarpeisiin. IDLEn ensisijaisena tavoitteena on helpottaa viikkoharjoitusten kulkua luokkatilanteessa ja siten käyttää vähäisiä resursseja oppimiseen ja oppimisen ohjaukseen kalvojen ja paperien pyörittelyn sijaan. Tätä varten IDLEssä on toteutettuna toiminnallisuutta, mitä ei löydy muista oppimisympäristöistä.

IDLE on TTY:n Ohjelmistotekniikan laitoksella, alun perin TTY:n Ohjelmistotekniikanlaitoksen tietokantakurssien käyttöön suunniteltu edistynyt, monimuoto-opetukseen (blended learning) keskittyvä oppimisympäristö. Nykyisin ympäristöä käytetään myös monilla muilla ohjelmistotekniikan laitoksen kursseilla ja mikäli kiinnostuneita löytyy riittävästi, se on tarkoitus julkaista vapaaseen levitykseen.

IDLEn ensisijaisena tavoitteena on helpottaa harjoitus- ja harjoitustyöprosessien kulkua ja siten käyttää vähäisiä resursseja (sekä oppilaiden että henkilökunnan) oppimiseen ja oppimisen ohjaukseen kalvojen ja paperien pyörittelyn sijaan. Erityisesti tämä on koettu tärkeäksi viikkoharjoituksissa, joissa on käytettävissä hyvin rajallinen määrä aikaa. Järjestelmässä on toki laajasti muutakin toiminnallisuutta, mutta yllämainitun tavoitteen toteuttamiseksi tehty toiminnallisuus erottaa IDLEn muista vastaavanlaisista järjestelmistä.

Työpajan kuvaus

Työpajan aktivoivana osuutena demotaan IDLEn käyttöä simuloidussa viikkoharjoitustilanteessa. Työpajan osallistujat suorittavat pieniä tehtäviä IDLEssä aluksi kuin olisivat tekemässä tehtäviä ennen harjoituksia kotona ja sen jälkeen kuten oltaisiin viikkoharjoituksissa. Näin IDLEn ominaisuudet saadaan esiteltyä mahdollisimman konkreettisesti ja realistisesti.

Kun IDLEn ominaisuudet opiskelijan näkökulmasta ovat tuttuja, demoamme vielä IDLEn käyttöä dataprojektorin avulla. Tässä vaiheessa keskitymme erityisesti opettajan toiminnallisuuksiin, jotka eivät ole alun demossa tulleet ilmi.

Työpajan loppuvaiheessa käydään keskustelua. Erityisesti toivomme, että saamme aikaan keskustelua IDLEn kehitysmahdollisuuksista ja yhteistyökuvioita muiden yliopistojen kanssa, koska tavoitteena on, että lytäisimme riittävän määrän kiinnostuneita, jotta IDLE kannattaisi julkaista laajemmalle yleisölle.

Työpajan ohjelma

  • Esitellään IDLE yleisellä tasolla, 30min
  • Simuloidaan IDLEn käyttöä viikkoharjoituksissa, 60min
    • Jokainen osallistuja tekee kotitehtäviä itsenäisesti IDLEssä "ennen harjoitusten alkamista kotonaan"
    • Osallistujat tulevat simuloituun harjoitustilaisuuteen, jossa he muodostavat pieniä harjoitusryhmiä ja tekevät tehtäviä ryhmänsä kanssa IDLEssä
  • Esitellään IDLEä opettajan toiminnallisuuden kannalta, 30min
  • Keskustelua, 60min
    • Pohditaan, miten väline voitaisiin ottaa käyttöön muissakin yliopistoissa kuin TTY:llä
    • Ideoidaan IDLEn jatkokehitysmahdollisuuksia, uusia ominaisuuksia, käyttötapoja, jne.
    • Toivottavasti saadaan koottua kontaktiryhmä, joka jatkaa työskentelyä IDLEn käyttöönottamiseksi TTY:n ulkopuolella

Tekniset vaatimukset: Mikä tahansa uudempi selain (Firefox1.0->, IE 6->). Ei vaadi Javascriptiä, joskin käyttökokemus voi parantua sen avulla.
Tekniset vaatimukset palvelimelle: Apache 2 + Php 5, PostgreSQL 7.4 tai parempi.

Rubyric
Suurenna

Rubyric (aka Aloha 2) on työkalu harjoitustöiden manuaaliseen arvostelemiseen ja palautteen antamiseen.

Automaattisten tarkastustyökalujen kehityksestä huolimatta tietyt harjoitustyöt, esimerkiksi esseet ja vapaamuotoiset ohjelmointityöt, joudutaan edelleen arvostelemaan manuaalisesti. Massakursseilla tämä tarkoittaa yleensä töiden jakamista usealle assistentille, jolloin arvostelun yhtenäisyys saattaa muodostua ongelmaksi. Arvostelua pystytään sekä nopeuttamaan että yhtenäistämään rubriikeilla, eli valmilla joukolla arvostelufraaseja, joista assistentit valitsevat kuhunkin työhön sopivimmat.

Rubyric on helppokäyttöinen verkkosovellus, joka tukee arvosteluprosessia töiden palautuksesta aina palautteiden postitukseen. Kurssin opettaja luo rubriikin helppokäyttöisellä editorilla. Opiskelijat palauttavat työt Rubyriciin, jonka jälkeen opettaja jakaa työt assistenteille. Assistentit lukevat palautukset järjestelmässä, valitsevat opettajan luomista arvostelufraaseista parhaiten sopivat, ja antavat osakokonaisuuksille arvosanat. Assistentit voivat vapaasti muokata fraaseja vastaamaan kutakin työtä, tai antaa ylimääräistä vapaamuotoista palautetta. Lopuksi järjestelmä lähettää palautteet opiskelijoille sähköpostitse.

Rubriikkien käyttö nopeuttaa palautteen antamista, koska assistentit eivät joudu kirjoittamaan kaikkea tekstiä itse. Toisaalta se yhtenäistää arvostelua, koska assistentit joutuvat käymään läpi opettajan ennalta määrittelemät arvosteluperusteet. Tällöin eri assistentit eivät voi painottaa eri osa-alueita mielivaltaisesti.

Rubyric ei aseta rajoituksia palautuksen formaatille, joten arvosteltava työ voi olla yhtä hyvin pdf-dokumentti kuin ohjelmakoodia sisältävä zip-tiedosto. Järjestelmä tukee myös vertaisarviointia, koska työt voi assistenttien sijaan, tai lisäksi, antaa arvosteltavaksi muille opiskelijoille.

Työpajan kuvaus

Työpajassa esitellään Rubyric, rubriikkipohjainen arvostelutyökalu, joka yhtenäistää arvostelua ja nopeuttaa palautteen antamista. Osallistuja voi luoda rubriikin omalle kurssilleen, ja se voidaan jättää järjestelmään käytettäväksi todellisella kurssilla. Vaihtoehtoisesti osallistuja voi kokeilla järjestelmän käyttöä kuvitteellisella kurssilla. Lopuksi kerätään palautetta ja kehitysideoita.

Työpajan ohjelma

  • 14:15 - 15:00 Välineen esittely
  • 15:00 - 15:45 Omien rubriikkien tekeminen pienryhmissä
  • 15:45 - 16:00 Kahvitauko
  • 16:00 - 16:45 Rubriikkien kokeileminen arvostelunäkymässä, palautteen ja kehitysideoiden antaminen

Tekniset vaatimukset: Toimii yleisimmillä selaimilla. Vaatii javascript-tuen, mutta ei java- tai flash-pluginia. Serveripuolella vaatii Rails 2:n.

Invarianttiperusteinen ohjelmointi opetuksessa
Suurenna

Program verification is usually done by adding specifications and invariants to the program and then proving that the verification conditions are all true. This makes program verification an alternative to or a complement to testing. We describe here another approach to program construction, which we refer to as invariant based programming, where we start by formulating the specifications and the internal loop invariants for the program, before we write the program code itself. The correctness of the code is then easy to check at the same time as one is constructing it. In this approach, program verification becomes a complement to coding rather than to testing. The purpose is to produce programs and software that are correct by construction. We present a new kind of diagrams, nested invariant diagrams, where program specifications and invariants (rather than the control) provide the main organizing structure. Nesting of invariants provide an extension hierarchy that allows us to express the invariants in a very compact manner. We have studied the feasibility of formulating specifications and loop invariants before the code itself has been written in a number of case studies. Our experience is that a systematic use of figures, in combination with a rough idea of the intended behavior of the algorithm, makes it rather straightforward to formulate the invariants needed for the program, to construct the code around these invariants and to check that the resulting program is indeed correct. We describe our experiences from using invariant based programming in practice, both from teaching programmers how to construct programs that they prove correct themselves, and from teaching invariant based programming for CS students in class.

Tool support

SOCOS is a prototype tool for constructing programs and reasoning about their correctness. It supports the invariant based programming methodology by providing a diagrammatic environment for specification, implementation, verification and execution of procedural programs. Invariants and contracts (pre- and postconditions) can be evaluated at runtime, following the Design by Contract paradigm. SOCOS can also generate correctness conditions for static program verification based on the weakest precondition semantics of statements. To verify the program the user can attempt to automatically discharge these conditions using the Simplify theorem prover; conditions which were not automatically discharged can be proved interactively in the PVS theorem prover.

Työpajan ohjelma

  • to 30.10:
    • 14.15 - 15.00 Invarianttiperusteinen ohjelmointi - esitys
    • 15.00 - 17.00 Ohjattu ohjelmointiongelman ratkaisu pienryhmissä
  • pe 31.10:
    • 9.15 - 10.00 Invarianttiperusteinen ohjelmointi - esitys
    • 10.00 - 12.00 Ohjattu ohjelmointiongelman ratkaisu pienryhmissä

Programming: Creativity in Three Dimensions

Programming is recognised as one of seven grand challenges in computing education. Decades of research has shown that the major problems novices experience are composition-based -- they do not know what the pieces are and do not know how to put them together. Despite this fact, textbooks, educational practice, and programming education research hardly address the issue of teaching the skills needed for systematic development of programs.

We provide a conceptual framework for incremental program development, called stepwise improvement, which unifies best practice in modern software development such as test-driven development and refactoring with the prevailing perspective of programming methodology, stepwise refinement. The conceptual framework enables well-defined characterizations of incremental program development; in particular, it enables a notion of degree of correctness, which plays a key role in stepwise improvement.

We utilize the conceptual framework to provide a derived programming method, STREAM, designed specifically for novices. The method is a carefully down-scaled version of a full and rich software engineering process particularly suited for novices learning object-oriented programming. In using it, we hope to achieve two things: to help novice programmers learn faster and better while at the same time laying the foundation for a more thorough treatment of more advanced aspects of software engineering.

Revealing exemplary programming processes to novices is an important part of this. Again, textbooks do not address the issue -- perhaps because the textbook medium is static and therefore ill-suited to expose the process of programming. We have found that process recordings in the form of captured narrated programming sessions are a simple, cheap, and efficient way of providing the revelation.

Workshop

Successful design of an introductory programming course is a big challenge. In this workshop we briefly describe the current design of our introductory course; the presentation will focus on

  1. learning goals (skills, not just knowledge),
  2. proper evaluation with respect to learning goals (constructive alignment),
  3. overall course structure (progression), and
  4. key learning activities (e.g. worked examples, mandatory assignments, and projects).

After the introduction, the workshop will focus on the topics the participants find most interesting (chosen from the list above and/or from the topics addressed in the keynote).

 
Jyväskylä 1.-2.11.2007
TRAKLA2
TRAKLA2

Järjestelmä mahdollistaa Tietorakenteet ja algoritmit -kurssin kotilaskujen palautuksen vuorovaikutteisen ja graafisen käyttöliittymän avulla. TRAKLA2 osaa itse muodostaa tehtävien malliratkaisut sekä tarkistaa ja arvostella tehtävät. Palaute tehtävästä tulee näin ollen aina välittömästi - ilman sähköpostin tuomaa viivettä (vrt. vanha TRAKLA). Lisäksi opiskelija voi saada graafisesti esitetyn malliratkaisun tekemäänsä tehtävään heti. Tehtävän voi tämän jälkeen ratkaista tarvittaessa uudelleen uusilla lähtöarvoilla. Palautuskertoja ei myöskään ole rajoitettu.

JHAVÉ
JHAVÉ

The JHAVÉ environment for algorithm visualization (AV) and its associated curricular materials emphasize pedagogical best practices rather than technology. JHAVÉ-based curricular materials are currently available for a wide variety of data structures and algorithms, as are Java support tools for the easy development of algorithm visualizations. Topics to be covered during this session will include best practices in using AV and design of JHAVÉ algorithm visualizations. Activities will first briefly focus on using the JHAVÉ environment as a pedagogical tool, followed by a more indepth session during which participants will learn to create a complete algorithm visualization using the JHAVÉ support tools.

VILLE
Video

VILLE on ohjelmoinnin alkeisopetukseen tarkoitettu visuaalinen työkalu sekä luentokäyttöön että itseopiskeluun. Sen yhtenä tärkeimpänä tavoitteena on havainnoida (imperatiivisten) ohjelmointikielten perustoiminnallisuuksien (asetuslause, kontrolli- rakenteet, metodit ja niiden määrittely) kieliriippumattomuutta; erilaiset ohjelmointikäsitteet eivät juurikaan eroa syntaksiltaan ja toiminnaltaan eri ohjelmointikielien välillä.

Sovelluksen avulla voidaan visualisoida askel kerrallaan ohjelmakoodin suoritusta ja sen vaikutuksia esimerkiksi muuttujien arvoihin, ohjelman tulostuksiin jne. Lisäksi jokaiseen suoritettavana olevaan koodiriviin liitetään automaattisesti generoitu selitys koodirivin merkityksestä.

Esimerkkien lisääminen ja muokkaaminen on vaivatonta ja helppoa. Kopioit vain leikkaa-ja-liimaa periaatteen mukaisesti uuden esimerkin sovelluksen käyttöliittymään ja työkalu hoitaa loput. Näin voit esittää omia esimerkkejä luennoilla, ja voit julkaista omia esimerkkikokoelmia opiskelijoille www-muodossa painamalla vain yhtä painiketta. Siis helppoa ja vaivatonta!

Tällä hetkellä tuettuja ohjelmointikielia ovat pseudokieli, java ja c++. Pseudokielen syntaksin voit määritellä itse, mutta oletuksena pseudokieli on rajattu osajoukko Python kielestä tietue- ja taulukkolaajennuksilla ( Pseudokielen syntaksi ). Käyttöliittymä ja ohjelmakoodirivin selitykset löytyvät sekä suomen että englannin kielillä.

Tekniset vaatimukset: Java 1.5 tai uudempi. Windows: asenna tästä, muut: hae täältä.

Jeliot3
Jeliot3

Jeliot3 on sovellus ohjelman toiminnan visualisointiin. Se visualisoi miten Java-ohjelma tulkitaan. Animoinnin aikana näytöllä näytetään metodien kutsut, muuttujat ja operaatiot. Opiskelija voi seurata ohjelman etenemistä askel askeleelta. Ohjelma voidaan tehdä puhtaalta pöydältä tai sitten voidaan muokata aikaisempaa koodia. Visualisoitavan Javaohjelman ei tarvitse sisältää mitään erikoisia visualisointikutsuja, vaan visualisointi luodaan automaattisesti. Jeliot3 osaa suurimman osan Javan rakenteista ja kykenee animoimaan ne. Erityishuomiota on viimeaikoina kiinnitetty nimenomaan olioominaisuuksien, kuten perintä, animointiin.

Formulaattori
Formulaattori

Formulaattori on Flash-animoitu opetuspeli, joka on tarkoitettu kertaluokkamerkintöjen Theta, Omega ja O itsenäiseen opiskeluun ja kertaamiseen. Pelissä ylläpidetään omaa mikroautotiimiä ja lyödään vetoa oman tallin puolesta. Analogiana algoritmien suoritusaikaan toimivat mikroautojen paristot, jotka hyytyvät annetun funktion mukaan. Funktio voidaan antaa joko tarkasti tai kertaluokkamerkintöjen avulla. Kutakin kisaa ennen pelaajalle kerrotaan vastustajan pariston tarkka ominaisfunktio. Pelaajan tehtäväksi jää valita oma paristonsa tarjollaolevista vaihtoehdoista ja valita vedonlyöntisumma. Kisoissa ajetaan eri määrä kierroksia. Tavoitteena on, että pelaaja huomaa, että lyhyissä kisoissa kannattaa suosia matalaa vakiokerrointa ja erityisesti pitkissä hyvää kertaluokkaa. Kahdenkymmenen kisan jälkeen kausi loppuu ja pelaajan saavuttama voittopotti kirjataan highscore-listaan. Idea Formulaattorista syntyi tarpeesta kehittää jotakin viihteellistä mutta pedagogista opiskelijoiden tylsäksi ja vaikeaksi kokeman aiheen höysteeksi. Ainakin osa opiskelijoista näyttää viihtyneen Formulaattorin parissa.

Pistari
Pistari

Pistari on leikkimielinen Tietorakenteet ja algoritmit -kurssin aihepiiriin sijoittuva tietovisailu. Peli esittää kysymyksen ja siihen neljä vastausvaihtoehtoa. Tehtävänä on valita vaihtoehdoista se, joka on oikein. Pelin läpäiseminen kokonaan edellyttää oikeata vastausta 25 kysymykseen. Yksikin väärä vastaus ja peli päättyy heti. Onneksi pelissä on käytettävissä oljenkorsia, joilla voi poistaa kaksi väärää vaihtoehtoa, kysyä vihjettä tai hypätä kysymyksen yli.

Peliä voi pelata testatakseen tietämystään kurssin keskeisistä aihealueista (ja vähän sen liepeiltäkin) tai vaikkapa muita kurssilaisia vastaan pyrkimällä yhä ylemmäksi parhaiden pelaajien listalla. Muista kuitenkin, että myös aika vaikuttaa saamiisi pisteisiin!

Peliä pelataan Älypää Oy:n kehittämällä sovelluksella, joka käyttää Flash-tekniikkaa. Yhteistyömme Älypään kanssa perustuu vastavuoroisuuteen ja tavoitteemme onkin kerätä aineistoa pelin opetuskäytöstä. Otammekin mielellämme vastaan palautetta tämän tyyppisen välineen soveltuvuudesta kurssille.

Hypoteesi ei ehkä ole niinkään se, että peliä pelaamalla pärjäisi paremmin tentissä vaan se, että kurssin aikana hyvin tehty työ kurssin eteen kantaa hedelmää sekä tentissä että pelissä. Peli ei siis korvaa perinteisiä menetelmiä tenttiin valmistautumisessa. Itse asiassa se on kohtuullisen addiktiivinen ja näin ollen tenttiin valmistautumista suositellaan ennen pelin pelaamista.

Tampere 23.5.2007
MatrixPro
Video

MatrixPro on alustariippumaton algoritmisimulaatio- ympäristö itseopiskeluun ja luentokäyttöön. Järjestelmällä voidaan tuottaa algoritmianimaatioita kirjoittamatta lainkaan ohjelmakoodia. Se mahdollistaa valmiiden tietorakenteiden (taulukot, linkitetyt listat, puut ja verkot) ja niiden yhdisteiden manipuloinnin graafisessa muodossa.

Järjestelmässä on valmiita toteutuksia myös eräille abstraketeille tietotyypeille, kuten perustietorakenteille (pino, jono), hakurakenteille ja prioriteettijonoille. Lisksi omien tietorakenteiden ja algoritmien animointi onnistuu järjestelmän avulla.

Sovellus on ensisijaisesti tarkoitettu opettajille jotka haluavat käyttää algoritmianimaatioita opetuksessaan. Työkalu mahdollistaa automaattisesti luotujen animaatioiden muokkaamisen opettajan haluamiksi. Animaatiot on mahdollista joko valmistella etukäteen tai luoda luentotilanteessa. Lisäksi sovelluksesta voi luoda SVG-animaatioita tai PNG tai Texdraw kuvia käytettäväksi elektronisissa materiaaleissa.

Opiskelijoille MatrixPro tarjoaa mahdollisuuden tutustua eri tietorakenteiden ja algoritmien toimintaan. Lisäksi sovellus sisältää joukon tehtäviä, joilla opiskelija voi testata tietämystään.

Tekniset vaatimukset: Java 1.4 tai uudempi. Windows: asenna tästä, muut: hae täältä.

ALOHA
Video

ALOHA on harjoitustöiden arvosteluun tarkoitettu työkalu. Sen tarkoituksena on tarjota saman harjoitustyöaiheen useille arvostelijoille keskitetysti sama arvostelupohja ja -kriteerit. Työkalu yhdenmukaistaa ja objektiivistaa arviointia, koska arviointikriteerit täytyy jakaa tarpeeksi pieniin osiin, joita eri arvioijien on helppo noudattaa.

Arvioijan kannalta ALOHA helpottaa itse palautteen kirjoittamista tarjoamalla jokaiseen arviointikohtaan valmiiksi määriteltyjä arvostelufraaseja, joita voi tarpeen mukaan liittää suoraan opiskelijalle lähtevään palautepostiin. Arviointipohjan, arviointikriteerit ja nämä arvostelufraasit tekee kurssimestari. Myös arvostelijoilla itsellään on mahdollisuus lisätä uusia havaitsemiaan fraaseja myöhempiä arviointeja varten.

Palautteen yhdenmukaistamisen ja parempilaatuisen palautepostin kirjoittamisen avustamisen lisäksi ALOHA toimii myös harjoitustyöarvosteluiden hallinnoinnin apuna. Sillä jaetaan eri opiskelijoiden harjoitustyöt arvioijille ja niiden arvostelun etenemistä voi seurata. Kun arvostelu on valmis, voi kurssimestari postittaa palautteet työkalulla suoraan opiskelijalle.

Tekniset vaatimukset käytölle: JavaScriptiä tukeva selain (firefoxia suositellaan).
Tekniset vaatimukset palvelimelle: Apache 2 + Php 5, PostgreSQL 7.4 tai parempi.

PlanAni
Video

PlanAni on muuttujien rooleille perustuva ohjelma-animaattori, jonka käytön on havaittu parantavan ohjelmoinnin oppimista. PlanAni antaa ohjelmien suoritukselle konkreettisen mallin ja tuo esiin muuttujien merkityksen ohjelmien syvärakenteen muodostajina. PlanAnin avulla opettaja voi syventää opiskelijoiden ohjelmointitietämystä, joka edesauttaa sujuvan ohjelmointitaidon kehittymistä.

PlanAnin jakeluversiossa on valmiina ohjelmoinnin alkeisopetukseen sopiva joukko Java-, C-, Python- ja Pascal-kielisten ohjelmien animaatioita. Uusien animaatioiden lisääminen on myös mahdollista.

Tekniset vaatimukset: PlanAni on toteutettu Tcl/Tk:lla ja sen toimivuus on testattu Linux/Unix-ympäristöissä sekä useissa eri Windows-ympäristöissä; sen pitäisi toimia myös Mac:issa, mutta tätä ei ole testattu. PlanAni vaatii toimiakseen Tcl/Tk:n (versio 8.4 tai uudempi).

Web-CAT
Video

Web-CAT on kehittynyt verkkosovellus, jolla voidaan automaattisesti arvioida kuinka hyvin opiskelijat testaavat omaa koodiaan. Järjestelmää on helppo muuttaa ja laajentaa erilaisten tarpeiden mukaan ja se tukee käytännössä mitä tahansa ohjelmien arviointiin ja palautteen antamiseen tarkoitettua käytäntöä. Web-CATissa on komponenttipohjainen (plug-in) arkkitehtuuri, joten se voi toimia ympäristönä myös muunlaisille opiskelijaa tukeville palveluille, jotka edesauttavat oppimaan ohjelmointia ja ohjelmistojen testausta.

Web-CAT on palvelinsovelma (servlet), joten se vaatii sopivan suoritusympäristön. Minimivaatimuksena Java-tehtävien arviointiin tarvitaan Java 1.5 tai uudempi, MySQL, Perl (XML::Parser asennettuna) sekä sopiva servlet-alusta, kuten Apache Tomcat. Muilla kielillä kirjoitettuja tehtäviä varten tarvitsee asentaa sopiva kääntäjä tai tulkki sekä arviointiin sopiva komponentti.

Lisätietoa löytyy verkosta seuraavista osoitteista Web-CAT Wiki. Katso erityisesti Web-CAT Cookbook, josta löytyy vastauksia moniin yleisiin kysymyksiin sekä lisää videoleikkeitä Web-CATin käytöstä. Wiki sisältää lisäksi tutoriaalin uusille opettajille Web-CATin opetteluun. Virginia Tech tarjoaa testitunnukset sekä mahdollisuuden perustaa oma etäkurssi ennen oman palvelimen pystyttämistä.