Rekisteröityminen TMC-serverille

C-kurssilla keskeinen osa on TMC-palvelimella jonne harjoitustehtävät lähetetään, ja joka tarkastaa ohjelmoimasi tehtävät. Jos sinulla ei ole vielä tunnusta TMC-palvelimelle, sinun täytyy luoda sellainen klikkaamalla "Sign up" - linkkiä aloitussivun ylälaidassa.

Kun olet kirjautunut järjestelmään sisään, näet listan saatavilla olevista kursseista TMC-etusivulle. Kun klikkaat kurssin nimeä, pääset näkemään kurssin harjoitustehtäväpaketteja, sekä voit tarkastella palautuksiasi ja saamiasi pisteitä.

Lyhyt yhteenveto

Seuraavassa käydään lyhyesti läpi mitä sinun tarvitsee tehdä päästäksesi suorittamaan ohjelmointitehtäviä. Sinun tulee järjestää itsellesi kehitysympäristö C-ohjelmien kirjoittamiseen ja kääntämiseen, sekä asentaa työkalut joilla voit lähettää palautukset suoraan omalta koneeltasi palvelimelle. Näihin liittyy erilaisia haasteita riippuen siitä mitä käyttöjärjestelmää ja käyttöjärjestelmäversiota käytät.

Netbeans on graafinen ympäristö ohjelmien kehittämiseen, joka ei ole kovinkaan yleinen C-ohjelmoijien keskuudessa. Netbeansiin on kuitenkin kehitetty lisäpalikka, joka mahdollistaa tehtävien lähettämisen suoraan editorista TMC-palvelimelle tarkistettavaksi, joten siksi käymme sitä hieman tarkemmin alla läpi. Voit toki käyttää mitä tahansa muutakin editoria ohjelmien kirjoittamiseen, ja tehtävien lähettämiseen komentoriviltä löytyy myös työkalu (kts. alla).

Mikäli et halua käyttää Netbeansiä, voit käyttää useita muita editoreja C-ohjelman kirjoittamiseen, kuten 'gedit', 'vim', 'emacs' tai 'kate'. Tällöin haluat todennäköisesti lähettää ohjelman palvelimelle tmc-cli - komentorivityökalulla. Alla löytyy sen asentamiseksi tarkemmat ohjeet.

Jollet halua asentaa mitään omalle koneellesin, voit suoraan hypätä osioon, jossa kerrotaan työkalujen (kuten Netbeans) käytöstä.

Ohjelmointiympäristön asentaminen

Seuraavassa käydään läpi työkalujen asentamista eri ympäristöille, tarkemmin ottaen seuraavat:

Lyhyt yhteenveto: Jos käytät Linuxia, kaikki tulee olemaan helppoa. Mac:llä ja Windows:lla saattaa olla tiettyjä ongelmia, joista kerrotaan alla, mutta ohjelmointiympäristön saa toimimaan niilläkin. Jos sinulla on Mac tai Windows, Linuxin saa pyörimään myös virtuaalikoneen sisälle, mikä saattaa olla hyvä vaihtoehto jos koneesi on kohtuullisen uusi ja tukee virtualisointia.

Mikäli sinulla on tuore, ennalta asennettu NetBeans esim toisen MOOC kurssin jäljiltä, voit hyvin asentaa muut tarvittavat paketit ja lopuksi asentaa NetBeanssiin C tuen (tools -> plugins).

Komentorivi vai graafinen editori?

Alla olevat ohjeet koostuvat seuraavista osista:

  • Sinulla täytyy olla tarvittavat komentorivityökalut C-ohjelmien kääntämiseen ja debugaamiseen, sekä paikallisten yksikkötestausten tekemiseen. Näitä ovat mm. gcc, make, check, pkg-config ja gdb. On tärkeää että kyseiset työkalut asennetaan ensin, ennenkuin rupeat asentamaan esimerkiksi Netbeansiä.

  • Vaihtoehto A: voit käyttää Unix-komentoriviä ohjelmien kääntämiseen ja valitsemaasi tekstieditoria niiden kirjoittamiseen. Tällöin asennat tmc-cli - työkalun toimivien ohjelmien lähettämiseen palvelimelle suoraan komentoriviltä.

  • Vaihtoehto B: Käytät Netbeansiä, joka on graafinen IDE, eli se sisältää integroituna pakettina editorin, kääntäjän ja tehtävien lähettämisen palvelimelle. Silloin seuraat ohjeita Netbeansin asentamiseksi.

  • On myös mahdollista tehdä tehtäväpohjista zip-paketti ja lähettää ne palvelimelle web-selainta käyttäen TMC-palvelimen käyttöliittymän kautta. Tämä on pidemmän päälle hieman työläämpää kuin edellä mainitut vaihtoehdot, ja siksi ei suositeltavaa.

Seuraavat käyttöjärjestelmä-kohtaiset rajoitteet ovat tiedossa:

  • Windowsilla ja Cygwinillä paikalliset yksikkötestit eivät toimi. Tällöin voi kuitenkin lähettää tehtäväkoodit palvelimelle tarkistettavaksi. Kukin palvelimen tarkistus kestää n. 5-20 sekuntia.

  • Mac OS 10.10:ssä Netbeans ei löydä pkg-config - työkalua, vaikka se olisikin asennettuna. Ylipäätään uudet Mac OS-versiot aiheuttavat hankaluuksia.

  • Mac OS 10.6 ja vanhemmissa Netbeansin tarvitsemaa JDK 7 - ympäristöä ei saa asennettua. Tällöin sinun täytyy sopeutua käyttämään komentorivityökaluja tehtävien tekemiseen.

Linux

Linux - ympäristöissä perustyökalut, kuten gcc ja make, ovat yleensä oletusarvoisesti asennettuina. Niiden lisäksi tarvitset kuitenkin muitakin paketteja, jotta tehtävien testaus ja debugaus omalla koneella olisi mahdollista. Debianissa tai Ubuntussa seuraavat komennot tarvitaan näiden työkalujen asentamiseksi (sekä tietysti pääkäyttäjän oikeudet):

1
2
3
4
sudo apt-get install check
sudo apt-get install pkg-config
sudo apt-get install valgrind
sudo apt-get install gdb

Jotkut paketeista saattavat ollakin jo asennettuina, jolloin saat asiasta ilmoituksen.

Jos haluat käyttää Netbeansiä, myöhemmin seuraa ohjeet sen asentamiseksi

Mac OS

Mac OS - järjestelmissä C-kääntäjä tulee XCode-ympäristön mukana. XCoden saa App Storen kautta, mutta se ei maksa mitään. Lisäksi tarvitset edellä Linuxin yhteydessä mainitut komentorivityökalut.

  • Mac OS 10.8:ssa nämä saa tällaisesta paketista.

  • Mac OS 10.9:ssä sinun tulee kirjoittaa xcode-select --install komentorivillä ja seurata ohjeita.

  • Myöhempiin käyttöjärjestelmäversioihin ei vielä ole ohjeita, mutta vastaavat toimet tarvitaan niihinkin.

Jotta voit asentaa komentorivityökaluja, tarvitset pakettienhallintaohjelman koneeseen. Homebrew on yksi sellainen, ja alla olevat ohjeet on tehty sille. Muitakin tällaisia toki on.

Avaa terminaali-ikkuna (eli komentorivi). Voit asentaa Homebrew:n kirjoittamalla

1
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

Seuraa ruudule tulevia ohjeita. Lisää tietoa Homebrewstä löytyy täältä. Kun Homebrew on asennettu, voit asentaa tarvittavat paketit seuraavasti:

1
2
brew install check
brew install pkg-config

gdb:n ja valgrindin saaminen toimintaan Mac:llä saattaa olla vaikeampaa, mutta ohjeita löytyy esim. täältä.

OS X 10.9:ssä Netbeansin toimntaan saaminen edellyttää, että kerrot tarvittavista poluista graafiselle käyttöliittymälle. Tämä tapahtuu muokkaamalla /etc/launchd.conf - tiedostoa esimerkiksi seuraavilla komennoilla:

1
2
3
sudo su
echo "setenv PATH $PATH" >>/etc/launchd.conf
exit

Ensimmäinen komento kysyy salasanaasi. Lopuksi sinun tulee käynnistää kone uudestaan.

Valitettavasti myöhemmissä Mac OS - versioissa tämäkin on taas muuttunut, mutta käynnistämällä Netbeansin komentoriviltä seuraavaan tyyliin sen pitäisi toimia:

/Applications/NetBeans/NetBeans\ 8.1.app/Contents/MacOS/netbeans

Tarkka nimi vaihtelee käytetyn Netbeans-version mukaan.

Windows

Huomaa, että paikallisten testien ajo ei ole mahdollista Käännösvirheiden tunnistamiseksi on kuitenkin tärkeää, että asennat allamainitut työkalut.

Hanki Cygwin osoitteesta www.cygwin.com. Cygwin tarjoaa useat Linux/Unix - järjestelmissä saatavilla olevat ohjelmat ja ohjelmakirjastot Windowsille sovitettuna. Klikkaa webbisivulta löytyvää *"Install Cygwin" - linkkiä, ja valitse 32-bittinen tai 64-bittinen versio sen mukaan mitä oma koneesi tukee. Uudet koneet alkavat olla 64-bittisiä, mutta jos olet epävarma, valitsemalla 32-bittisen ei voi mennä pieleen. Klikkaa setup-....exe - linkkiä sen mukaan kumman version haluat asentaa.

Kun olet klikannut Cygwin-asennuslinkkiä, ruudulle tulee useita ikkunoita joissa kysytään konfiguroimiseen liittyviä tietoja. Useimmissa kohdissa hyvä vaihtoehto on hyväksyä tarjotut oletusarvot, ja vain klikata "Next":iä. Kun tulet kohtaan jossa kysytään mitä pakkauksia tulisi asentaa, sinun tulisi valita C-ohjelmoinnissa tarvittavat pakkaukset asennettaviksi (klikkaamalla "Skip" - painiketta kyseisen pakkauksen kohdalla).

Tarvitset seuraavat pakkaukset:

  • Devel/gcc-core -- C-kääntäjä ja siihen liittyvät työkalut
  • Devel/make -- make-työkalu, jota testit käyttävät
  • Devel/pkg-config -- jota testiskriptit tarvitsevat
  • Devel/check -- yksikkötestauskirjasto jota testiskriptit tarvitsevat
  • Devel/gdb -- joka auttaa ohjelmasi debugauksessa.

Kun näiden valintojen jälkeen klikkaat "Next", asennusohjelma saattaa tyrkyttää muitakin pakkauksia, joita ylläolevat tarvitsevat toimiakseen. Tässä kohtaa voit jälleen painaa vain "Next"-nappulaa eteenpäin, jolloin pakkausten asennus alkaa.

Windows-asennuksissa TMC:n paikallisten yksikkötestausten tarvitsema check-kirjasto ei toimi parhaalla mahdollisella tavalla, ja siksi paikalliset testit eivät käytännössä toimi. Jokatapauksessa tehtävät voi kuitenkin aina lähettää palvelimelle, joka tarkastaa niiden oikean toiminnan.

tmc-cli- komentorivityökalu

Perinteinen tapa kehittää C-ohjelmia on toimia Unix-komentorivillä, josta käytät kääntäjää ja testaat ohjelmia. Mikäli komentorivin käyttö ei ole aiemmin tuttua, sen opiskelu vaatii hieman vaivaa, mutta on toisaalta tehokasta sitten kun olet perusasiat oppinut. Mikäli käytät mieluumin Netbeansiä, voit ohittaa tämän luvun.

TMC:hen on saatavana tmc-cli - niminen työkalu, joka mahdollistaa tehtävien lähettämisen palvelimelle suoraan komentoriviltä tiettyjä komentoja käyttäen. Jotta voit asentaa tämän (Javalla toteutetun) työkalun, sinulla tulee olla vähintään Java-versio 7 asennettuina.

Asenna tmc-cli https://github.com/tmc-cli/tmc-cli#installation ohjeen mukaisesti; eli lataa tmc-cli:n uusin versio. Ensimmäisellä suorituskerralla ohjelma lisää itsensä .bashrc tiedostoon aliakseski, jolloin ohjelma lyötyy aina komentoriviltä. Mikäli käytät muuta terminaalia kuin bash voi olla, että joudut päivittämään erikseen konfiguraatioitasi, jotta saat tmc komennon helposti suoritettua.

Kun olet asentanut tmc-cli:n, komenna ensiksi tmc login -s https://tmc.mooc.fi/mooc, jotta pääset antamaan login tietosi. Tätä ennen sinun tulee olla luonut käyttäjätunnus TMC:hen web-liittymän kautta. Tässä kohtaa pääset myös valitsemaan sen kurssin jota olet nyt suorittamassa (tunniste kerrotaan MyCourses-sivulla). On tärkeää, että konfiguroit palvelimen osoitteen oikein: https://tmc.mooc.fi/mooc.

Kun olet konfiguroinut tmc-cli:n, voit ruveta tekemään tehtäviä ja käyttää työkalua tehtävien lähettämiseen palvelimelle. Tarkempia ohjeita käyttöön löytyy tästä esittelystä.

Kannattaa kiinnittää huomiota siihen, mihin hakemistoon tmc-cli hakee tehtäväpohjat, jotta löydät C-lähdetiedostot joita sinun tulee muokata. Oletusarvoisesti tämä hakemisto on <kurssi-ID>/<moduli>-<tehtävännimi> siinä kansiossa, mistä lataus komennon suoritat.

Yleisimmät komennot, joita tulet tarvitsemaan, ovat:

  • tmc download <kurssin nimi>: lataa kaikki saatavilla olevat tehtävät
  • tmc update: tarkista ovatko tehtävät päivittyneet edellisen kerran jälkeen
  • tmc run-tests: testaa paikallisesti valittua tehtävää
  • tmc submit: lähetä valittu tehtävä palvelimelle
  • tmc paste: lähetää tehtävän TMC-pastebiniin

tmc-cli:ä kehitetään aktiivisesti, ja suosittelemme aina uusimman version asentamista.

Kaikki jatkokehitysehdoitukset tmc-cli:stä otetaan mieluusti vastaan joko GitHumissa tai kurssin IRC kanavalla.

Netbeansin ja TMC-pluginin asentaminen

Mikäli haluat käyttää Netbeans-IDE:ä ja siihen liittyvää TMC-pluginia, sinun tulee ensin asentaa C-käännöstyökalut järjestelmääsi, kuten yllä neuvottiin.

Netbeans on toteutettu Javalla, ja tarvitsee JDK 7 - ympäristön, jonka voi hakea täältä. Valitse versio joka sopii omaan järjestelmääsi, ja hae ja asenna paketti. Linuxilla tämä tapahtuu purkamalla .tar.gz - paketin valitsemaasi paikkaan. Windowsilla ja Macillä on käytössä asennuspaketti, jollaisia näissä normaalistikin käytetään. Tällöin käynnistät asennuksen ja seuraat ruudulle tulvia ohjeita ja kysymyksiä.

Kun JDK on asennettuna, hae Netbeans osoitteesta netbeans.org. Valitse versio joka tukee C:tä ja C++:aa. Sivulta latautuu asennuspaketti, jonka avulla asennat ohjelman, kun ajat kyseisen paketin.

Kun Netbeans käynnistyy, pääset asentamaan TMC-pluginia. Se tapahtuu seuraavasti:

  • Mene "Tools" valikkoon ruudun yläreunassa, ja valitse "Plugins" - valinta. Nyt pitäisi aueta uusi ikkuna.

  • Klikkaa "Settings" - välilehteä ja etsi sieltä "Add" - nappi ikkunan oikeassa laidassa. Jälleen aukeaa uudenlainen ikkuna.

  • Kirjoita nimeksi "TMC" ja anna pluginin osoitteksi "http://update.testmycode.net/tmc-netbeans_mooc/updates.xml". Paina tämän jälkeen "OK"-nappia.

  • Äskeinen ikkuna sulkeutuu, mutta mene nyt "Available plugins" välilehdelle ja etsi sieltä TMC-plugin. Mahdollisia plugineja on paljon, joten voit käyttää hakutoimintoa etsimisen helpottamiseksi: kirjoita "tmc" oikeassa ylälaidassa olevaan hakukenttään. Oikean pluginin kohdalla tulisi lukea "Test My Code plugin". Valitse plugin asennettavaksi (klikka Install valinta-ruutua), ja paina lopusi alalaidassa olevaa "Install" - nappia.

  • Pluginin asennusruutu tulee näkyviin ja pyytää sinua hyväksymään normaalin tavan mukaisesti lisenssiehtoja, jne.

  • Käynnistä asennuksen jälkeen Netbeans uudestaan.

Uudelleenkäynnistyksen jälkeen ylälaidasta tulisi nyt löytyä uusi "TMC" - valikko. Sieltö löytyy "Settings" - valinta, jonka kautta pääset antamaan palvelimen osoitteen (tulisi olla oikein oletusarvoisesti), sekä käyttäjätunnuksesi. Täältä valitset myös oikean kurssin nimen (kerrotaan MyCourses - sivulla).

Palvelimen osoitteen tulisi olla https://tmc.mooc.fi/mooc

Tehtävämalli

Harjoitustehävät paketoitu pieniksi ohjelmaprojekteiksi, jotka haetaan TMC-palvelimelta. Yhdessä paketissa saattaa olla muutama pieni tehtävä, tai hieman isompi tehtävä joka koostuu muutamasta osasta. Tehtäväpaketti on nimetty numerolla ja lyhyellä nimellä (esim. "02_intro"), joka näkyy kurssimateriaalin ohessa.

Kussakin paketissa on joukko C-lähdetiedostoja sekä muutamia muita tiedostoja, joita tarvitaan ohjelmien kääntämiseen, testaamiseen, ja niiden esittämiseen Netbeans-projektina. Alla oleva kuva esittää kustakin paketista löytyvän tiedostohierarkian, sekä muutaman tärkeimmän tiedoston.



Kukin tehtäväpaketti sijoittuu hakemistoon, jonka nimi on muotoa "Module_N-(tehtävätunniste)". Harjoitustehtävät tehdään "src" - alihakemistossa sijaitsevissa lähdetiedostoissa. Ensimmäisissä tehtävissä sinun tulee muokata "source.c" - tiedostoa, joka sisältää valmiiksi jo funktioiden määrittelyt, mutta ei välttämättä vielä toteutusta. Myöhemmissä tehtävissä lähdetiedsto voi olla eri niminen, tai lähdetiedostoja voi olla useita.

Tehtäväsi on siis muokata "source.c" - tiedostoa tehtävänannossa kerrotulla tavalla. Kun ohjelmasi näyttää mielestäsi hyvältä, voit kääntää sen ja testata sitä (mikäli käännös sujui ongelmitta). Testaamiseen voi käyttää "src" - hakemistossa olevaa "main.c" - tiedostoa, joka sisältää main - funktion, josta ohjelman suoritus aina alkaa. Voit muokata tätä tiedosta miten haluat, eikä TMC tarkista sen sisältöä, ja sitä kannattaa käyttää funktioidesi testaamiseen eri syötteillä.

Kun ohjelma käännetään esimerkiksi "make" - komennolla, syntyy "src" - hakemistoon "main" - niminen suoritettava ohjelma, joka ajaa main - funktion. Tätä ohjelmaa käytät siis koodisi itsenäiseen testaamiseen.

Lisäksi harjoituspohjassa on "test" - hakemisto, joka sisältää tehtävien testaamisessa käytetyn ohjelmakoodin. Varsinaiset testit on myös toteutettu C:llä, ja ne löytyvät tiedostosta "test_source.c", mikäli haluat perehtyä testien toteutukseen. Sinun ei kuitenkaan välttämättä tarvitse välittää "test" - hakemiston sisällöstä.

"nbproject" - hakemisto sisältää Netbeansin tarvitsemia tiedostoja. Tähänkään hakemistoon sinun ei tarvitse koskea.

Lyhyt yhteenveto: Alkupään tehtävissä src/source.c on ainoa tiedosto, jota sinun tulee muokata tehtävien ratkaisemiseksi. Joskin src/main.c:n käyttö on hyödyllistä ohjelmiesi testaamiseksi.

Ohjelmien kääntäminen ja tarkistaminen

Netbeans

Netbeansin TMC-plugin tarjoaa automaattisesti koneellesi harjoitustehtäviä jotka ovat päivittyneet tai ovat uusia edellisen käyttökerran jälkeen. Voit hakea tehtävät itse TMC-valikon "Download/update exercises" - kohdasta. Kun tehtäväpaketit on haettu, ne näkyvät Netbeans-ikkunan vasemassa laidassa olevassa projektinäkymässä. Kun klikkaat projektin nimen kohdalta, näet yllä kuvatun hakemistohierarkian, jonka alta pitäisi löytyä "source.c - tiedosto, jota sinun tulee muokata. Kun tuplaklikkaat tiedoston nimen kohdalla, pääset muokkaamaan sitä.

Kun olet kirjoittanut ohjelmaa siihen pisteeseen, että haluat testata sitä, ensimmäinen vaihe on tarkistaa että se kääntyy ilman virheitä tai varoituksia. Ohjelmaa voi toki testata ennenkuin se on täysin valmis, mikä on hyödyllistäkin varsinkin isommissa ohjelmissa. Netbeansissä kääntäminen tapahtuu "vasara"-ikonia ("Compile") painamalla (katso alla oleva kuva). Tarkista tämän jälkeen kääntäjän tuottamat ilmoitukset, ja huomaa että niitä saattaa olla enemmän kuin mitä kerrallaan Netbeansin pieneen tulostenäkymään mahtuu. Mikäli käännös onnistuu ilman virheitä, src-hakemistoon syntyy ajettava main - tiedosto, jota voit käyttää testaamiseen. Mikäli käännöksessä tuli virheitä tai varoituksia, korjaa ohjelmaasi ja käännä se uudestaan.



Kun käännös on onnistunut, voit suorittaa ohjelmasi (eli src/main - tiedoston) painamalla vihreää nuolta ("Run"). Ohjelman tuottama tuloste (esim. printf-komennoista) tulee näkyville Netbeansin tulosteikkunaan. Näitä tulosteita käyttämällä voit nyt pyrkiä päättelemään toimiiko ohjelmasi oikein. Muista, että C-ohjelmoinnissa sinun tulee aina kääntää ohjelma uudestaan kun teet lähdekoodiin muutoksia. Muuten muutoksesi eivät vaikuta ohjelman toimintaan millään tavalla (koska src/main - tiedosto ei ole muuttunut).

Kun olet tyytyväinen ohjelmasi toimintaan, voit testata sitä tehtäväpaketin mukana tulevilla yksikkötesteillä, jotka ovat pitkälti samat kuin palvelimen käyttämät testit, vaikka eroja voi olla. Tämä tapahtuu painamalla "Silmä"-nappia (eli "Test locally"). Ruutuun tulee ilmoitus mikä kertoo menivätkö testit läpi, vai oliko niissä virheitä. Lue virheilmoitus ja korjaa ohjelmaasi sen mukaisesti. Paikalliset testit eivät toimi Windows-koneilla, joten tehtävät on lähetettävä suoraan palvelimelle tarkistettavaksi.

Lopuksi lähetät tehtävät TMC-palvelimelle käyttämällä "Submit to server" - nappia. Palvelin tarkistaa tehtävät vielä kerran, ja mikäli yksikkötesteissä ei tullut virheitä, saat tehtävän hyväksytyksi ja voit siirtyä seuraavaan tehtävään. Netbeans tarjoaa vielä lopuksi mahdollisuuden jättää palautetta tehtävästä. Toivomme että jätät palautetta, koska se auttaa tehtävien edelleenkehittämisessä.

Huomaa että kussakin tehtäväpaketissa on yleensä useampi tehtäväkohta, ja tällöin osa paketin tehtäväkohdista voi mennä läpi, kun taas toisissa on edelleen virheitä. Netbeansin tulosteikkunasta näet mitkä kohdat toimivat, ja mitkä eivät.

Komentorivi

Seuraavassa olevat ohjeet olettavat, että käytät tmc-cli - työkalua tehtäväpakettien lataamiseksi omalle koneelle.

Komenna "tmc update" hakeaksesi tuoreimmat versiot tehtäväpohjista. Kunkin tehtävän hakemistohierarkia on samanlainen kuin Netbeans:inkin kanssa, eli kukin tehtäväpaketti on omassa "Module_N-(tehtävätunniste)" - hakemistossaan, jonka alta löytyy src-hakemisto, jossa ovat tiedostot joita sinun tulee muokata, ennenkaikkea "source.c".

Valitse aluksi tehtävä jota haluat tehdä komennolla "tmc select". Sen jälkeen avaa C-lähdetiedosto suosimassasi tekstieditorissa ja toteuta ohjelma tehtävänannon mukaisesti. Voit kokeilla ohjeman kääntämistä "make" - komennolla, joka toimii tehtäväpohjan ylimmältä hakemistotasolta ajettuna. Ruudulle tulevat kääntäjät mahdolliset virheilmoitukset ja varoitukset, ja mikäli näin on, sinun tulee korjata ohjelmaasi. Mikäli virheitä ei tule, "src"-hakemistoon on syntynyt tiedosto "main", jonka ajamalla voit testata ohjelmaa. komennolla "make run-main" voit ajaa kyseisen tiedoston.

Mikäli ohjelma vaikuttaa toimivan, voit ajaa yksikkötestit paikallisesti komennolla "tmc test", jolloin ruudulle tulee tieto siitä menivätkö testit läpi, vai oliko toteutuksessa virheitä. Mikäli virheitä on, pyri korjaamaan ohjelmaa ja aja testit uudestaan.

Lopuksi voit lähettä tehtävän takaisin TMC-palvelimelle komennolla "tmc submit". Palvelimen tekemien testien tulokset ilmestyvät hetken päästä ruudulle, ja mikäli kaikki tehtäväkohdat menivät hyväksytysti läpi, voit siirtyä seuraavaan tehtäväpakettiin "tmc select" - komennon kautta.

Linux-virtuaalikone

Olemme laatineet virtualisoidun Linux-ympäristön perustuen Ubuntu 16.04, johon on valmiiksi asennettu kehityksessä ja testauksessa tarvittavat työkalut, kuten Netbeans TMC-pluginilla sekä valgrind jota tarvitaan kurssin myöhemmillä kierroksilla. Mikäli siis asennuksissa varsinaiseen ympäristöösi on ongelmia, voit kokeilla tätä vaihtoehtoa. Virtualisoidun ympäristön mahdollisena haittapuolena on, että se vaatii kohtuullisen paljon tilaa levyltäsi (imuroitava paketti on reilu 3 GB, ja vaatii asennettuna n. 8 GB levytilaa), ja se saattaa joissain järjestelmissä olla hidas. Olisi myös hyvä että järjestelmäsi tukee virtualisointia, jottei virtualisoitu ympäristö olisi kovin hidas.

VirtualBox on kohtuullisen helppokäyttöinen, ilmainen ympäristö virtuaalikoneiden pyörittämiseen. Voit hakea sen VirtualBox-webbisivulta. Seuraa asennusohjeita ympäristön asentamiseksi.

Kun olet asentanut VirtualBoxin, voit hakea tallentamamme levyimagen kurssin palvelimelta. Huomioi, että se on kooltaan aika iso, ja imuroinnissa voi kestää tovi, mikäli sinulla ei ole nopeaa verkkoyhteyttä. Kun olet saanut tiedoston koneellesi, valitse VirtualBoxin File-ylävalikosta "Import Appliance". Ruudulle aukeaa ikkuna, jossa sinun tulisi valita juuri imuroineesi tiedosto, sekä klikkailla "Ok" tai "Continue" muutaman kerran. Tämän jälkeen VirtualBox:iin ilmestyy uusi virtuaalikone, nimeltään "mooc". Valitse se, ja paina "Start" - nappia. Linux-virtuaalikoneen pitäisi nyt käynnistyä.

Linux-järjestelässä on käyttäjä "mooc", jonka salasana on "mooc". Ubuntu ohittaa normaalin login-ruudun, mutta salasana saatta silti joskus tulla tarpeeseen, esimerkiksi ohjelmien päivittämiseksi. Voit käynnistää Netbeansin työpöydältä löytyvän ikonin kautta, tai vaihtoehtoisesti käyttää Linuxin komentorivityökaluja. Järjestelmään on jo valmiiksi asennettu TMC-plugin, mutta sinun täytyy syöttää järjestelmään oma TMC-käyttäjätunnuksesi ja salasanasi.

Pastebin

Mikäli sinulla on haasteita tehtävien kanssa, voit kysyä neuvoa esimerkiksi IRC-kanavalla, tai kurssin keskustelufoorumilla. Tällöin on usein tarpeellista pystyä näyttämään ohjelmaasi kysymyksen mukana muille, jotta sinua osataan neuvoa. Tätä tarkoitusta varten käytetään pastebiniä joka on palvelu pienten koodinpätkien jakamiseen muille. Kun lähetät ohjelmasi pastebiniin, saat webbilinkin jonka kautta toiset näkevät koodisi.

Koodin kopioiminen toisilta suoraan on kiellettyä, joten siksi pastebin-webbilinkin voivat avata kurssihenkilökunnan lisäksi vain ne opiskelijat jotka ovat jo ratkaisseet kyseisen tehtävän. Tästä syystä on sallittua käyttää vain kurssin omaa, TMC:n tarjoamaa pastebiniä. Vastaavien julkisten ratkaisujen käyttö on kiellettyä.

Kurssin oman pastebinin käyttö on helppoa:

  • Netbeansin kautta voit valita TMC-valikosta "Submit to pastebin" valinnan, joka lähettää kyseisellä hetkellä auki olevan tehtävän pastebiniin.

  • tmc-cli - työkalussa vastaava komento on "tmc paste".

Kummassakin tapauksessa saat takaisin web-linkin, jonka voit jakaa toisille kysymyksesi mukana. Pelkkä linkin jakaminen ei yleensä ole sellaisenaan hyödyllistä, vaan jos haluat saada apua, kannattaa saatteena kertoa mikä on ongelmasi.