Suunnitteludokumentti
|
|
- Leena Mäkelä
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Suunnitteludokumentti Kohahdus Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
2 Kurssi Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Taro Morimoto, Projektipäällikkö Tuomas Palmanto, Vaatimusmäärittelyvastaava Mikko Kinnunen, Suunnitteluvastaava Markus Kivilä, Koodivastaava Jari Inkinen, Testausvastaava Paula Kuosmanen, Dokumenttivastaava Asiakas Teemu Kerola Johtoryhmä Sanna Keskioja Kotisivu Versiohistoria Versio Päiväys Tehdyt muutokset Ensimmäinen versio Pikkuvirheitä ja sanamuotoja korjattu Toisen iteraation dokumentti FTR:ää varten Lopullinen dokumentti
3 Sisältö i 1 Johdanto 1 2 Sanasto 2 3 Toiminnot Rekisteröityminen Käyttäjätietojen muokkaaminen Kirjautuminen Kurssien ja tehtävien valinta (opettaja) Tehtävän määrittely (opettaja) Kurssin statistiikka (opettaja) Opiskelijan tiedot (opettaja) Opiskelijan haku (opettaja) Tehtävien valinta (opiskelija) Tehtävään vastaaminen (opiskelija) Tehtävien aihepiiri (opettaja) Monikielisyys Arkkitehtuurisuunnitelma 6 5 Tietokanta Tasktype Task Course Module Taskinmodule Attributevalues EAuser Storedanswer Studentmodel Taskattributes Pluginparameters Pluginparamattributes
4 ii 6 Monikielisyys xml-tiedostot Monikielisyyden hallinnointi Monikielisyyden käyttö jsp-sivulta Luokat Criterion DBHandler Task User Course TitoAnalyzer TitoFeedback TitoCriterionFeedback TitoState LanguageManager TitoBundle JSP sivujen sekvenssikaaviot Signup.jsp ModifyUser.jsp Login.jsp StudentTaskList.jsp TeacherTaskList.jsp CourseStatistics.jsp UserInfo.jsp SearchUsers.jsp Composer.jsp AnswerTask.jsp Answer-servlet
5 1 Johdanto 1 TitoTrainer on järjestelmä automaattisesti tarkastettavien TTK-91-konekielen harjoitustehtävien luomiseen ja ratkaisemiseen. Järjestelmä on tarkoitettu käytettäväksi opetuksen tukena, opetettaessa Tietokoneen toiminta -kurssia. Tietojenkäsittelytieteen opettajat voivat tehdä järjestelmään uusia tehtäviä ja määritellä kuinka ne tarkastetaan automaattisesti. Tietokoneen toiminta -kurssin opiskelijat ja kurssin tehtävistä kiinnostuneet itseopiskelijat voivat ratkaista tehtäviä ja saada palautetta niiden onnistumisesta. Painopiste projektissa on opettajan ja opiskelijan käyttöliittymillä. Käyttöliittymistä tehdään mahdollisimman selkeät ja helppokäyttöiset. Opettajan käyttöliittymän avulla määritellään tehtävät parametreineen ja kuinka opiskelijan ratkaisun oikeellisuus tarkistetaan, sekä nähdään statistiikkatietoja opiskelijoiden suorituksista. Opiskelijan käyttöliittymän avulla opiskelija valitsee tehtäviä, syöttää niiden ratkaisut ja saa palautetta vastauksensa oikeellisuudesta. Projekti käyttää valmiina olevaa Titokone-simulaattoria harjoitustehtävien ratkaisemiseen. Projektin rakennetaan olemassa olevaan eassari-kehykseen, joka sopii geneeriseen automaattisesti tarkistettavien tehtävien määrittelyyn ja toteutukseen. eassarin keskeneräisyydestä johtuen kehystä tullaan muokkaamaan tuotteella asetettujen vaatimusten täyttämiseksi. Järjestelmä toteutetaan Java-kielellä ja järjestelmän käyttö vaatii, että selain tukee JavaScriptkieltä ja CSS-tyylitiedostoja. Järjestelmä toimii vuoden 2006 yleisimmillä Firefox ja Internet Explorer-selainversioilla.
6 2 Sanasto 2 TTK91=Auvo Häkkisen kehittämä ohjelmointikieli, joka läheisesti muistuttaa symbolista konekieltä. KOKSI=Auvo Häkkisen kirjoittama konekielisimulaattori, joka toteuttaa TTK-91-kielen. Kohahdus=Syksyn 2006 ohjelmistotuotantoprojekti (tämä projekti) TitoTrainer=Projektimme tuotos Järjestelmä=TitoTrainer Ohjelma=Opiskelijan kirjoittama TTK91-ohjelma, eli vastaus johonkin tehtävään eassari=tietokantapohjainen ympäristö ohjelmallisesti tarkastettavien harjoitus- ja koetehtävien suorittamiseen Titokone=Koski-nimisen Ohjelmistotuotantoprojektiryhmän vuonna 2004 rakentama järjestelmä konekielisten ohjelmien kääntämiseen ja suorittamiseen. Koski=Vuoden 2004 Ohjelmistotuotantoprojekti joka rakensi konekielen simulaattorin ja debug-ympäristön, eli Titokoneen Koskelo=Vuoden 2004 Ohjelmistotuotantoprojekti, joka integroi Titokoneen ja eassarikehyksen yhteen. Ratkaisusta ei tullut kuitenkaan käyttökelpoista, eikä sitä ole otettu käyttöön. Kriteeri=Sääntö jonka mukaan tehtävän oikeellisuus tarkistetaan. Kriteereitä voi olla monta yhdelle tehtävälle. Aihepiiri=Tehtävälle täytyy määritellä aihepiiri, johon tehtävä kuuluu. AJAX=Tekniikka vuorovaikutteisten verkkosovellusten luomiseen. Tekniikka vaihtaa pieniä määriä dataa palvelimen kanssa taustalla, niin ettei koko verkkosivua tarvitse ladata uudelleen joka kerta käyttäjän tehdessä muutoksen.
7 3 Toiminnot 3 Tämä luku kuvaa järjestelmän HTML-sivut ja sen, mitä toimintoja ne tarjoavät käyttäjälle. 3.1 Rekisteröityminen Rekisteröintisivulla opiskelija rekisteröityy järjestelmän käyttäjäksi. Rekisteröinti vaatii seuraavat tiedot: etunimi, sukunimi, käyttökieli, kurssi, sähköpostiosoite, opiskelijanumero tai henkilötunnus, sekä haluttu käyttäjätunnus ja salasana Täyttää vaatimukset: Käyttäjätietojen muokkaaminen Käyttäjätietosivulla sisäänkirjautunut käyttäjä voi muokata rekisteröintitietojaan, poislukien tunnus joka on valittu rekisteröidyttäessä. Käyttäjätietojen muokkaamisen ei tarvitse toimia opettajien tunnusten kanssa, mutta odotettavissa on, että opettajatunnusten tukeminen ei aiheuta minkäänlaista lisätyötä. Täyttää vaatimukset: 6,8 3.3 Kirjautuminen Kirjautumissivulla käyttäjä syöttää tunnuksensa, salasanansa ja pudotusvalikoista kurssin nimen ja käyttökielen. Kurssivalinta määrittää, että minkä kurssin suorituksiin opiskelijan tekemät vastaukset tallennetaan. Opettajan ollessa kyseessä kurssivalinnalla ei ole merkitystä. Jos kirjautuminen onnistuu, näytetään tehtävälistaus. Jos kirjautuminen epäonnistuu, käyttäjä palautetaan kirjautumissivulle. Täyttää vaatimukset: 5,2 3.4 Kurssien ja tehtävien valinta (opettaja) Kirjautumisen jälkeen opettajalle näytetään kurssilistaus josta opettaja voi siirtyä kurssin statistiikka-sivulle. Kurssilistauksen alla on myös lomake uuden kurssin luomista varten. Samalla sivulla näytetään myös tehtävälista. Listassa näytetään tehtävän kieli, aihepiiri ja nimi, sekä viimeinen muokkauspäivä ja muokkaaja. Listattuja tehtäviä voi muokata ja poistaa, sekä käynnistää uuden tehtävän luomisen. Täyttää vaatimukset: 18,21
8 4 3.5 Tehtävän määrittely (opettaja) Tehtävänmäärittelysivulla opettaja voi luoda uuden tehtävän tai muokata olemassa olevaa tehtävää. Tehtävälle määritellään nimi, aihepiiri, tehtävänanto, tarkastustyyppi (malliratkaisu/kiinteät arvot), tehtävätyyppi (täyttötehtävä/ohjelmointitehtävä), sekä tarkastuskriteerit ja kriteerien palautteet. Täyttää vaatimukset: 9,10,12,13,14,15,16,17,20,30-43,45-51,53, Kurssin statistiikka (opettaja) Kurssin statistiikkasivulla opettajalle näytetään lista kaikkien kurssin tehtäviä suorittaneiden opiskelijoiden suorituksista. Listassa näytetään opiskelijan nimi, opiskelijanumero tai henkilötunnus, sekä onnistuneesti ratkaistujen tehtävien määrä. Lista on helposti tulostettavassa muodossa. Listassa opiskelijan nimi toimii linkkinä ko. opiskelijan käyttäjätietosivulle. Täyttää vaatimukset: Opiskelijan tiedot (opettaja) Käyttäjän statistiikkasivulla opettajalle näytetään opiskelijan tarkemmat tiedot. Henkilötiedoista näytetään salasanaa lukuunottamatta kaikki rekisteröintitiedot. Sivu sisältää myös napin, jota käyttämällä opettaja voi poistaa käyttäjän järjestelmästä. Täyttää vaatimukset: Opiskelijan haku (opettaja) Hakusivulla opettaja voi etsiä nimen perustella käyttäjiä, ja siirtyä käyttäjätietosivulle tarkastelemaan käyttäjän tarkempia tietoja. 3.9 Tehtävien valinta (opiskelija) Kirjautumisen jälkeen opiskelijalle näytetään tehtävälista, josta opiskelija voi valita tehtävän ratkaistavaksi. Listassa näytetään tehtävän kieli, aihepiiri ja nimi, sekä tieto onko opiskelija yrittänyt jo tehtävän suoritusta, yritysten määrä ja onko yritys onnistunut. Täyttää vaatimukset: 19(=25), Tehtävään vastaaminen (opiskelija) Opiskelijan ratkaistavaksi valitsemasta tehtävästä näytetään nimi ja tehtävänanto, mahdollinen valmis koodi mikäli kyseessä on täyttötehtävä, sekä tekstialueet johon opiskelija
9 kirjoittaa ohjelman ja sille annettavat syötteet. Lisäksi on linkki jolla pääsee takaisin tehtävälistaukseen. Kun opiskelija on kirjoittanut vastauksensa, hän painaa "Suorita-nappia joka vie takaisin tehtävävastaussivulle. Sivulla näytetään samat tiedot kuin alussa, mutta lisäksi näytetään palautetta ratkaisun onnistumisesta/epäonnistumisesta, sekä Titokoneen suorituksen lopputila. Täyttää vaatimukset: 9,10,26,27,28, Tehtävien aihepiiri (opettaja) Tehtäville voidaan määritellä aihepiiri (category). Tämä yksittäiseen taskiin liittyvä tieto tallennetaan task tauluun taskmetadata-kenttään xml-muodossa muiden attribuuttien mukana. Aihepiirilista tallennetaan attributevalues-tauluun objecttype arvolla "Q". Tehtävän luomisessa aihepiiri valitaan aihepiirilistasta, joka on HTML-sivulla esitettynä pudotusvalikkona. Pudotusvalikon viimeinen valinta on uuden aihepiirin luonti, jonka valitsemalla kutsutaan AJAX-tyyppisesti uutta JSP-sivua, joka luo uuden aihepiirin kantaan (käyttäen DBHandleria). Tämä uusi aihepiiri lisätään myös aukiolevan tehtävänluontisivun aihepiirilistapudotusvalikkoon. Aihepiirien hallinta on toteutettu erillisellä JSP-sivulla, jossa on lista aihepiireistä. Näitä aihepiirejä voi poistaa, muokata ja lisätä painamalla vastaavia HTML-linkkejä. Täyttää vaatimukset: 53, 54, 55, Monikielisyys Opiskelijan käyttöliittymä toteutetaan suomen- ja englanninkielisenä. Opiskelija valitsee rekisteröitymisen yhteydessä järjestelmän oletuskielen. Kirjautuessaan järjestelmään opiskelija voi halutessaan vaihtaa kielen toiseksi. Opettajan käyttöliittymä toteutetaan ainoastaan englanniksi. Täyttää vaatimukset: 57,58
10 4 Arkkitehtuurisuunnitelma 6 Järjestelmä on jaettu kahteen osajärjestelmään, Titokone ja eassari/titotrainer. Ideaalitapaus olisi ollut kolme osajärjestelmää, jossa eassari on TitoTraineria kutsuva sovelluskehys. Tämä malli ei kuitenkaan ole mahdollinen, johtuen eassarin keskeneräisyydestä. Lopputuotteelle asettujen vaatimusten täyttäminen vaatii huomattavia lisäyksiä eassariin, mm. puuttuvat kurssien ja käyttäjien hallinta täytyy toteuttaa. Kireän aikataulun vuoksi eassaria ei yritetä säilyttää geneerisenä kehyksenä, vaan muokkauset tehdään vain Kohahdus projektin tarpeita ajatellen. Käytännössä eassarista tehdään siis ns. code fork, eli synnytetään täysin TitoTrainer-spesifinen eassari-versio, jonka ei taata olevan yhteensopiva geneerisen eassarin kanssa. Ainoa osuus eassarista jota pyritään käyttämään sen alkuperäisen arkkitehtuurin mukaan, on tietokanta. Tietokannan rakennetta ei muuteta, mutta kaikkia tauluja ei käytetä (kts. tämän dokumentin luku Tietokanta). TitoKonetta käytetään erikseen luotavan TitoState luokan kautta, jotta yhteys TitoKoneeseen saadaan mahdollimman kevyeksi. TitoState käyttää suoraan TitoKoneen konkreettisia luokkia, joita myös tarpeen tullen muokataan kaikkien suoritustietojen saamiseksi. Koska muokkauksien tarvetta ja laajuutta on vaikea arvioida etukäteen, niiden yksityiskohdat jätetään täysin TitoState luokan implementoijan vastuulle. Kuva 1: Arkkitehtuuri
11 5 Tietokanta 7 Kuva 2: Tietokantakaavio Tietokannan rakenteen määrää eassari kehys. Rakenne on kuvattu kuvassa 1. Ajanpuutteesta johtuen module-tietokantataulua ei tulla käyttämään sen mahdollistamassa laajuudessa. Sen sijaan että kursseille luotaisiin useita moduuleja, luodaan jokaiselle kurssille vain yksi moduuli ja lisätään kaikki tehtävät sinne. Näin vältetään tarve erilliselle moduulienhallinta toiminnolle ja käyttöliittymälle. Tietokantaa käytetään aina DBHandler-nimisen singleton-luokan kautta, joka piilottaa tietokantarakenteen yksityiskohdat. SQL-lauseita tulee siis vain DBHandler luokkaan eikä muualle koodiin. DBHandler-luokasta voidaan luoda instanssi staattisen DBHandler.getInstance() -metodin avulla. Tämä tarkoittaa, että ko. luokkaa voidaan käyttää virtuaalikoneen sisällä mistä vaan. 5.1 Tasktype Tasktype on eassari-kehyksen tarvitsema taulu, joka määrittelee tehtävätyypin käyttämät Analyzer ja Displayer luokat. Tauluun olisi mahdollista tallentaa myös muuta tehtävätyyppikohtaista tietoa, mutta tälle ei ole näkyvissä tarvetta. 5.2 Task Task määrittelee tehtävän. Task-tauluun tallennetaan kriteerietä lukuunottamatta tehtävän kaikki tiedot. Tunniste, nimi ja muokkaustiedoille on olemassa valmiit sarakkeet, muut tiedot tallennetaan XML-muodossa taskmetadata sarakakkeeseen. Task taulua on TitoTrainer kehityksen aikana muutettu kasvattamalla taskmetadata-kentän kokoa.
12 8 5.3 Course Määrittelee kurssin nimen ja tunnisteen. Tähän tauluun viitataan useista muista tauluista, jotta esimerkikisi opiskelijoiden suoritukset voidaan kirjata tietylle kurssille. 5.4 Module EAssarin tehtäviä ei liitetä suoraan kursseihin, vaan moduuleihin ja moduulit liitetään kursseihin. Kurssiin voi liittää useita moduuleja, mutta yhtä moduulia ei voi lisätä useaan kurssiin. TitoTrainer ei käytä moduuleja siinä laajuudessa kuin tietokannan rakenne mahdollistaisi, vaan toteutuksen ja käyttöliittymien yksinkertaistamiseksi jokaiselle kurssille luodaan tarkalleen yksi moduuli johon lisätään kaikki tehtävät. 5.5 Taskinmodule Yhdistää tehtävän kurssiin ja moduuliin. Normaalitapauksessa siis tehtävä lisättäisiin jonkin kurssin johonkin moduulin luomalla rivi taskinmodule-tauluun. TitoTrainerin tapauksessa on määritelty, että kaikki tehtävät kuuluvat kaikkiin kursseihin, joten kun opettaja luo tehtävän, TitoTrainer luo automaattisesti yhtä monta taskinmodule riviä kuin on kursseja. Samoin kun luodaan uusi kurssi, sille luodaan automaattisesti moduuli ja kaikki olemassa olevat tehtävät lisätään ko. moduuliin. Näin ollen Taskinmodule rivien määrä on aina Task rivien määrä * Course rivien määrä. 5.6 Attributevalues Yleiskäyttöinen varasto jonne voi tallentaa mitä tahansa lisätietoa koskien mitä tahansa muuta taulua. Tänne tallennetaan tehtävien kriteerit ja aihepiirilista. 5.7 EAuser Taulu kaikkien käyttäjätietojen tallentamiseen. Sekä oppilaat ja opettajat tallennetaan tänne, erona näillä on vain status-sarakkeen arvo. 5.8 Storedanswer Kun opiskelija vastaa tehtävään, vastaus sekä tiedot sen oikeellisuudesta tallennetaan tähän tauluun.
13 9 5.9 Studentmodel Jokaista tehtävän vastausyritystä kohden luodaan storedanswer-tauluun yksi rivi. Studentmodeltaluun tallennetaan yksi rivi per tehtävä, vaikka vastausyrityksiä olisi useampia. Rivillle tallennetaan tieto siitä, onko tehtävä suoritettu onnistuneesti ja kuinka monta yritystä tehtävään on käytetty. Nämä tiedot olisi mahdollista päätellä SQL:n koostefunktioden avulla storedanswer-taulusta, mutta ilmeisesti tehokkuuden parantamisksi on luotu erillinen koostetaulu Taskattributes Task-attributes on eassarissa tarkoitettu kuvaamaan tehtävien attribuuttien rakennetta. eassari ei kuitenkaan missään vaiheessa itse hyödynnä tätä taulua, eikä TitoTrainerkään sitä tarvitse, joten taulu jää täysin käyttämättä Pluginparameters Tämän taulun tarkoitus on jäänyt täysin hämärän peittoon, eassari ei missään kohtaa koodissaan viittaa mihinkään plugineihin. TitoTrainerillä ei myöskään ole tälle taululle mitään käyttöä, joten se jää täysin käyttämättä Pluginparamattributes Kuten pluginparameters, jää käyttämättä.
14 6 Monikielisyys 10 Järjestelmän monikielisyys toteutetaan helposti ylläpidettävien xml-tiedostojen avulla. Järjestelmää käynnistettäessä ladataan automaattisesti kaikki kieliriipuvaiset resurssit, jolloin ne ovat jsp-sivujen käytettävissä yksinkertaisen rajapinnan kautta. Toteutuksessa pyritään mahdollistamaan uusien kielivaihtoehtojen lisääminen vähällä vaivalla. 6.1 xml-tiedostot Järjestelmä käyttää yksittäistä xml-tiedostoa yhden jsp-sivun sisältämän kieliriippuvaisen datan tallentamiseen. Sivukohtaisen tiedoston rakenne on seuraava: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE properties SYSTEM " <properties> <comment></comment> <entry key="kentännimi_fi">kentän sisältö suomen kielellä</entry> <entry key="kentännimi_en">field content in english</entry> </properties> Kielikohtainen data lisätään <entry> tagien avulla. Key arvoksi asetetaan resurssin nimi ja suffiksiksi kieli (_FI, _EN). JSP sivulla näkyvä sisältö kirjoitetaan tagien väliin. Sivukohtaisten tiedostojen hallinnointi keskitetään xml-muotoiseen konfiguraatiotiedostoon. Tässä tiedostossa määritellään järjestelmää käynnistettäessä ladattavat resurssit. Konfiguraatiotiedoston rakenne on seuraava: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE properties SYSTEM " <properties> <comment></comment> <entry key="jsp-sivu1">/tiedosto/polku/tdsto_nimi.xml</entry> <entry key="jsp-sivu2">/tiedosto/polku/tdsto_nimi.xml</entry> </properties> 6.2 Monikielisyyden hallinnointi Kielipakettien hallinnointiin luodaan luokka LanguageManager. Luokka lukee järjestelmän käynnistymisen yhteydessä ylläkuvatun xml-konfiguraatiotiedoston ja alustaa siinä määritellyt kielipaketit. Lisäksi luokka tarjoaa rajapinnan kielipakettien hakuun. Yksittäisen kielipaketin toteuttaa luokka TitoBundle, joka periytyy java.util.resourcebundle luokasta. ResourceBundle luokkaa ei tosin käytetä täysin API:n mukaisesti, koska kielipakettien lataaminen hoidetaan sen sijasta LanguageManager luokan avulla. TitoBundle
15 luokka säilöö yksittäisen xml-tiedoston sisällön hajautustauluun java.util.properties luokan avulla Monikielisyyden käyttö jsp-sivulta Kielivaihtoehtojen lisääminen jsp-sivuille hoituu seuraavasti. Sivua ladattaessa tarkistetaan sessiosta haluttu kieli ja pyydetään LanguageManager luokalta kielipakettia gettext- Resource :JSPpage metodilla. Parametreina välitetään kieli ja jsp-sivun nimi. Metodin palauttaman kielipaketin getatribute(language): :HtpSesion :LanguageManager :ResourceBundle metodilla getstring voidaan hakea tarvittava kieliriippuvainen data. gettextresource(language,pagename): returnlanguage getstring(key): returnresourcebundle returntextvalue Kuva 3: Kielipaketin käyttö jsp-sivulta
16 7 Luokat Criterion public abstract class Criterion Base class for all criterion types. Each task has a fixed number of criteria for analyzing the student s solution. Criterion may be used to pass/fail the solution, evaluate the quality of the solution, or do both/neither. Different types of criteria are implemented as Criterion-subclasses. Task composer used for creating new tasks uses mostly the interfaces defined here, but also may use some methods specifc to the subclass. Task analyzer component used for checking the student s solution uses only this abstract interface. The analyzer is not aware of the details of the subclasses. This class and all sub-classes shall provide following quarantees: getters always return Strings, regardless of the field type getters never return null, but they may return empty strings setters always take Strings, regarless of the field type. Invalid strings, (eg. nonnumeric string for numeric field), empty strings, and null values are acceptable and will either clear the field or set the field to some default value. neither getter nor setters will ever throw exceptions Criterion objects are never in an invalid state. This is done by setting and validating mandatory fields in the constructor. However, Criterion object deserialized from the database are not subject to validation, they are assumed to be always valid. Criterion (abstract) +- InstructionCriterion (abstract) +- ForbiddenInstructionsCriterion +- RequiredInstructionsCriterion +- MeasuredCriterion (abstract) +- CodeSizeCriterion +- DataAreaSizeCriterion +- DataReferencesCriterion +- ExecutetionStepsCriterion +- MemReferencesCriterion +- StackSizeCriterion +- ScreenOutputCriterion +- VariableCriterion (abstract) +- RegisterCriterion +- SymbolCriterion
17 For sake of brevity, Criterion subclasses are not described in this document. protected static final long UNDEFINED = Long.MIN_VALUE; Special case for signaling undefined numeric value. Criteria that deal with numeric types (such as RegisterCriterium) need all 32-bits of integer, but we also need a way to represent undefined (ie. null) values. Best-but-still-ugly solution is to use longs for all numeric types and use a special signal value for null. protected Criterion() Empty constructor for deserialization 13 protected Criterion(String id, boolean usessecretinput) Constructor to initialize mandatory data members of id Identifier that can used to distinguish the different criteria of one usessecretinput true if criterion is to be used in conjunction to secret input public String getid() Return the identifier of this Criterion public abstract String getname(resourcebundle languagebundle) Return human-readable name of this languagebundle Bundle containing language-dependant parts of crierion names public boolean issecretinputcriterion() Return true if this criterion is to be used with secret input public String getfailurefeedback() Return feedback string used solution attempts that do not pass the acceptance test public String getacceptancefeedback() Return feedback string used for solution attempts that pass the acceptance test but not the quality test public String gethighqualityfeedback() Return feedback string used for for solution attempts that pass pass the acceptance test, and also the quality test if one is defined. public String setfailurefeedback() Set failure feedback
18 14 public String setacceptancefeedback() Set acceptance feedback public String sethighqualityfeedback() Set high quality feedback public abstract boolean hasacceptancetest(boolean usingmodelanswer) Return true if this criterion has test for evaluating failure/success of the student s answer. Return of false means this criterion should NOT be used to test usingmodelanswer True if the inspection method for this task is modelanswer public abstract boolean passesacceptancetest(titostate studentanswer, TitoState modelanswer) Return true if student s solution meets the passing requirement of this Criterion. The behaviour of this method is undefined if called despite a false return from hasacceptance- studentanswer end state of TitoKone for student s modelanswer end state of TitoKone for teacher s answer, or null public abstract String getacceptancetestvalue() Return the value the student s answer will be compared to public abstract void setacceptancetestvalue(string test) Set the value the student s answer will be compared to public boolean hasqualitytest(boolean usingmodelanswer) Return true if this criterion has test for evaluating quality of the student s answer. Criterion class provides a default implementation that always returns false public boolean passesqualitytest(titostate studentanswer, TitoState modelanswer) Return true if student s solution meets the quality requirement of this Criterion. Criterion class provides a default implementation that always returns false public String getqualitytestvalue() Return the value the student s answer will be compared to. Criterion class provides a default implementation that always returns an empty string public abstract void setqualitytestvalue(string test) Set the value the student s answer will be compared to. Criterion class provides a default implementation that is a no-op
19 15 public String serializetoxml() Return a serialized copy of this Criterion in XML-format protected abstract String serializesubclass(); Serialize non-static data-members of Criterion sub-class to XML format. The subclass can freely decide the names of the XML tags. The abstract Criterion class will handle the serialization of its data-members. The serialized string is stored in the eassari database in a 2000-char field so subclasses should try to keep the tags and data short (without being cryptic). protected abstract void initsubclass(string serializedxml); Initialize non-static data-members of this Criterion subclass instance using the serialized representation returned by serializetoxml. Data-members of the abstract Criterion class will have already been deserialized when this method is called. public static Criterion deserializefromxml(string xml) Instantiate new Criterion object using the serialized form Xml protected static String toxml(string tagname, boolean value) Serialize boolean value to XML string. Helper function for serializesubclass() protected static String toxml(string tagname, String value) Serialize String value to XML string. Helper function for serializesubclass() protected static String toxml(string tagname, long value) Serialize integer value to XML string. Helper function for serializesubclass() protected static boolean parsexmlboolean(string XML, String tagname) Deserialize boolean value from XML string. Helper function for initsubclass() protected static String parsexmlstring(string XML, String tagname) Deserialize String value from XML string. Helper function for initsubclass() protected static int parsexmllong(string XML, String tagname) Deserialize integer value from XML string. Helper function for initsubclass() 7.2 DBHandler public class DBHandler
20 Singleton class used for database interactions. Each public method of DBHandler class encapsulates one database transaction, and thus may cause multiple inserts/updates/removes with one call. The atomicity of the operations is quaranteed by using the transaction model provided by the SQL standard. 16 private DBHandler() Prevent outside instatiation by giving constructor private scope public static DBHandler getinstance() Return DBHandler instance private boolean init() Initialize db connection pool protected void release(connection conn) throws SQLException Closes db connection protected Connection getconnection () throws SQLException Load database driver if not already loaded public LinkedList<Course> getcourses() throws SQLException Returns all courses public synchronized boolean createcourse(course course) throws SQLException Adds new course to database private boolean addcourse(course course) throws SQLException Add new course to database. Does not check whether the course already exists in the DB. public boolean removecourse(string courseid) throws SQLException Remove course from database (and thus all refering taskinmodules). private boolean addmodule(string courseid) throws SQLException Add a default module to course. private boolean addtaskinmodule(string courseid, String taskid) throws SQLException Adds a taskinmodule entry so that the task is linked with the course.
21 17 public LinkedList<Task> gettasks() throws SQLException Return all tasks public Task gettask(string taskid) Return task identified by taskid public synchronized boolean createtask(task task, List<Criterion> criteria) throws SQLException Add new task to task database. The insert will affect all courses. This operation will also create the criteria for the task public boolean addtask(task task) throws SQLException Adds a task to DB without any linkage to courses and modules public boolean updatetask(task task, List<Criterion> criteria) throws SQLException Update existing task. The update will affect all courses. This operation will also update the criteria of the task. private boolean updatetask(task task) throws SQLException Updates a task to DB without modifying any courses or modules public boolean removetask(task task) Remove task from task database (and thus all courses). This will also remove all stored answers of the task. private boolean addcriterion(task t, Criterion c) Add criterion c to task. Helper for addtask(..) and updatetask(..) private boolean updatecriterion(task t, Criterion c) throws SQLExcepti Updates criterion c of task private void removecriteria(task t) Remove criteria form task. Helper for removetask(..) and updatetask(..) public LinkedList<Criterion> getcriteria(task task) throws SQLExceptio Return the criteria of task public CriterionMap getcriteriamap(task task) throws SQLException Return the criteria of a task in a map
22 18 public User[] getusers(course course) throws SQLException Return all users who have attempted to solve at least one task of Course public User getuser(string userid, String password) throws SQLExceptio Return user identified by userid and password (login) public User getuser(string userid) throws SQLException Return user identified by userid public boolean createuser(user user) Add new user to user database. Does not check weather the user already exists in the DB. public boolean updateuser(user user) Update existing user to DB with userid. Does not check weather the user exists or not. public void removeuser(string userid) Removes all student s answers and records from database (studentmodel, storedanswer and eauser). public String[][] getanswerstatistics(string courseid) Returns a two dimensional matrix of stored answers (table studentmodel) of tasks and student names. public User[] searchstudent(string name) Returns a list of students (Users) that matches the param name with first or lastname in the eauser table. public LinkedList getstudentanswers(string userid) Returns a list of tasks that student has answered. Each task on the list is a hashtable with columns as entries. public String storestateandanswer(boolean shouldstore, User student, String courseid, String taskid, String[] answers, boolean accepted, String lang, Feedback feedback) throws SQLException Stores the answer of the student into database table storedanswer. Also stores the state of the student s answered task into table studentmodel. 7.3 Task public class Task
23 19 Modify existing Task class by adding the following methods public Task() Creates a new instance of Task public Task(String taskid) Creates a new instance of Task public settaskid(string taskid) Sets ID of task public setlanguage(string lang) Set the preferred language of this user. The language is either "EN"or "FI public void setname(string name) Set the name of this task public void setauthor(string name) Set "last task modification by"attribute to Name, set last-modification-timestamp to current date and time public void setdescription(string desc) Set description (tehtävänanto) of this task public void setpublicinput(string input) Set the public input as String of this task public void setsecretinput(string input) Set the secret input as String of this task public void setmodelanswer(string code) Set model answer code public void setcategory(string categ) Set task category of this task public void settitotasktype(string type) Set task type of this task
24 20 public void setfillinprecode(string code) Set the code that is prepended before student s code in a fill-in task public void setfillinpostcode(string code) Set the code that is appended to student s code in a fill-in task public void setfillintask(boolean fillin) Set this task as fill-in or create-full-program public void setnooftries(int nooftries) Sets number of tries for student public void setvalidatebymodel(boolean usemodel) Set the validation method of this task public void setmodificationdate() Set the date and time this task was last modified public void sethassucceeded(boolean hassucceeded) Set the hassucceeded true or false depending the student has passed the task public void setpassfeedback(string pass) Set return feedback if student passes the task public void setfailfeedback(string fail) Set return feedback if student fails the task public void setmaximumnumberofinstructions(int num) Endless loop prevention public void setmaximumnumberofinstructions(string num) Endless loop prevention public String gettaskid() Return id of this task public String getlanguage() Return the language of this task
25 21 public String getname() Return the name of this task public String getauthor() Return name of the last person who has modified this task public String getdescription() Return the description (tehtävänanto) of this task public String getpublicinput() Return the public input as String of this task public String getsecretinput() Return the secret input as String of this task public String getmodelanswer() Return code of the model answer provided by teacher public String getcategory() Return the task category of this task public String gettitotasktype() Return the task type of this task public String getfillinprecode() Return the code that is prepended before student s code in a fill-in task public String getfillinpostcode() Return the code that is appended to student s code in a fill-in task public int getnooftries() Return the number of tries student has tried to make this task public boolean isfillintask() Return true if this is a fill-in task public boolean isprogrammingtask() Return true if this is a programming task
26 public boolean isvalidatebymodel() Return true if this task is to be validated by comparing results of the student s answer to results of teacher s answer 22 public Date getmodificationdate() Return the date and time this task was last modified public boolean ishassucceeded() Return true if student has made the task, false if she/he hasn t public String getpassfeedback() Return feedback if student passes the task public String getname() Return the name of this task public String getfailfeedback() Return feedback if student fails the task public int getmaximumnumberofinstructions() Returns loop prevention value public String getdateasstring() Returns String of the date and time protected static String parsexmlstring(string XML, String tagname) Deserialize String value from XML string. Helper function for initsubclass() protected static boolean parsexmlboolean(string XML, String tagname) Deserialize boolean value from XML string. Helper function for initsubclass() protected static int parsexmlint(string XML, String tagname) Deserialize int value from XML string. Helper function for initsubclass() return value or 0 public int getmaximumnumberofinstructions() Returns loop prevention value protected static String toxml(string tagname, int value) Serialize long value to XML string. Helper function for serializesubclass()
27 protected static String toxml(string tagname, String value) Serialize String value to XML string. Helper function for serializesubclass() 23 public String serializetoxml() Return a serialized this Task class into XML-format public void deserializefromxml(string xml) Instantiate the Task class s parameters using the serialized form RuntimeException exceptions in the deserialization are caught and rethrown as uncheckced exception. public Date getmodificationdate() Return the date and time this task was last modified public String tostring() Returns String from the task 7.4 User public class User Modify existing User class by adding the following methods public static final String STATUS_STUDENT = "student"; public static final String STATUS_TEACHER = "teacher"; public static final String STATUS_ADMIN = "adm"; public User() Construct unitialized User object public User(String userid) Construct unitialized User object with userid public void setuserid(string userid) Set userid of this user public void setlastname(string lastname) Set last name of this user
28 24 public void setfirstname(string firstname) Set first name of this user public void set (string ) Set address of this user public void setstatus(string status) throws IllegalArgumentException if Status is not a valid Status string Set user status (teacher / student) public void setstudentnumber(string studentnum) Set student number of of this user public void setsocialsecuritynumber(string ssn) Set social security number of this user public void setpassword(string pass) Set password of this user to Pass public void setlanguage(string lang) Set the preferred language of this user. The language is either "EN"or "FI public String getuserid() Return userid of this user public String getlastname() Return last name of this user public String getfirstname() Return first name of this user public String get () Return address of this user public String getstatus() Return status of this user public String getstudentnumber() Return student number of this user. This identifier maps to <code>aeuser.extid</code> in the database
29 25 public String getsocialsecuritynumber() Return social security number of this user. This identifier maps to <code>aeuser.extid2</code> in the database public String getpassword() Return plaintext password of this user public String getlpref() Return the preferred language of this user as String. The language is either "EN"or "FI" public boolean isteacher() Return true of this user has the privelidges to add/remove/modify tasks and browse user statistics public boolean isstudent() Return true of this user has student privelidges public boolean isadmin() Return true of this user has admin privelidges public boolean isvalid() Test validity of this user object. The object is considered valid if all data members are set with non-empty values. private boolean isemptystring(string str) Return false if str is null or empty string 7.5 Course public class Course Simple class for holding basic course information public Course(String name, String id) Create new Course instance using the specified name and ID public String getname() Return name of this course
30 26 public void setname(string name) Set name of this course public String getid() Return course ID of this course public String tostring() Return name and id of this course as one String 7.6 TitoAnalyzer public class TitoAnalyzer Class for running TitoKone and analyzing student s answer public TitoFeedback Analyze(Task task, List<Criterion> criteria, String programcode, String keyboardinput) Analyzes student s answercode. Returns feedback from analysis. 7.7 TitoFeedback public interface TitoFeedback Interface for feedback data public TitoState gettitostate() Return the end-state of TitoKone run public String getoverallfeedback() Return the overall task feedback public String getcompileerror() Return compile-time error message (null if no errors) public String getrunerror() Return run-time error message (null if no errors) public boolean wassuccessful() Return true if program was compiled and executed successfully, and all acceptance crietia were met
31 27 public java.util.list<titocriterionfeedback> getcriteriafeedback() Return a list criteria feedbacks 7.8 TitoCriterionFeedback public class TitoCriterionFeedback Class for criterion feedback information public TitoCriterionFeedback(String name, String feedback, boolean success) Creates a new instance of TitoCriterionFeedback. public String getname() Return criterion name public String getfeedback() Return feedback of this criterion public boolean passedacceptancetest() Return true if this criterion meets passing requirements 7.9 TitoState public class TitoState Capsulates the end-state of single run of TitoKone and hides implementation details of TitoKone behind a single class interface. This class will provide methods for exuting TTK91 programs and querying the resulting TitoKone end state public String compile(string sourcecode) Compiles given source code. Returns compile time error message, or null if compilation succeeded withour errors. If this method executes successfully (returns null), the program may be run with the run() sourcecode TKK91 program source code as single string public String execute(string keyboardinput, int maxexecutionsteps) Runs previously compiled program. Returns runtime error message, or null if the program
32 ran to completion without keyboardinput keyboard input for the program, as [ \n\r\t\f,.:;] separated list of maxexecutionsteps maximum number instruction to execute (prevent inifinite loops) 28 public int getregister(int registercode) Return contents of registercode one of REG_* constants defined in fi.hu.cs.ttk91.ttk91cpu* public int getmemorylocation(int address) Return contents of specified memory address public Map getsymboltable() Return symbol table that maps symbol names to symbol value addresses public String getscreenoutput() Return TitoKone output as String in format "1234, 1234, 1234". The returned string may be empty, but it is never null. public int getstackmaxsize() Return maximum stack size reached during program execution public int getexecutionsteps() Return number of executed instructions public int getcodesize() Return number of instruction words in the program code public int getdatasize() Return number of words in program s data-area public int getmemoryaccesscount() Return number memory references made during program run. This number includes references caused by both data and instruction fetches public Set<String> getusedopcodes() Return used opcodes in Set of Strings
33 LanguageManager public class LanguageManager private static HashMap<String, ResourceBundle> bundles Stores all initialized ResourceBundles. public static synchronized void loadtextresources(string propertiesfil Initializes all resources specified in parameter file, which contains filenames of all resources to be loaded in XML format. public static ResourceBundle gettextresource(string lang, String page) Returns a ResourceBundle object containing all language specific data on a single JSP page TitoBundle public class TitoBundle extends ResourceBundle private Properties xmldata Stores data from xml-file private String language Language of returned data public TitoBundle(Properties data, String lang) Initalize a new TitoBundle, which returns data from Properties object in a given language protected Object handlegetobject(string key) Returns an object, which matches the key, from xmldata. It s preferable to use getstring method from parent class instead public Enumeration<String> getkeys() Returns all available key values
34 8 JSP sivujen sekvenssikaaviot 30 Tämä luku esittelee toteutettavien JSP-sivujen toimintalogiikan. Sekvenssikaaviot esittelevät tärkeimmät eri toiminnoissa käytetyt luokat ja metodit, menemättä kuitenkaan aivan samalle tasolle kuin lopullinen ohjelmakoodi. Myöskään kaikkia toimintoja ei kuvata, esimerkiksi erilaisten listausten näyttäminen katsotaan niin suoraviivaiseksi, että ne onnistuvat ilman erillistä suunnitelmaa. Sekvenssikaavioit esittävät miten TitoTrainer/eAssari käsittelee tapahtuman, jossa käyttäjä on täyttänyt lomakkeen ja lähettänyt sen palvelimen käsiteltäväksi. Vain onnistuneet tapahtumat on kuvattu, esimerkiksi väärän salasanan syöttäminen kirjautumislomakkeeseen katkaisee kuvatun sekvenssin ja palauttaa käyttäjälle virheilmoituksen. Käytäjänluominen :käytäjä:signup.jsp:dbhandler :User :HtpSesion 8.1 Signup.jsp submit getu returnul ser(uid) returnuser new User(.) createuser(user) setatr ibute("user",user) Kuva 4: Käyttäjän rekisteröityminen
35 Käytäjätietojenmuokaminen 31 :käytäjä:modify_useṛjsp:dbhandler request :HtpSesion:User getatribute("user") (näytävanhatiedot) returnuser() submit g etatribute("user") returnuser() ok up dateuser() setp asword()șetname(),. 8.2 ModifyUser.jsp Kuva 5: Käyttäjätietojen muokkaaminen (huom kaksi erillistä sivulatausta)
36 32 :Käytäjä:Logiṇjsp:DBHandler Submit getuser() :User :HtpSesion:TaskLisṭjsp ret urnuser getpasword() returnpaswordsetatribute("user",user) HtpRedirect HtpRequest 8.3 Login.jsp Kuva 6: Kirjautuminen 8.4 StudentTaskList.jsp Ei kaaviota. Sisältää vain opiskelijan tehtävälistauksen.
37 33 :Käytäjä:TeacherTaskLisṭjsp:DBHandler submit getcourses() :Course Courses[] new Course() createcourse() returncourse gettasks() Tasks[] a dtask(coursețask)foreachtask 8.5 TeacherTaskList.jsp "Tasks/Courses" Kuva 7: Kurssin luominen ja tehtävien lisääminen luotuun kurssiin 8.6 CourseStatistics.jsp Yksinkertaisen tilastotaulukon toteutus suoraviivaista, sekvenssikaavio ei tarpeen. 8.7 UserInfo.jsp Yksinkertaisen käyttäjätietonäkymän sekä tilastotaulukon toteutus suoraviivaista, sekvenssikaavio ei tarpeen.
38 SearchUsers.jsp Käyttäjien haku nimen mukaan. Sekvenssikaavio ei tarpeen.
39 35 :Käytäjä:composeṛjsp:DBHandler:Task:extendsCriterion submit g ettasks() T ask[]newtask() T ask new Criterion() 8.9 Composer.jsp setcriteria() createtask()adcriteria() adtask()foreachcourse getcourses() Kuva 8: Tehtävän luominen ja lisääminen kursseille
40 :Käytäjä:composeṛjsp:DBHandler HtpRequest gettask(id)newtask() :Task :extendscriterion36 JSPnäytätaskintiedot Submit returntaskreturntask setname() seta uthor() setcriteria()ret new<?>c urn<?>criterion riterion luodankaikikriterit updatetask(task)removecriteria(task) adcriterion(criterion)foreachcriterion Kuva 9: Tehtävän muokkaaminen (huom kaksi erillistä sivulatausta)
41 AnswerTask.jsp Näyttää tehtävävastauslomakkeen opiskelijalle. Kuva 10: Tehtävävastauksen toimintavuo
42 Answer-servlet Tarkastaa opiskelijan vastausyrityksen TitoAnalyzer luokan avulla ja tallentaa tuloksen tietokantaan, sekä sessioon jotta AnswerTask.jsp voi näyttää palautetta opiskelijalle. Kuva 11: Kriteerin tarkistus ja palautteen määräytyminen
Suunnitteludokumentti
Suunnitteludokumentti Kohahdus Helsinki 11.10.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Taro Morimoto,
Järjestelmän syötteet ja tulosteet Kohahdus Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Järjestelmän syötteet ja tulosteet Kohahdus Helsinki 5.11.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä
Ylläpitodokumentti. Kohahdus. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Ylläpitodokumentti Kohahdus Helsinki 14.12.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti ( ov) Projektiryhmä Taro Morimoto,
Ohjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä
OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan
1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä
OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan
812336A C++ -kielen perusteet, 21.8.2010
812336A C++ -kielen perusteet, 21.8.2010 1. Vastaa lyhyesti seuraaviin kysymyksiin (1p kaikista): a) Mitä tarkoittaa funktion ylikuormittaminen (overloading)? b) Mitä tarkoittaa jäsenfunktion ylimääritys
Ohjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Kotitehtävä 6, toteuttakaa alla olevan luokka ja attribuutit (muuttujat) Kotitehtävä 6, toteuttakaa alla olevan luokka ja attribuutit (muuttujat) Huom!
Salasanan vaihto uuteen / How to change password
Salasanan vaihto uuteen / How to change password Sisällys Salasanakäytäntö / Password policy... 2 Salasanan vaihto verkkosivulla / Change password on website... 3 Salasanan vaihto matkapuhelimella / Change
FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL
FinFamily PostgreSQL 1 Sisällys / Contents FinFamily PostgreSQL... 1 1. Asenna PostgreSQL tietokanta / Install PostgreSQL database... 3 1.1. PostgreSQL tietokannasta / About the PostgreSQL database...
RINNAKKAINEN OHJELMOINTI A,
RINNAKKAINEN OHJELMOINTI 815301A, 18.6.2005 1. Vastaa lyhyesti (2p kustakin): a) Mitkä ovat rinnakkaisen ohjelman oikeellisuuskriteerit? b) Mitä tarkoittaa laiska säikeen luominen? c) Mitä ovat kohtaaminen
Group 2 - Dentego PTH Korvake. Peer Testing Report
Group 2 - Dentego PTH Korvake Peer Testing Report Revisions Version Date Author Description 1.0 Henrik Klinkmann First version Table of Contents Contents Revisions... 2 Table of Contents... 2 Testing...
Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen
Esimerkki: Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Luo tietokanta Koulu. Tietokantaan lisätään 3 taulua. Kurssit-taulu: kurssiid not null primary key INTEGER aineid not
FinFamily Installation and importing data (11.1.2016) FinFamily Asennus / Installation
FinFamily Asennus / Installation 1 Sisällys / Contents FinFamily Asennus / Installation... 1 1. Asennus ja tietojen tuonti / Installation and importing data... 4 1.1. Asenna Java / Install Java... 4 1.2.
Vaatimusdokumentti. Kohahdus. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Vaatimusdokumentti Kohahdus Helsinki 29.9.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Taro Morimoto,
Ohjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Kotitehtävistä: Pankkitilit kotitehtävä 7 Toteuttakaa kotitehtävä 1:n kuvan mukaiset metodit open(), close(), deposit(), withdraw(), joilla voi Nostaa
Capacity Utilization
Capacity Utilization Tim Schöneberg 28th November Agenda Introduction Fixed and variable input ressources Technical capacity utilization Price based capacity utilization measure Long run and short run
Encapsulation. Imperative programming abstraction via subprograms Modular programming data abstraction. TTY Ohjelmistotekniikka
Encapsulation Imperative programming abstraction via subprograms Modular programming data abstraction Encapsulation grouping of subprograms and the data they manipulate Information hiding abstract data
The CCR Model and Production Correspondence
The CCR Model and Production Correspondence Tim Schöneberg The 19th of September Agenda Introduction Definitions Production Possiblity Set CCR Model and the Dual Problem Input excesses and output shortfalls
Käyttäjienhallintatyökalu
Käyttäjienhallintatyökalu 2 Käyttäjienhallinta-ohje Sisällysluettelo 1 Yleistä Käyttäjienhallintatyökalusta... 3 1.1 Excel-taulukko csv-tiedoston luomisessa...4 2 Käyttäjien luominen... 4 2.1 Käyttäjien
Testausraportti Kohahdus Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Testausraportti Kohahdus Helsinki 13.12.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Taro Morimoto,
Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site
Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site Note! Before starting download and install a fresh version of OfficeProfessionalPlus_x64_en-us. The instructions are in the beginning of the exercise.
15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien
Sisällysluettelo Table of contents
Sisällysluettelo Table of contents OTC:n Moodlen käyttöohje suomeksi... 1 Kirjautuminen Moodleen... 2 Ensimmäinen kirjautuminen Moodleen... 2 Salasanan vaihto... 2 Oma käyttäjäprofiili... 3 Työskentely
Choose Finland-Helsinki Valitse Finland-Helsinki
Write down the Temporary Application ID. If you do not manage to complete the form you can continue where you stopped with this ID no. Muista Temporary Application ID. Jos et onnistu täyttää lomake loppuun
You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed
Online Meeting Guest Online Meeting for Guest Participant Lync Attendee Installation Online kokous vierailevalle osallistujalle Lync Attendee Asennus www.ruukki.com Overview Before you can join to Ruukki
15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:
Lohtu-projekti. Ylläpitäjän dokumentti. Versiohistoria: Ensimmäinen versio Andreas Asuja
Lohtu-projekti Ylläpitäjän dokumentti Versiohistoria: 1.0 12.5.2003 Ensimmäinen versio Andreas Asuja Helsinki 12. toukokuuta 2003 Kimmo Airamaa, Andreas Asuja, Mari Muuronen, Seppo Pastila, Virve Taivaljärvi
Tietokannat II -kurssin harjoitustyö
Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava
Action Request System
Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet
Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina
Kirjasto Kevät 2001 Auvinen Annemari Niemi Anu Harjoitustyö 7.4.2001 Sisällysluettelo 1. Yleiskuvaus... 3 2. Vaatimukset... 3 2.1. Toiminnalliset... 3 2.1.1. Sisäänkirjautuminen... 3 2.1.2. Nimikkeiden
Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Asennusohje Sahara-ryhmä Helsinki 31.8.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Sanna Keskioja Sampo
Ohjelmointi 2 / 2010 Välikoe / 26.3
Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään
Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys
Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty
Java UI-komponentit (JTable) Juha Järvensivu juha.jarvensivu@tut.fi 2007
Java UI-komponentit (JTable) Juha Järvensivu juha.jarvensivu@tut.fi 2007 JTable Datan esittäminen taulukkomuodossa Datan valitseminen taulukosta Datan muokkaaminen (lisääminen, muokkaaminen, poistaminen)
Operatioanalyysi 2011, Harjoitus 4, viikko 40
Operatioanalyysi 2011, Harjoitus 4, viikko 40 H4t1, Exercise 4.2. H4t2, Exercise 4.3. H4t3, Exercise 4.4. H4t4, Exercise 4.5. H4t5, Exercise 4.6. (Exercise 4.2.) 1 4.2. Solve the LP max z = x 1 + 2x 2
Olio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä.
Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä. JUnit-ympäristö 1. Luo tests -pakkaukseen uusi luokka. Nimeä VHTestit. 2. Laita VHTestit periytymään TestCase:sta
Jypelin käyttöohjeet» Ruutukentän luominen
Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen
Listarakenne (ArrayList-luokka)
Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen
Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Asennusohje Sahara-ryhmä Helsinki 24.8.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Sanna Keskioja Sampo
Returns to Scale II. S ysteemianalyysin. Laboratorio. Esitelmä 8 Timo Salminen. Teknillinen korkeakoulu
Returns to Scale II Contents Most Productive Scale Size Further Considerations Relaxation of the Convexity Condition Useful Reminder Theorem 5.5 A DMU found to be efficient with a CCR model will also be
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Taulukon edut Taulukon haitat Taulukon haittojen välttäminen Dynaamisesti linkattu lista Linkatun listan solmun määrittelytavat Lineaarisen listan toteutus dynaamisesti linkattuna
Mobility Tool. Demo 21.8.2013 CIMO
Mobility Tool Demo 21.8.2013 CIMO 1 Sisältö Korkeakoulukäyttäjä (Beneficiary User) Home Project details Partners Mobilities Working with CSV Import Mobilities Budget 2 Home Find your project Project menu
Java ja tietokannan käsittely (JDBC)
Java ja tietokannan käsittely (JDBC) Javan tietokannan käsittely luokat (java.sql.*) Yhteys tietokantaan Tietokannan yhteyden sulkeminen Tiedon haku tietokannasta Tiedon päivitys tietokantaan Transaktio
Mainosankkuri.fi-palvelun käyttöohjeita
Mainosankkuri.fi-palvelun käyttöohjeita Sisällys 1. Johdanto... 1 2. Sisäänkirjautuminen... 1 3. Palvelussa navigointi... 2 4. Laitteet... 2 5. Sisällönhallinta... 4 6. Soittolistat... 7 7. Aikataulut...
Apuja ohjelmointiin» Yleisiä virheitä
Apuja ohjelmointiin» Yleisiä virheitä Ohjelmaa kirjoittaessasi saattaa Visual Studio ilmoittaa monenlaisista virheistä "punakynällä". Usein tämä johtuu vain siitä, että virheitä näytetään vaikket olisi
TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo
TIEKE Verkottaja Service Tools for electronic data interchange utilizers Heikki Laaksamo TIEKE Finnish Information Society Development Centre (TIEKE Tietoyhteiskunnan kehittämiskeskus ry) TIEKE is a neutral,
Efficiency change over time
Efficiency change over time Heikki Tikanmäki Optimointiopin seminaari 14.11.2007 Contents Introduction (11.1) Window analysis (11.2) Example, application, analysis Malmquist index (11.3) Dealing with panel
Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä
Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely
EDMODO. -oppimisympäristö opettajille ja oppilaille KOONNUT: MIKA KURVINEN KANNUKSEN LUKIO
EDMODO -oppimisympäristö opettajille ja oppilaille KOONNUT: MIKA KURVINEN KANNUKSEN LUKIO HUOM! Edmodo kehittyy koko ajan, seuraavat ohjeet voivat olla jo päivityksen tarpeessa. 1 Sisällysluettelo Rekisteröityminen
Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti
Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi
Rajapinta (interface)
1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä
Microsoft SQL Server -tietokannan hallinta. Jouni Huotari
Microsoft SQL Server -tietokannan hallinta Jouni Huotari 13.2.2008 Tavoite Saada käsitys SQL Serverin (v. 2005) ominaisuuksista + eri vaihtoehtojen hyvistä ja mahdollisista huonoista puolista Oppia luomaan
Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
Olet vastuussa osaamisestasi
Olet vastuussa osaamisestasi Ohjelmistoammattilaisuuden uudet haasteet Timo Vehmaro 02-12-2015 1 Nokia 2015 Mitä osaamista tulevaisuudessa tarvitaan? Vahva perusosaaminen on kaiken perusta Implementaatio
Security server v6 installation requirements
CSC Security server v6 installation requirements Security server version 6.4-0-201505291153 Pekka Muhonen 8/12/2015 Date Version Description 18.12.2014 0.1 Initial version 10.02.2015 0.2 Major changes
SIMULINK S-funktiot. SIMULINK S-funktiot
S-funktio on ohjelmointikielellä (Matlab, C, Fortran) laadittu oma algoritmi tai dynaamisen järjestelmän kuvaus, jota voidaan käyttää Simulink-malleissa kuin mitä tahansa valmista lohkoa. S-funktion rakenne
Other approaches to restrict multipliers
Other approaches to restrict multipliers Heikki Tikanmäki Optimointiopin seminaari 10.10.2007 Contents Short revision (6.2) Another Assurance Region Model (6.3) Cone-Ratio Method (6.4) An Application of
PIC-koodin luominen URF-tietokantaan Participant Portal
PIC-koodin luominen URF-tietokantaan Participant Portal ECAS-tunnuksen hankkiminen Participant Portal osoite: http://ec.europa.eu/education/participants/portal/ Uudet käyttäjät, joilla ei vielä ole ECAS-tunnuksia:
Security server v6 installation requirements
CSC Security server v6 installation requirements Security server version 6.x. Version 0.2 Pekka Muhonen 2/10/2015 Date Version Description 18.12.2014 0.1 Initial version 10.02.2015 0.2 Major changes Contents
RDBMS - Yhteyskäytännöt
HAAGA-HELIA Heti-09 1 (11) RDBMS - Yhteyskäytännöt Johdanto... 2 Upotettu SQL... 3 ESQL esimerkki... 4 ODBC... 5 Visual Basic ja ADO... 6 JAVA ja JDBC... 7 JDBC esimerkki... 8 Oracle ja JDBC... 9 Connection
Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014
Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.
Transkribuksen pikaopas
Transkribuksen pikaopas Transkribus on alusta, jolla voi puhtaaksikirjoittaa haluamaansa aineistoa ja automaattisesti tunnistaa käsinkirjoitettua tekstiä. Sitä käyttääkseen täytyy rekisteröityä. Tässä
INTINU13A6 Java sovellukset
Johdanto Kurssin tavoitteena oli luoda tietokantaa käyttävä websovellus Java EE ohjelmointikielellä, sekä hyödyntää muun muassa servlettejä sekä JSP sivuja ja muita tekniikoita monipuolisesti. Webserverinä
XNA grafiikka laajennus opas. Paavo Räisänen. www.ohjelmoimaan.net. Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa.
XNA grafiikka laajennus opas Paavo Räisänen www.ohjelmoimaan.net Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa. Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei
Laskennallisesti Älykkäät Järjestelmät. Sumean kmeans ja kmeans algoritmien vertailu
Laskennallisesti Älykkäät Järjestelmät Sumean kmeans ja kmeans algoritmien vertailu Annemari Auvinen (annauvi@st.jyu.fi) Anu Niemi (anniemi@st.jyu.fi) 28.5.2002 1 Tehtävän kuvaus Tehtävänämme oli verrata
C++11 seminaari, kevät Johannes Koskinen
C++11 seminaari, kevät 2012 Johannes Koskinen Sisältö Mikä onkaan ongelma? Standardidraftin luku 29: Atomiset tyypit Muistimalli Rinnakkaisuus On multicore systems, when a thread writes a value to memory,
PAROC CALCULUS LASKENTAOHJELMA TIETOKONEELLE ASENNETTAVA VERSIO. Latausohjeet Asennusohjeet
PAROC CALCULUS LASKENTAOHJELMA TIETOKONEELLE ASENNETTAVA VERSIO Latausohjeet Asennusohjeet 1 2 Latausohjeet LATAAMISEN VAIHEET 1. Lataaminen vaatii käyttäjäksi rekisteröitymisen (käyttöliittymä vain englanniksi)
T Henkilökohtainen harjoitus: FASTAXON
T-76.115 Henkilökohtainen harjoitus: FASTAXON Suunnittelumallit Group: Muuntaja Pentti Vänskä 52572W 2 1. Toteutus Tämä henkilökohtainen harjoitustyö käsitteli suunnittelumallien (Design Patterns) käyttöä
Loppuraportti. Kohahdus. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Loppuraportti Kohahdus Helsinki 14.12.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Taro Morimoto, Projektipäällikkö
SoleMOVE lähtevän harjoittelijan ohje
SoleMOVE lähtevän harjoittelijan ohje 3.12.2013 Kuva: Sanna Waris SoleMOVE lähtevän ERASMUS- harjoittelijan ohje 1 SoleMOVE lähtevän harjoittelijan ohje... 1 1. Kirjautuminen... 3 2. Uuden lähtevän Erasmus-harjoittelijan
Ylläpitodokumentti. Oppimistavoitteiden hallintajärjestelmä harri
Ylläpitodokumentti Oppimistavoitteiden hallintajärjestelmä harri Helsinki 14.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti
Ohjelmointi 1 C#, kevät 2013, 2. tentti
ITKP102 Ohjelmointi 1 C# 15.5.2013 1 / 6 Ohjelmointi 1 C#, kevät 2013, 2. tentti Tentaattori Antti-Jussi Lakanen Tässä tentissä saa olla mukana omia muistiinpanoja yhden arkin verran. Tentin valvojalla
On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)
On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31) Juha Kahkonen Click here if your download doesn"t start automatically On instrument costs
Opiskelijat valtaan! TOPIC MASTER menetelmä lukion englannin opetuksessa. Tuija Kae, englannin kielen lehtori Sotungin lukio ja etälukio
Opiskelijat valtaan! TOPIC MASTER menetelmä lukion englannin opetuksessa Tuija Kae, englannin kielen lehtori Sotungin lukio ja etälukio Päättääkö opettaja ohjelmasta? Vai voisivatko opiskelijat itse suunnitella
BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.
BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET. Pekka Ollikainen Open Source Microsoft CodePlex bio Verkkosivustovastaava Suomen Sarjakuvaseura
Java-API, rajapinnat, poikkeukset, UML,...
Java-API, rajapinnat, r poikkeukset, UML,... Janne Käki 12.10.2006 Keskeisimmät Java-API:n pakkaukset API = Application Programming Interface eli sovellusohjelmointirajapinta (!) pakkaus (engl. package)
Telecommunication Software
Telecommunication Software Final exam 21.11.2006 COMPUTER ENGINEERING LABORATORY 521265A Vastaukset englanniksi tai suomeksi. / Answers in English or in Finnish. 1. (a) Määrittele sovellusviesti, PersonnelRecord,
Ohjeet kansainväliselle alustalle rekisteröitymiseen
Ohjeet kansainväliselle alustalle rekisteröitymiseen Tunnusten luominen Kemianluokka.fi-osoitteesta löytyvät vedentutkimushankkeen suomenkieliset sivut. Sivuilta löytyy linkki Ilmoittaudu mukaan, jonka
Alternative DEA Models
Mat-2.4142 Alternative DEA Models 19.9.2007 Table of Contents Banker-Charnes-Cooper Model Additive Model Example Data Home assignment BCC Model (Banker-Charnes-Cooper) production frontiers spanned by convex
SuomiCom-sähköpostiasetukset Microsoft Outlook 2016
SuomiCom-sähköpostiasetukset Microsoft Outlook 2016 Nämä ohjeet on suunnattu Microsoft Outlook 2016 -ohjelmalle, mutta ohje todennäköisesti toimii suuntaa-antavana myös vanhemmille versioille. Kuvat ovat
Results on the new polydrug use questions in the Finnish TDI data
Results on the new polydrug use questions in the Finnish TDI data Multi-drug use, polydrug use and problematic polydrug use Martta Forsell, Finnish Focal Point 28/09/2015 Martta Forsell 1 28/09/2015 Esityksen
SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet
SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin
DOORSin Spreadsheet export/import
DOORSin Spreadsheet export/import 17.10.2006 SoftQA Oy http/www.softqa.fi/ Pekka Mäkinen Pekka.Makinen@softqa.fi Tietojen siirto DOORSista ja DOORSiin Yhteistyökumppaneilla ei välttämättä ole käytössä
DS-tunnusten haku Outi Jäppinen CIMO
DS-tunnusten haku 2013 Outi Jäppinen CIMO 2/2009 DS-tunnukset ECTS- ja DS-tunnusten avulla pyritään edistämään ECTS-järjestelmän sekä tutkintotodistuksen liitteen Diploma Supplementin asianmukaista käyttöä
Data protection template
Data protection template Aihe: rekisteriseloste ja informointipohja Topic: information about the register and information to users (related to General Data Protection Regulation (GDPR) (EU) 2016/679) Mallina
Miten PIC koodin rekisteröityminen tehdään? PIC = Personal Identification Code URF = Unique Registration Facility Participant Portal CIMO
Miten PIC koodin rekisteröityminen tehdään? PIC = Personal Identification Code URF = Unique Registration Facility Participant Portal CIMO Helmikuu Miten valmistaudun tietojen syöttöä varten? 1) Tarkista
on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä
LUOKAN MÄÄRITTELY Luokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion muodostimet ja luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Olion kopioiminen
Information on Finnish Language Courses Spring Semester 2017 Jenni Laine
Information on Finnish Language Courses Spring Semester 2017 Jenni Laine 4.1.2017 KIELIKESKUS LANGUAGE CENTRE Puhutko suomea? Do you speak Finnish? -Hei! -Moi! -Mitä kuuluu? -Kiitos, hyvää. -Entä sinulle?
1. Liikkuvat määreet
1. Liikkuvat määreet Väitelauseen perussanajärjestys: SPOTPA (subj. + pred. + obj. + tapa + paikka + aika) Suora sanajärjestys = subjekti on ennen predikaattia tekijä tekeminen Alasääntö 1: Liikkuvat määreet
Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:
Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,
KONEISTUSKOKOONPANON TEKEMINEN NX10-YMPÄRISTÖSSÄ
KONEISTUSKOKOONPANON TEKEMINEN NX10-YMPÄRISTÖSSÄ https://community.plm.automation.siemens.com/t5/tech-tips- Knowledge-Base-NX/How-to-simulate-any-G-code-file-in-NX- CAM/ta-p/3340 Koneistusympäristön määrittely
1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward.
START START SIT 1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward. This is a static exercise. SIT STAND 2. SIT STAND. The
EASY Tiedostopalvelin - mobiilin käyttöopas
EASY Tiedostopalvelin - mobiilin käyttöopas ios www.storageit.fi - Äyritie 8 D, 01510 VANTAA Salorantie 1, 98310 KEMIJÄRVI Sisältö 1. Lataaminen ja asennus 2. Kansiot ja tiedostot Uusien tiedostojen luonti
Tietokannat II -kurssin harjoitustyö
Tietokannat II -kurssin harjoitustyö Olli Opiskelija (123), olli.opiskelija@foo.fi Maija Mallioppilas (321), maija.mallioppilas@foo.fi 13.3. 2007 1 Sisältö 1 Tietokannan kuvaus 3 1.1 Tietokannan rakenne..................................
Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari
Testaussuunnitelma Labra
Testaussuunnitelma Labra Helsinki 25.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op) Projektiryhmä Anssi Kapanen,