/swd4tn032-TH_JJ

Ohjelmointi 1, kevät 2020 / Teemun ja Jukan ryhmät

Primary LanguageJava

Ohjelmointi 1, SWD4TN032, kevät 2021

Tervetuloa Haaga-Helian ohjelmointi 1 -opintojaksolle! Tämä GitHub-repositorio toimii toteutuksen tietovarastona.

Lähiopetus

Kurssin lähiopetus järjestetään maanantaisin ja keskiviikkoisin klo 8:00-10:45 Teamsissa.

Aikataulu

  PVM Aiheet ja linkit
Ma 18.1. Kurssin järjestelyt ja osallistumisen vahvistaminen
Eclipse-sovelluskehitin
Perustietotyypit

📝 Muistiinpanot
📁 Esimerkkikoodit (TH)

Lisämateriaali (Teams / monimuoto):
JavaEclipse.pdf, Perusteita.pdf, Viope.pdf
Ke 20.1. Ehtolauseet
📝 Muistiinpanot
📁 Esimerkkikoodit (TH)

Lisämateriaali (Teams / monimuoto):
Scanner.pdf, Valintarakenne.pdf
Ma Toistorakenteet
📝 Muistiinpanot
📁 Esimerkkikoodit (TH)

Lisämateriaali (Teams / monimuoto):
Toistorakenne.pdf
Ke Merkkijonot
📝 Muistiinpanot
📁 Esimerkkikoodit (TH)
Säännölliset lausekkeet (regex)

Lisämateriaali (Teams / monimuoto):
Merkkijonot.pdf
Ma Listat
📝 Muistiinpanot
📁 Esimerkkikoodit (TH)

Lisämateriaali (Ohjelmoinnin MOOC):
Listamuuttujan käyttö useamman arvon tallentamiseen
Ke Taulukot
📝 Muistiinpanot
📁 Esimerkkikoodit (TH)
Java Visualizer -työkalu

Lisämateriaali (Teams / monimuoto):
Taulukot.pdf
Ma Staattiset luokkametodit, parametrit ja paluuarvot
📝 Muistiinpanot
📁 Esimerkkikoodit (TH)

Lisämateriaali (Teams / monimuoto):
Metodit.pdf
Ke Ajan käsitteleminen Javassa
Ohjelman paketointi ja suorittaminen Eclipsen ulkopuolella
Komentoriviparametrit

📝 Muistiinpanot
📁 Esimerkkikoodit (TH)
Java API: LocalDate

Lisämateriaali (Teams / monimuoto):
Paivamaara.pdf
Ma Intensiiviviikko
Ke Intensiiviviikko
Ma Olio-ohjelmoinnin alkeet
Käsitteet luokka ja olio
Oliometodit ja -muuttujat
📝 Muistiinpanot
📁 Esimerkkikoodit (TH)

Lisämateriaali (Teams / monimuoto):
Luokka.pdf
Ke Olio-ohjelmointi jatkuu:
Luokkien yhteyssuhteet
Olioita listoilla ja listoja olioissa

📝 Esimerkin speksi (TH)
📁 Esimerkkikoodit (AddressBook, TH)

Lisämateriaali (Teams / monimuoto):
Yhteyssuhde.pdf
ListaLuokalla.pdf
Ma Olioiden vertailu ja järjestäminen
📝 Muistiinpanot
📁 Esimerkkikoodit (TH)
Ke Poikkeukset
📝 Muistiinpanot
📁 Esimerkkikoodit (TH)
📁 Esimerkkikoodit (AddressBook, TH)

Lisämateriaali (Teams / monimuoto):
Poikkeus.pdf
Ma Tekstitiedostojen lukeminen ja tallentaminen
📝 Muistiinpanot
📁 Weather data -esimerkki (TH)
📁 saatiedot.csv (© Ilmatieteen laitos)
📁 Muut esimerkkikoodit (TH)
Ke Ryhmäkohtaiset pikkuprojektit:
  • GMail-osoitekirja
  • Painonvartijat
  • Telegram-botti?
Ma Kokeeseen kertaus ja harjoituskoe
Harjoituskoe löytyy Viopesta. Harjoituskokeesta ei saa pisteitä eikä bonuspisteitä ja sen tekeminen on täysin vapaaehtoista.
Ke 17.3. Koe
  • Koe alkaa klo 9:00 ja päättyy klo 10:45
  • Koe tehdään Eclipsellä ja palautetaan Viopeen
  • Mukana saa olla kaksi A4-arkkia muistiinpanoja (kaksipuolisia)
  • Kokeen tehtävät arvioidaan manuaalisesti Viopen automaattisen tarkistuksen lisäksi

Kurssin sisältö

Tunneilla opetellaan ohjelmoinnin perusteita sekä hyviä ohjelmointikäytäntöjä ja käydään läpi esimerkkejä. Lisäksi opiskelijat ohjelmoivat tuntitehtäviä ja saavat niihin ohjausta. Kurssin suorittamiseksi sinun tulee palauttaa hyväksytysti automaattisesti arvioitavia harjoitustehtäviä Viope-järjestelmään sekä suorittaa kurssin lopuksi järjestettävä laitekoe.

Kehitys ohjelmistokehittäjänä

"The biggest mistake I see new programmers make is focusing on learning syntax instead of learning how to solve problems."

V. Anton Spraul

1. Think like a computer

  • Opimme ymmärtämään "miten tietokone" toimii ja mitkä ovat Javan peruspilarit
  • Osaamme tuottaa tietokoneen näkökulmasta järkeviä ratkaisuja

2. Think like a programmer

  • Opimme soveltamaan oppimaamme ja tuottamaan myös ihmisen näkökulmasta järkeviä ratkaisuja
  • Ymmärrettävyys, jatkokehitettävyys, ylläpidettävyys, testattavuus

3. Work like a programmer

  • Opimme hyödyntämään ammattimaisen ohjelmistokehittäjien työkaluja kuten versionhallintaa ja yksikkötestausta (näistä lisää Ohjelmointi 2:lla)

Kurssin arviointi

  1. Automaattisesti arvioitavat Viope-tehtävät (50% loppuarvosanasta)

    Tehtäviä saa tehdä pareittain, mutta molempien on osallistuttava aktiivisesti työskentelyyn ja palautettava ratkaisu Viopeen

    Vähintään 40% tehtävistä on oltava tehty kurssikokeeseen mennessä Arvostellaan asteikolla 0-5 (40% - 100% tehtävistä)

  2. Kurssikoe (50% loppuarvosanasta) Arvostellaan asteikolla 0-5

Kurssin työkalut

Java ja Eclipse IDE

Tarvitset Java-ohjelmien kehittämiseksi ja suorittamiseksi Java JDK:n (vähintään versio 8). Lähdekooditiedostojen editointiin ja ohjelmien suorittamiseen käytämme tällä kurssilla Eclipse-kehitysympäristöä, jonka voit ladata itsellesi täältä. Ole tarkkana ja valitse Eclipse IDE for Java EE Developers, kun asennusohjelma kysyy asennuksen tyyppiä.

Saat käyttää myös muita työkaluja, mutta niihin ei voida tarjota käyttötukea.

Viope

Harjoitustehtävien automaattinen arviointi, rekisteröidy Viopeen osoitteessa: https://vw4.viope.com/login?org=hh. Huomaa että rekisteröitymisosoitteessa on oltava parametri ?org=hh jotta pääset käsiksi Haaga-Helian kurssitarjontaan.

Tyypillisiä Viope-virhetilanteita ja niiden ratkaisuja on dokumentoitu tänne.

Teams

Tällä kurssilla käytetään pääasiassa Microsoftin Teams -palvelua. Teams on osoittautunut oivalliseksi tueksi itseopiskelussa ja se tarjoaa luontevamman kanavan kysyä ja keskustella kuin esimerkiksi Moodle. Jos jäät jumiin koodisi kanssa tai et ymmärrä materiaaleja tai tehtävänantoja, kysy rohkeasti vinkkejä Teamsissa. Todennäköisesti samaa ongelmaa pohtii kanssasi myös moni muu, joten lähetäthän sisältöä ja tehtävänantoja koskevat kysymykset yhteiselle kanavalle (eikä yksityisviestinä opettajalle).

Teamsissa voi myös esittää toivomuksia kurssin kehittämiseksi jo kurssin aikana niin yksityisviesteinä opettajalle kuin yhteisillä kanavilla. Tämä kurssi ei ole suinkaan valmis, vaan sitä kehitetään kurssin etenemisen mukaan.

Teams on saatavilla puhelimien sovelluskaupoista sekä työpöytäsovelluksena, tai voit käyttää sitä selaimen web-käyttöliittymässä ilman asennuksia. Kirjautuminen Teamsiin tapahtuu Haaga-Helian myy.haaga-helia.fi-tunnuksella.

GitHub

Kurssin tehtäväpohjien ja malliratkaisujen jakelussa hyödynnetään ohjelmistokehityksen alalla erittäin vakiintunutta Git-versionhallintaa ja GitHub-palvelua. Voit kloonata itsellesi kurssin projektin osoitteesta https://github.com/haagahelia/swd4tn032-TH_JJ. Kurssin edetessä projektiin lisätään uusia tiedostoja, jotka voit päivittää itsellesi Git:in avulla.

Gitin käytön opetteluun voit käyttää esimerkiksi Helsingin yliopiston erinomaista "Tietokone Työvälineenä"-kurssin Git-materiaalia: https://tkt-lapio.github.io/git/. Vaikka Git tuntuisi aluksi vaikealta tai ahdistavalta, sinun ei tarvitse opetella kaikkea kerralla, vaan tee vain sen verran mistä on sinulle välitöntä hyötyä.