Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Ohjelmointi 1 -kurssin työkalut

Harjoitustehtävien ja harjoitustyön tekemiseen käytämme seuraavia työkaluja:

  • .NET - ohjelmistoviitekehys (engl. framework) sekä ajonaikainen ympäristö (engl. runtime) C kielelle. .NET mahdollistaa C ohjelmien kääntämisen ja ajamisen. Se tarjoaa myös valmista koodia yleisempiin käyttötarkoituksiin (esim. tekstin tulostaminen näytölle, käyttöliittymien tekeminen).
  • Git - versiohallintaohjelma (engl. Version Control Software, VCS), joka mahdollistaa koodin versioinnin ja yhteistyön koodaajien välillä. Vähän kuin Google Docsin muokkaushistoria, mutta koodaamiseen tarkoitettu.
  • JetBrains Rider - integroitu kehitysympäristö (engl. Integrated Development Environment, IDE). IDE sisältää oleellisimmat toiminnot ohjelmien tekemiseen (koodin muokkaus, kääntäminen, ajaminen). Rider on erityisesti .NET ja C ohjelmille tarkoitettu IDE.
  • Tekstieditori - jokin kevyt tekstieditori, jolla tekstipohjaisia tiedostoja (esim. koodi) voi muokata avaamatta IDE-ohjelmistoa. Suosittelemme esimerkiksi Visual Studio Code tai Notepad++. Microsoft Word tai Google Docs ei ole opintojaksolle soveltuva tekstieditori.
  • JyPeli - pelimoottori (engl. game engine), joka on Jyväskylän yliopistossa kehitetty C kirjasto pelien tekemiseen.
  • ComTest - yksikkötestigeneraattori (engl. unit test generator), joka on aputyökalu, jonka avulla kirjoitetulle koodille voi kirjoittaa testejä helposti luettavalla merkintätavalla.

Tässä dokumentissa käydään läpi yllä olevien työkalujen ja ohjelmien asentamista.

Yllä olevat ohjelmat ovat valmiiksi asennettuna Agoran mikroluokissa. Suosittelemme, että asennat ohjelmat lisäksi niille tietokoneille, joilla aiot suorittaa opintojakson. Erityisesti harjoitustyön tekeminen pääteohjausten ulkopuolella on helpompaa, kun kaikki tarvittavat ohjelmat on myös omalla tietokoneella.

Ennen asentamista

Käyttöjärjestelmä ja vaatimukset

Tällä sivulla olevat ohjeet riippuvat käyttöjärjestelmästä. Valitse käyttöjärjestelmä alta.

Valitsit Microsfot Windows -käyttöjärjestelmän. Alla olevat ohjeet on testattu seuraavilla käyttöjärjestelmillä:

  • Windows 11
  • Windows 10

Pikakurssi komentorivin käyttöön

Tämän sivun asennusohjeet vaativat komentorivin avaamista ja käyttöä.

Opintojaksolla komentorivin käyttöä käsitellään tarkemmin opintojakson aikana; jos luet nämä ohjeet aivan opintojakson alussa, komentorivi saattaa kuulostaa vielä hämärältä asialta.

Jos et ikinä ennen käyttänyt komentoriviä, katso pikainen johdatus komentorivin käyttöön alta.

Pikainen johdatus komentorivin käyttöön (Avaa klikkaamalla)

Mikä on komentorivi?

Komentorivi (engl. command line) tai pääte (engl. terminal) on (tämän ohjeen puitteissa) tietokoneohjelma, jolla tietokonetta voi ohjata tekstillä. Esimerkiksi, kun Windowsissa jonkun kansion sisällön katsominen onnistuu graafisesti avaamalla Resurssinhallinta (tai macOS:lla vastaavasti Finder), sama asia onnistuu komentorivillä kirjoittamalla komento (engl. command), joka tulostaa näkyviin kansion sisällön.

Komentorivillä työskentely on yleistä ohjelmoinnin yhteydessä. Syitä on monia, eikä niitä tässä käsitellä. Tämän ohjeen kannalta olennainen syy on, että yleisten ohjelmien asentaminen onnistuu nykyään jopa helpommin komentorivillä kuin "käsin" etismällä sopiva asennusohjelma verkosta.


Miten avaan komentoriviin omalla tietokoneellani?

Toimintatapa vaihtelee eri käyttöjärjestelmillä. Samalla käyttöjärjestelmällä voi olla myös useita komentoriviohjelmia. Alla olevilla ohjeilla saata ainakin kaikki tarvittavat työkalut asennettua.

  1. Paina Käynnistä-painikkeen vieressä olevaa Haku-ikonia
  2. Kirjoita hakupalkkiin PowerShell
  3. Valitse löytyvistä tuloksista Windows PowerShell

Tämä avaa PowerShell-komentorivin, joka on eräs Windowsilla oleva komentorivipääte.

Miten käytän komentoriviä?

Kun näet tällä sivulla alla olevan tapaisen laatikon:

ls

Tulee sinun kirjoittaa laatikossa oleva komento ja suorittaa se komentorivillä. Toimi seuraavasti:

  1. Klikkaa komentorivi aktiiviseksi ikkunaksi ellei se ole jo.
  2. Kirjoita laatikossa oleva komento komentoriviin näppäimistöllä.
  3. Tarkista, että kirjoitit komennon täysin oikein. Huomaa, että kirjainkoolla, välilyönneillä ja muilla merkeillä on merkitystä komennon kannalta!
  4. Kun olet varmistanut, että kirjoitit komennon oikein, paina Enter-näppäintä.

Riippuen komennosta komentoriviin voi ilmestyä tuloste, virhe tai ei mitään. Jotkin ohjelmat eivät tulosta mitään tekstiä onnistumisen merkiksi. Kun komennon suoritus on valmis, komentorivin uudelle riville ilmestyy uusi komentokehote.

Kokeile kirjoittaa ja suorittaa yllä oleva esimerkkikomento. Komento listaa hakemistossa olevien tiedostojen ja kansioiden nimiä (ls on lyhenne sanalle "list").

Kun tällä sivulla näet laatikon, jossa on useita rivejä, kuten

echo "Kissa"
ls

Toimi seuraavasti:

  1. Tee yllä mainitut vaiheet 1-4 vain ensimmäisellä rivillä olevalle komennolle (eli tässä echo "Kissa")
  2. Tee yllä mainitut vaiheet 1-4 vain toisella rivillä olevalle komennolle (eli ls)
  3. Jatka rivien suorittamista kunnes olet suorittanut kaikki laatikossa olevat rivit

Toisin sanoen, tällä sivulla jokainen yksittäinen komento on aseteltu omalle rivilleen. Tarkoitus on, että suoritat jokaisen rivin yksi kerrallaan siinä järjestyksessä, jossa ne on laatikossa kirjoitettu.

Kokeile kirjoittaa ja suorittaa yllä olevassa laatikossa olevat komennot. Kirjoita ja suorita ensin komento echo "Kissa" ja sen jälkeen komento ls. Muista, että tietokone suorittaa komennon vasta, kun painat Enter-painiketta.

Voinko kopioida komentoja kirjoittamisen sijaan?

Kyllä voit. Tällä ohjesivulla komentojen kopiointi onnistuu klikkaamalla kopioitavasta komennosta kerran ja painamalla Ctrl+C (Windows, Linux) tai Command+C (macOS).

Komennon liittäminen komentoriville riippuu käyttöjärjestelmästä:

  • Windows: Valitse PowerShell-komentorivi aktiiviseksi ja paina Ctrl+V (tai klikkaa hiiren oikea painike)
  • macOS: Valitse Pääte aktiiviseksi ja paina Command+V
  • Linux: Valitse komentorivi aktiiviseksi ja paina Ctrl+Shift+V TAI Shift+Insert. Tarkista pääteohjelmasi ohjeista oikea näppäinoikotie

varoitus

Älä ikinä kopioi ja liitä komentoriville mitään komentoja, joihin et luota etkä tiedä, mitä ne oikeasti tekevät. Komentorivien komennot ovat usein peruuttamattomia: jos vahingossa poistat jonkun tiedoston, poisto on usein lopullinen eikä sitä voi peruuttaa. Esimerkiksi tekoälyn ehdottamiin komentoihin tulee suhtautua aina varauksella. Tällä sivulla mainitut komennot on testattu toimivaksi ja turvalliseksi vastuuopettajan toimesta.

Asennusohjeet tekstinä

Valmistelu

  1. Varmista, että tietokoneesi on ajan tasalla (Windows Update:ssa ei uusia päivityksiä) tai että näytönohjaimen ajurit ovat asennettu.

  2. Avaa PowerShell-komentorivi (Haku-ikoni → Kirjoita PowerShellWindows PowerShell).

  3. Kokeile, että winget-komento on asennettu ja toimii. Suorita seuraava komento:

    winget -v
    

    Tuloksena pitäisi tulostua winget-työkalun versio. Jos sen sijaan saat virheen, jossa lukee 'winget' is not recognized as the name of a cmdlet, function, script file, or operable program, tarkoittaa tämä, että sinulla todennäköisesti ei ole winget-työkalua asennettuna. Kokeile siinä tapauksessa seuraavat ratkaisut:

    • Tarkista, että käyttöjärjestelmäsi on ajan tasalla
    • Kokeile ladata ja asentaa winget-käsin: Lataa asennusohjelma Asennuksen jälkeen sulje ja käynnistä PowerShell uudelleen.

.NET

  1. Avaa PowerShell-komentorivi ellei se ole jo

  2. Suorita alla oleva komento

    winget install -e --id=Microsoft.DotNet.SDK.%%dotnet_major_version%%
    

    Odota komennon suorittamista loppuun ja anna tarvittaessa asennusoikeus. Jos näet komentorivillä kysymyksen, kuten:

    Do you agree to all the source agreements terms?
    [Y] Yes [N] No:
    

    Paina komentorivillä y-näppäintä ja sen jälkeen Enter-näppäintä.

    Tarkista lopuksi, että komentorivillä olevassa tulosteessa on teksti Successfully installed.

  3. Sulje kaikki auki olevat komentorivit ja avaa uusi PowerShell-komentorivi

  4. Testaa, että .NET on asennettu suorittamalla komento:

    dotnet --list-sdks
    

    Jos asennus onnistui, näet seuraavanlaisen tulosteen:

    %%dotnet_major_version%%.0.XXX [C:\Program Files\dotnet\sdk]
    

    Huomaa, että XXX on joku numero; olennaista, että versiona lukee %%dotnet_major_version%%.0 ja että virhettä ei tule.

Git

  1. Avaa PowerShell-komentorivi ellei se ole jo

  2. Asenna Git for Windows suorittamalla alla oleva komento:

    winget install -e --id=Git.Git --custom '/COMPONENTS="ext,ext\shellhere,ext\guihere"'
    

    Odota komennon suorittamista loppuun ja anna tarvittaessa asennusoikeus. Jos näet komentorivillä kysymyksen, kuten:

    Do you agree to all the source agreements terms?
    [Y] Yes [N] No:
    

    Paina komentorivillä y-näppäintä ja sen jälkeen Enter-näppäintä.

    Tarkista lopuksi, että komentorivillä olevassa tulosteessa on teksti Successfully installed.

  3. Sulje kaikki auki olevat komentorivit ja avaa uusi PowerShell-komentorivi

  4. Testaa, että git-komento on asennettu suorittamalla komento:

    git --version
    

    Jos asennus onnistui, näet seuraavanlaisen tulosteen:

    git version X.XX.XX
    

    Tekstin X.XX.XX tilalla näkyy git-työkalun tarkka versio.

  5. Testaa, vielä, että Git Bash on asennettu. Mene Haku-ikoni → Kirjoita Git Bash → Valitse Git Bash.

    Jos kaikki toimii, pitäisi avautua Git Bash -komentorivi:

    Git bash avattu

JetBrains Rider

  1. Avaa PowerShell-komentorivi ellei se ole jo

  2. Asenna JetBrains Rider suorittamalla alla oleva komento:

    winget install --interactive -e --id=JetBrains.Rider
    

    Ohjelman lataamisen jälkeen avautuu asennusohjelma. Etene asennusohjelmassa eteenpäin Next-painikkeella. Kohdassa Installation Options valitse seuraavat ruksit päälle:

    • Add "Open Folder as Project"
    • Install JetBrains ETW Host Service
    • Add Rider executables to Microsoft Defender exclusions
    • Create Associations: .sln, .cs, .csproj Etene asennusohjelmassa ja anna ohjelman asentua.
  3. Kun pääset asennusohjelman loppuun, valitse Run JetBrains Rider ja paina Finish. Testaa, että ohjelma toimii.

    Ensimmäisellä kerralla käynnistys saattaa kestää, sillä järjestelmä tarkistaa sovelluksen. Järjestelmä saattaa myös kysyä, Rider on internetsitä ladattu appi. Avataanko se?. Siinä tapauksessa voi valita Avaa.

    Hyväksy mahdolliset Riderin käyttöehdot.

  4. Kun JetBrains Rider kysyy lisenssiä, valitse Free Non-Commercial License.

  5. Valitse Register-linkki ja rekisteröidy JetBrains-käyttäjäksi. Valitse Continue with email ja tee itsellesi tunnus.

  6. Kun olet rekisteröitynyt, avaa Rider ja valitse Log in for Non-Commercial License.

    Kun olet kirjautunut, hyväksy vielä lisenssin ehdot ja valitse Start Non-Commercial license.

  7. Suorita asetusten asettaminen loppuun. Suositellut asetukset:

    • Teema: Valitse haluamasi teema
    • Näppäimistöasettelu: Suosittelemme vaihtoehdot Visual Studio tai VS Code
    • Pluginit: valitse Continue without Plugins
  8. Kun olet valmis ja pääset Welcome to JetBrains Rider -ikkunaan, voit sulkea sen. Ohjelman asennus on valmis!

Tekstieditori

Tälle opintojaksolle riittää mikä tahansa tekstieditori, joka ei ole toimistosovellus, eli ei Google Docs, Microsoft Word, tai muu asiakirjojen laadintaan tarkoitettu sovlelus. Vaihtoehtoja on monta. Ihmisillä on hyvin erilaisia preferenssejä tekstieditorien suhteen, joten kannattaa kokeilla erilaisia vaihtoehtoja ja valita itselle mieluisin.

Koska jokin tekstieditori täytyy valita, käytämme tässä ohjeessa Visual Studio Codea (VS Code). Se on suosittu, ilmainen, ja monipuolinen tekstieditori, jota voi laajentaa monin tavoin, jopa IDE-tasoiseksi työkaluksi lisäosien avulla. Jos haluat käyttää jotain muuta tekstieditoria, voit toki tehdä niin, mutta ohjeet on kirjoitettu VS Coden käyttöä ajatellen.

  1. Avaa PowerShell-komentorivi ellei se ole jo

  2. Asenna VS Code suorittamalla seuraava komento:

    winget install -e --id=Microsoft.VisualStudioCode --override '/SILENT /mergetasks="!runcode,addcontextmenufiles,addcontextmenufolders"'
    

    Odota komennon suorittamista loppuun ja anna tarvittaessa asennusoikeus. Jos näet komentorivillä kysymyksen, kuten:

    Do you agree to all the source agreements terms?
    [Y] Yes [N] No:
    

    Paina komentorivillä y-näppäintä ja sen jälkeen Enter-näppäintä.

    Tarkista lopuksi, että komentorivillä olevassa tulosteessa on teksti Successfully installed.

  3. Sulje kaikki auki olevat komentorivit ja avaa uusi PowerShell-komentorivi

  4. Kokeile käynnistää VS Code suorittamalla komento:

    code
    

    Jos VS Code avautuu, olet onnistuneesti asentanut sen! Jatkossa pääset VS Codeen myös klikkaamalla käynnistä-palkin Hae-ikonia → Kirjoita Visual Studio Code → Valitse Visual Studio Code.

JyPeli

  1. Avaa käyttöjärjestelmäsi komentorivi (PowerShell, Pääte tai vastaava).

  2. Asenna JyPeli-projektipohjat (engl. templates) suorittamalla alla oleva komento:

    dotnet new install Jypeli.Templates
    

    Kun asennus on valmis, näet jotakin tekstiä mallia:

    Success: Jypeli.Templates installed the following templates:
    
  3. Kokeile, että JyPeli toimii luomalla tasohyppelypeliprojekti ja suorittamalla se. Suorita alla olevat komennot (huom: yhteensä neljä komentoa):

    cd ~
    
    dotnet new Tasohyppelypeli -o TasohyppelypeliTesti
    
    cd TasohyppelypeliTesti
    
    dotnet run
    

    Erityisesti viimeisen komennon suorittaminen voi hieman kestää. Komennot tekevät seuraavat asiat:

    • Komento 1 muuttaa aktiivisen hakemiston kotihakemistoksi
    • Komento 2 tekee uuden C#-projektin, jonka pohja otetaan JyPeli tasohyppelypeliesimerkistä
    • Komento 3 siirtää komentorivin projektikansion sisälle
    • Komento 4 kääntää ja käynnistää pelin. Tuloksena pitäisi avautua pelattava tasohyppelypeli.

    Voit kokeilla peliä tai sulkea sen.

ComTest

ComTest on Riderin lisäosa, jonka avulla tällä opintojaksolla kirjoitetaan yksikkötestejä.

  1. Avaa JetBrains Rider ja odota, kunnes pääset Welcome to JetBrains Rider -näkymään
  2. Klikkaa ikkunan vasemmassa alalaidassa oleva ConfigurePlugins
  3. Valitse Marketplace-välilehti ja hae hakusanalla ComTest
  4. Valitse Comtest Runner -pluginin kohdalta Install
  5. Paina Save
  6. Sulje JetBrains Rider

Mitä seuraavaksi?

Onneksi olkoon! Asennettujen työkalujen käyttöä käydään läpi luennoilla sekä materiaalin luvussa 1.2 Ohjelmointiympäristö kuntoon. TODO: Lisää linkki.

Jos olet tutkinto-opiskelija, sinulla on oikeus hankkia JetBrains Student Pack, joka sisältää käyttöoikeuden kaikkiin JetBrains IDE-ohjelmiin. Tällä opintojaksolla Riderin Non-commercial license -lisenssi riittää, mutta erityisesti ohjelmoinnista kiinnostuneelle Student Packista voi olla hyötyä myöhemmissä opinnoissa.

Ongelmatilanteita ja niiden ratkaisuja

Alla on lueteltu joitain yleisimpiä ongelmatilanteita, joita asennuksen tai työkalujen käytön yhteydessä voi tulla vastaan. Jos löydät ongelman, jota ei ole listattu alla,

TODO: Lisää linkit.

  • tule pääteohjauksiin (ajat ja paikat löytyvät kotisivulta),
  • laita viestiä Teamsissa (Kysymyksiä ja apua -kanava) tai
  • laita viestiä opettajille: ohj1-opet@tim.jyu.fi.
Silk.NET.Core.Loader.SymbolLoadingException' occurred in Silk.NET.Core.dll: 'Native symbol not found (Symbol: glfwWindowHintString)

Yllä olevan virheviestin syynä on todennäköisimmin että sinulla ei ole GLFW asennettuna, tai se on liian vanha. Monen Linux-distron mukana tulee versio 3.2, mutta Jypeli vaatii vähintään version 3.3.

Asenna uusin GLFW-versio käyttämäsi paketinhallinnan avulla.

System.PlatformNotSupportedException: GLFW is not supported on this platform...

Voi olla että tietokoneellasi ei ole näytönohjaimen ajureita asennettuna. Mene Windowsin asetukset -> Päivitykset -> Valinnaiset (päivitä-nappulan alapuolella) -> Ajurit. Asenna sieltä jotenkin näyttöön liittyvä ajuri, esimerkiksi "Intel Display Driver"

Jos ajuria ei löydy ja käytät kannettavaa, todennäköisesti sinulla on integroitu näytöonohjain, jolloin ajuri voi löytyä prosessorin valmistajan (Intel tai AMD) sivulta. Hae ajurit Googlesta esimerkiksi hakusanalla Intel graphics driver tai AMD graphics driver prosessorin valmistajasta riippuen.

Seuraavista työkaluista voi olla hyötyä:

Rider pyytää asentamaan .NETia vaikka olen asentanut sen jo

Voi olla, että Rider ei löydä oikeaa .NET-versiota.

Kokeile seuraavaa:

  • Avaa Rider aloitusnäkymä (jos Rider on auki, laita se kiinni ja avaa uudelleen).

  • Avaa asetukset menemällä Configure (vasemmassa alalaidassa) → Settings

  • Mene kohtaan Build, Execution, DeploymentToolset and Build

  • Klikkaa kohdan .NET CLI executable path -kentän alasvetovalikkoa:

Jos alasvetovalikon listassa näkyy useampi vaihtoehto, kokeile valita jotain toista vaihtoehtoa kuin nykyinen arvo. Paina lopuksi Save ja kokeile luoda uusi solution. Jos virhe toistuu, kokeile jotain toista valintaa.

Rider on hidas tai antaa erilaisia oikeusvirheitä

Erityisesti Windows-laitteilla Rider tai C#-ohjelmien ajaminen voi olla hidasta haittaohjelmien torjuntaohjelman erityisen tiukkojen tarkistusääntöjen vuoksi.

Mikäli sinulla on käytössä Microsoft Defender, Rider yleensä kysyy, haluatko Riderin säätävän sen asetukset automaattisesti. Muiden tuotteiden tapauksessa asetukset tulee säätää itse.

Katso Riderin viralliset toimintaohjeet haittaohjelmien torjuntaohjelmien säätämiseksi.

Rider-lisenssin uudelleenaktivointi

Lisenssi täytyy mahdollisesti aika ajoin uudelleenaktivoida kohdasta Help -> Manage licenses -> Activate.

dotnet not found / command not found: dotnet

Katso .NET-asennusohjeet Työkalut-ohjeesta.

A fatal error occurred. The folder [/usr/share/dotnet/host/fxr] does not exist

Jos komentoriviltä tulee (Linux):

A fatal error occurred. The folder [/usr/share/dotnet/host/fxr] does not exist 

niin ks: https://stackoverflow.com/questions/73753672/a-fatal-error-occurred-the-folder-usr-share-dotnet-host-fxr-does-not-exist

Näppäinkomennot eivät toimi

Jotkin editorin näppäinoikotiet ei toimi sellaisenaan muilla kuin Yhdysvaltalaisilla näppäimistöillä. On siis tarpeen valita toimimattomille suosikkikomennoillesi uudet näppäinoikotiet asetuksista: File → Settings → Keymap → Editor actions.