|
|
| (4 välissä olevaa versiota 4 käyttäjän tekeminä ei näytetä) |
| Rivi 3: |
Rivi 3: |
| '''Perusopintoja on mahdollista suorittaa myös avoimessa yliopistossa. | | '''Perusopintoja on mahdollista suorittaa myös avoimessa yliopistossa. |
|
| |
|
| <strong style="color:red;font-size:1rem">Monet kurssien kuvauksista ovat edelleen vanhan opetussuunnitelman (2020-2023) mukaisia. Toisaalta monet kurssit ovat myös pysyneet hyvin samanlaisina, vaikka nimi olisikin muuttunut uudessa opetussuunnitelmassa (2023-2026).</strong> | | <strong style="color:red;font-size:1rem">Monet kurssien kuvauksista ovat edelleen vanhan opetussuunnitelman (2020-2023) tai (2023-2026) mukaisia. Toisaalta monet kurssit ovat myös pysyneet hyvin samanlaisina, vaikka nimi olisikin muuttunut uudessa opetussuunnitelmassa (2026-2030).</strong> |
|
| |
|
| === Tietokone ja Internet (5 op) === | | === Tietokone ja Internet (5 op) === |
| Rivi 41: |
Rivi 41: |
|
| |
|
| <del>'''Älä käy tiraa fuksisyksynä! Suorita ensin JYM.'''</del> Katso myös [[Fuksisyksyn_mallilukujärjestys]]. | | <del>'''Älä käy tiraa fuksisyksynä! Suorita ensin JYM.'''</del> Katso myös [[Fuksisyksyn_mallilukujärjestys]]. |
|
| |
| <div style="border: 1px solid red; padding: 10px; margin: 10px;">
| |
| <strong style="color:red;font-size:1rem">Vanha opetussuunitelma (2020-2023):</strong>
| |
| === Johdatus tietojenkäsittelytieteeseen (5 op) ja Englanti (4 op) ===
| |
| {{hatnote|Tunnetaan myös nimellä JTKT}}
| |
|
| |
| Kurssin tarkoitus on johdatella uudet oppilaat (“fuksit”) tietojenkäsittelytieteen ihmeelliseen maailmaan. Kurssin toteutus elää vuosittain opiskelijapalautteen myötä, mutta suuri osa toteutuksesta tulee olemaan pienryhmässä kirjoitettuja, lyhyitä, viikottaisia esseitä TKT:hen liittyvistä aiheista. Lisäksi samoista aiheista pidetään pieniä esitelmiä, ja opponoidaan muiden vastaavia.
| |
| Bonuksena kurssin fuksitoteutukseen on sisäänleivottu 4 op:ta (eli TKT kanditutkintoon vaadittavat) englannin opintoja, jotka ilmenevät muutaman englanninkielisenä esseenä ja esityksenä. Englannin opinnot suositellaan lämpimästi suoritettavaksi JTKT:n ohessa.
| |
| HUOM! JTKT-toteutetaan useimmista muista kursseista poiketen kahdessa jaksossa!
| |
|
| |
| === Tietokoneen toiminta (5 op) ===
| |
| {{hatnote|Tunnetaan myös nimellä TiTo}}
| |
|
| |
| Tämä kurssi on perusopinnoista haastavin, mutta ei mitenkään mahdoton! Muihin perusopintoihin poiketen, kurssin luennot ovat tärkeä osa kurssia, joskaan eivät siltikään pakollisia. Olennaista on oppia nopeasti rytmiin, jossa jokin tietokoneen asiakokonaisuus käydään läpi luennolla, sitä opiskellaan viikkotehtäviä (‘laskareita’) tehdessä, ja lopulta kerrataan minikokeeseen. Kun luennolla heprealta kuulostava, vaikea asia on läpikäyty kolmeen kertaan, huomaat kokeeseen tullessasi yhtäkkiä ymmärtäväsi ja osaavasi käyttää konekieltä kuin luennoitsija itse!
| |
|
| |
| Kurssilla opitaan perusteet siitä, mitä tietokoneen sisällä oikeasti tapahtuu, eli tutustutaan mm. prosessorin toimintoihin, yhden ohjelman suoritukseen koneessa ja opetellaan hiukan symbolista konekieltä. Tällä konekielellä tosin ei ole kovinkaan paljon tekemistä "oikeiden assemblerien" (Masm, Nasm, Fasm) kanssa vaan kurssilla käytetään laitoksen omaan opetuskäyttöön väsättyä TTK91-assemblyä ja Titokone-simulaattoria. Pääpaino on kuitenkin enemmän teorian ymmärtämisessä. Kurssin sisältö jakaa opiskelijoita ehkä selvimmin kahteen leiriin: niihin jotka hehkuttavat ja niihin jotka vihaavat yli kaiken.
| |
|
| |
| Laskuharjoituksiin tulee varata kohtuullisesti aikaa, sillä vastaukset harvemmin löytyvät suoraan lähdekirjallisuudesta. Ne on itse löydettävä soveltamalla opittua asiaa. TTK91-symbolinen konekieli vaikuttanee hieman kankealta, mutta ajaa tehtävänsä. Moni on ihmetellyt, miksei opetuskielenä käytetä jotain oikeaa assemblyä. Vastaus on melko yksinkertainen: Kurssilla on tarkoitus oppia tietokoneen toimintaa eikä nykyisten assemblerien ominaisuuksia makroineen ja muine asioineen, joilla toimintaan liittyvät yksityiskohdat voisi sivuuttaa. Tietokoneen toimintaankin kurssi on loppujen lopuksi melko pintaraapaisu, josta voi jatkaa syventävään Tietokoneen Rakenne-kurssiin.
| |
|
| |
| Kurssi on siitä erikoinen, että kurssin loppukokeen voi korvata neljällä kurssin aikana tehtävällä minikokeella.
| |
|
| |
| P.S.
| |
| Kurssista liikkuu jäärien keskuudessa paljon meemejä, mutta parasta on jättää ennakkohype väliin ja mennä kurssille avoimin mielin.
| |
| </div>
| |
|
| |
|
| == Pakolliset Aineopinnot == | | == Pakolliset Aineopinnot == |
| Rivi 79: |
Rivi 55: |
| === Tietokannat ja web-ohjelmointi (5 op) === | | === Tietokannat ja web-ohjelmointi (5 op) === |
|
| |
|
| Kurssilla tehdään vapaavalintainen web sovellus joka käytää pientä SQL-tietokantaa apuna. Projekti on melko itsenäinen ja periodin pituisen kurssin aikan on vain muutama välipalautus joissa palautusten kriteerit nousevat kurssin edetessä. Näin saadaan kurssin mittaan tasainen eteneminen. Kurssissa materiaali jossa opastetaan HTML ja SQL perusteet. Ennakkotietona tälle kurssille on hyvä olla kurssi 'Tietokantojen perusteet' käytynä. | | Kurssilla tehdään Pythonin Flaskillä vapaavalintainen web sovellus joka käytää pientä SQL-tietokantaa apuna. Projekti on melko itsenäinen ja periodin pituisen kurssin aikan on vain muutama välipalautus joissa palautusten kriteerit nousevat kurssin edetessä. Näin saadaan kurssin mittaan tasainen eteneminen. Kurssissa materiaali jossa opastetaan HTML ja SQL perusteet. Ennakkotietona tälle kurssille on hyvä olla kurssi 'Tietokantojen perusteet' käytynä. |
|
| |
|
| '''Huom''' Voit myös ilmoittaa kurssin vetäjälle, että haluat tehdä kurssin omassa aikataulussasi. Tällöin palautat vain lopullisen sovelluksen kun se on valmis. Tässä toteutuksessa välipalautuksia ei pisteytetä ja arvosana tulee täysin lopullisen palautuksen perusteella. | | '''Huom''' Voit myös ilmoittaa kurssin vetäjälle, että haluat tehdä kurssin omassa aikataulussasi. Tällöin palautat vain lopullisen sovelluksen kun se on valmis. Tässä toteutuksessa välipalautuksia ei pisteytetä ja arvosana tulee täysin lopullisen palautuksen perusteella. |
| Rivi 94: |
Rivi 70: |
| Tira:ssa voi pärjätä aika hyvin ilman JYM:ä, mutta Lama:ssa ei. On ehdottomasti suositeltu, että olet käynyt vähintään JYM:n ennen Lamaa. | | Tira:ssa voi pärjätä aika hyvin ilman JYM:ä, mutta Lama:ssa ei. On ehdottomasti suositeltu, että olet käynyt vähintään JYM:n ennen Lamaa. |
|
| |
|
| === Tietojenkäsittely ja yhteiskunta (5 op) === | | === Tietojenkäsittely ja yhteiskunta (2 op + 3 op) + 4 op englanti lähikurssin osana === |
| | Tietojenkäsittely ja yhteiskunta koostuu 2 op perusteista ja 3 op jatkokurssista. Jatkokurssia järjestetään lähiopetuksena syksyisin ja verkkokurssina keväällä. |
| | |
| | Perusteet ja jatkokurssi on suunniteltu suoritettavaksi rinnakkain siten, että ensimmäisessä periodissa suoritetaan perusteet MOOC ja ensimmäisessa ja toisessa periodissa suoritetaan jatkokurssin lähiosuus. Syksyn lähikurssiin osallistumalla on mahdollista suorittaa tutkintoon pakollisena kuuluvan vieraan kielen englannin opinnot 4 op. Englannin opinnot sisältyvät kurssin työmäärään, jolloin lähisuorituksesta saa bonuksena 4 op. |
|
| |
|
| === Ohjelmistotuotanto (5 op) === | | === Ohjelmistotuotanto (5 op) === |
| Rivi 119: |
Rivi 98: |
|
| |
|
| === Ohjelmistoprojekti (10 op) === | | === Ohjelmistoprojekti (10 op) === |
| {{hatnote|Tunnetaan myös nimellä Ohtuprojekti}} | | {{hatnote|Tunnetaan virheellisesti nimellä ohtuprojekti. Ohtuun sisältyy oma projektinsa.}} |
|
| |
|
| Kurssin esitietovaatimuksena on suoritettu Ohjelmistotuotanto-kurssi sekä kaksi aineopintojen harjoitustyötä (kts. alla). | | Kurssin esitietovaatimuksena on suoritettu Ohjelmistotuotanto-kurssi sekä yksi aineopintojen harjoitustyö (kts. alla). |
|
| |
|
| Ohjelmistotuotantoprojektissa harjoitellaan projektin toteuttamista jotakuinkin reaalimaailmaa vastaavin menetelmin. Projekti toteutetaan 5-6 hengen ryhmässä. Projektilla on siis ihkaoikea asiakas (yleensä laitokselta, yliopistolta tai jostain yrityksestä), joka asettaa vaatimukset tuotteelle. Näihin vaatimuksiin ryhmän pitäisi sitten pystyä ohjelmistollaan vastaamaan mahdollisimman hyvin. Projektin aiheeseen ei voi vaikuttaa, mutta haluamastaan ryhmästä voi esittää toiveen. Aihe voi olla periaatteessa mikä tahansa. Ei ole ollenkaan tavatonta, että ensitöikseen joutuu opettelemaan uuden ohjelmointikielen.
| | Ohjelmistoprojektissa harjoitellaan projektin toteuttamista jotakuinkin reaalimaailmaa vastaavin menetelmin. Projekti toteutetaan 5-6 hengen ryhmässä. Projektilla on siis ihkaoikea asiakas (yleensä laitokselta, yliopistolta tai jostain yrityksestä), joka asettaa vaatimukset tuotteelle. Näihin vaatimuksiin ryhmän pitäisi sitten pystyä ohjelmistollaan vastaamaan mahdollisimman hyvin. Projektin aiheeseen ei voi vaikuttaa, mutta haluamastaan ryhmästä voi esittää toiveen. Aihe voi olla periaatteessa mikä tahansa. Ei ole ollenkaan tavatonta, että ensitöikseen joutuu opettelemaan uuden ohjelmointikielen. |
|
| |
|
| Kurssin päätyttyä tuotteeseen ei sisälly ylläpitovastuuta. Useat projektit menevät keskeneräisenä tuleville osanottajille jatkokehitykseen, mutta osa on päätynyt oikeaan tuotantoonkin. Kurssin perimmäinen tarkoitus on kuitenkin harjoitella prosessia enemmän kuin itse projektin toteuttamista. Ei kannata liikaa stressata, että tuotteen tulisi olla valmis kurssin päättyessä. Ohjelmoimaankin pääsee varmasti tarpeeksi, ja ohessa mahdolliset uudet työkalutkin tulevat väkipakostakin tutuksi. | | Kurssin päätyttyä tuotteeseen ei sisälly ylläpitovastuuta. Useat projektit menevät keskeneräisenä tuleville osanottajille jatkokehitykseen, mutta osa on päätynyt oikeaan tuotantoonkin. Kurssin perimmäinen tarkoitus on kuitenkin harjoitella prosessia enemmän kuin itse projektin toteuttamista. Ei kannata liikaa stressata, että tuotteen tulisi olla valmis kurssin päättyessä. Ohjelmoimaankin pääsee varmasti tarpeeksi, ja ohessa mahdolliset uudet työkalutkin tulevat väkipakostakin tutuksi. |
| Rivi 157: |
Rivi 136: |
|
| |
|
| Osaston tarjotessa niukasti kesäopiskelumahdollisuuksia on kandin kirjoittaminen kesällä laiturin nokassa houkutteleva vaihtoehto. Virallisesti tätä mahdollisuutta ei ole tarjottu, mutta omatoiminen opiskelija voi kirjoittaa tutkielman kesällä ja tehdä esitelmän ym. pakolliset osat syksyn kurssilla. Kannattaa harkita jo kevään luennoilla käyntiä, jos tämä vaihtoehto kiinnostaa.. | | Osaston tarjotessa niukasti kesäopiskelumahdollisuuksia on kandin kirjoittaminen kesällä laiturin nokassa houkutteleva vaihtoehto. Virallisesti tätä mahdollisuutta ei ole tarjottu, mutta omatoiminen opiskelija voi kirjoittaa tutkielman kesällä ja tehdä esitelmän ym. pakolliset osat syksyn kurssilla. Kannattaa harkita jo kevään luennoilla käyntiä, jos tämä vaihtoehto kiinnostaa.. |
|
| |
| <div style="border: 1px solid red; padding: 10px; margin: 10px;">
| |
| <strong style="color:red;font-size:1rem">Vanha opetussuunitelma (2020-2023):</strong>
| |
|
| |
| === Tietoliikenteen perusteet (5 op) ===
| |
| {{hatnote|Tunnetaan myös nimellä Tilpe}}
| |
|
| |
| Kurssilla paneudutaan internetin peruskäsitteistöön ja -tekniikoihin. Kurssi etenee opettelemalla TCP/IP-pinoa taso tasolta. Tutuksi tulee siis pääpiirteittäin kaikki WWW-selaimen sielunelämästä aina verkkokortin bittitasolle asti. Kurssi antaa hyvät perustiedot tietoliikenteestä, jotka ovat tarpeen kaikkien eri linjojen opiskelijoille.
| |
|
| |
| Kurssin sisältö on huomattavan laaja ja yksityiskohtainen opintopistemäärään nähden. Opiskelu perustuu paljolti TCP/IP-pinon kerrosten ja mekanismien toiminnan ulkoa opettelemiseen (esim. TCP-ruuhkanhallintamekanismit). Kokeessa ongelmaksi saattaa koitua hahmottaa, millä tasolla, ja kuinka yleinen vastaus kysymykseen halutaan (kokeessa saatetaan esimerkiksi kysyä, mitä tapahtuu kun opiskelija klikkaa linkkiä selaimellaan). Mikäli kurssilla vastaantuleva lyhenteiden ja käsitteistön määrä alkaa hirvittää, kurssilla käytettävä kurssikirja on mitä mainion apu pelonlievitykseen. Varoitettakoon, että asian ja detaljien suuresta määrästä johtuen kurssista on melko vaikea saada täyttä arvosanaa.
| |
|
| |
| === Käyttöjärjestelmät (5 op)===
| |
| {{hatnote|Tunnetaan myös nimellä Käjä}}
| |
|
| |
| Kurssin voi käsittää siltana Tietokoneen toiminta -kurssin ja Ohjelmoinnin perusteet -kurssin välillä. Käsiteltävät asiat sisältävät käyttöjärjestelmien rakenteen ja toimintaperiaatteet, rinnakkaisuuden toteutuksia ja ongelmia, muistinhallintaa ja virtuaalimuistia, prosessorin vuoronantoa jne.
| |
|
| |
| Samoin kuin TiTossa, Käjänkin tentin voi suorittaa neljällä minitentillä kurssin aikana.
| |
| </div>
| |
|
| |
|
| == Aineopintojen harjoitustöiden valintakori == | | == Aineopintojen harjoitustöiden valintakori == |
| Rivi 200: |
Rivi 161: |
|
| |
|
| Harjoitustyössä ei lähtökohtaisesti ohjelmoida mitään, vaan enemminkin määritellään jokin tutkimusongelma johon etsitään itse vastaus. Perusratkaisu on analysoida jonkinlaista verkkoliikennettä. Muunkinlaisia projekteja on kuitenkin hyväksytty. | | Harjoitustyössä ei lähtökohtaisesti ohjelmoida mitään, vaan enemminkin määritellään jokin tutkimusongelma johon etsitään itse vastaus. Perusratkaisu on analysoida jonkinlaista verkkoliikennettä. Muunkinlaisia projekteja on kuitenkin hyväksytty. |
|
| |
| <div style="border: 1px solid red; padding: 10px; margin: 10px;">
| |
| <strong style="color:red;font-size:1rem">Vanha opetussuunitelma (2020-2023):</strong>
| |
|
| |
| === Tietokantasovellus (4 op) ===
| |
| {{hatnote|Tunnetaan myös nimellä Tsoha tai Tsohalabra}}
| |
|
| |
| Kurssi on käytännössä pienen SQL-relaatiotietokantaa käyttävän WWW-sovelluksen laatimista (esim. yksinkertainen verkkokauppa). Tämän harjoitustyön keskeinen teema on tietokantojen hallintaan liittyvät asiat sekä myös huolelliseen suunnitteluun keskittyminen. Kurssi on monen webbikoodariksi aikovan mielestä erittäin hyödyllinen ja palkitseva. Jos tunnistit itsesi, kannattaa varoa ettei innostu liikaa ja tee vahingossa muutaman tuhannen rivin harjoitustyötä.
| |
|
| |
| Opiskelijasta voi kurssilla kirjoitettavan dokumentaation määrä turhauttavalta ja suuri houkutus onkin tehdä dokumentit vasta viimeisenä iltana. Dokumenttien tarkoitus on kuitenkin opastaa opiskelijaa oikeaan suuntaan suunnittelessaan omaa sovellustaan. Harjoitustyön ohjaajaa saa käyttää surutta apuna sekä ohjelmiston suunnittelun ongelmien että dokumenttien laatimisen kanssa.
| |
|
| |
| Itse toteutuksen tekeminen onkin sitten vähemmän työlästä, jos suunnittelu on kunnolla tehty. WWW-sivustolle tulevan rakennelmansa saa toteuttaa varsin monella tavalla ja tietokannoissakin on valinnan varaa. Suurin osa tekee harjoitustyönsä joko PHP:llä, Javalla, tai Ruby on Railssillä, mutta jos intoa (tai aiempaa osaamista) löytyy jonkin eksoottisemman ympäristön käyttämiseen, niin sekin on usein kelvannut ohjaajalle.
| |
| </div>
| |
|
| |
|
| == Aineopintojen valinnaiset kurssit == | | == Aineopintojen valinnaiset kurssit == |
| Rivi 251: |
Rivi 199: |
| * TKT210281 Elements of AI: Building AI - Intermediate 1 op | | * TKT210281 Elements of AI: Building AI - Intermediate 1 op |
| * TKT210282 Elements of AI: Building AI - Advanced 1 op | | * TKT210282 Elements of AI: Building AI - Advanced 1 op |
|
| |
| <div style="border: 1px solid red; padding: 10px; margin: 10px;">
| |
| <strong style="color:red;font-size:1rem">Vanha opetussuunitelma (2020-2023):</strong>
| |
|
| |
| ===Cyber security with F-Secure (5 op)===
| |
| {{hatnote|Tunnetaan myös nimellä Titu}}
| |
|
| |
| Suoritetaan verkkokurssina, jolla käsitellään kyberturvallisuutta, operatiivista tietoturvaa, turvallisen web-ohjelmiston kehitystä, web-ohjelmistojen tyypillisiä haavoittuvuuksia ja niiden korjaamista sekä vastatoimia.
| |
|
| |
| === C-ohjelmointi (5 op) [Deprekoitu] ===
| |
| {{hatnote|Tunnetaan myös nimellä C}}
| |
|
| |
| C on aineopintojen valinnainen kurssi, joka on tarkoitettu ohjelmoinnin perusasiat osaaville ja perustietorakenteet tunteville. Ensin kannattaa siis suorittaa suosiolla ensimmäisen vuoden ohjelmointikurssit harjoitustöineen sekä Tietorakenteet. Javalla ohjelmoineille kielen syntaksin omaksuminen on helppoa, mutta pelkän ulkoisen samannäköisyyden ei kannata antaa pettää itseään. C on käsitemaailmaltaan ja rakenteiltaan varsin erilainen kieli kuin Java ja sitä myös käytetään hieman erilaisiin tarkoituksiin. C:llä tehdään mm. koneenläheisiä, suurta tehoa vaativia, usein tekstipohjaisia työkaluohjelmia. Javalla taas on mukavampi rakennella sekä ohjelmoijan että käyttäjän kannalta turvallisia sovelluksia, usein graafisia sellaisia - mikäli nopeus ei ole kriittisin tekijä.
| |
|
| |
| Muistiosoittimien ja muistinhallinnan kanssa pelaaminen, joka Javassa on automaattista, voi osoittautua hankalaksi omaksua. Myöskään linkitettyjen listojen ohjelmointi, johon perehdytään varsin tarkkaan, ei tule vastaan ohjelmoinnin perus- ja jatkokurssilla. Kurssilla opetetaan nykyään myös puiden ja verkkojen (tietorakenteita nämäkin) käsittelyä, tosin vähemmällä tarkastelulla kuin esim. Tietorakenteet-kurssilla. Tämä kurssi tuo varsin mukavaa vaihtelua ensimmäisen syksyn Java-annostukseen varsinkin, jos olet ohjelmoinut C:llä aikaisemmin.
| |
| </div>
| |
|
| |
|
| ===Programming for Performance (5 op)=== | | ===Programming for Performance (5 op)=== |