Tervetuloa Haaga-Helian ohjelmointi 1 -opintojaksolle!
Kurssin opettajana toimii Teemu Havulinna (etunimi.sukunimi@haaga-helia.fi). Kurssi järjestetään etätyösuosituksen mukaisesti etäopetuksena.
Tämä GitHub-repositorio toimii toteutuksen swd4tn032-3009 kotisivuna, materiaalipankkina sekä lähdekoodien jakelukanavana.
Kurssin opetus järjestetään lukujärjestyksen mukaisesti 1. periodilla maanantaisin klo 8-10:45 ja keskiviikkoisin klo 9-11:45 MS Teamsissa. Osa oppitunneista tallennetaan myös myöhempää katselua varten. Lisäksi käytettävissänne on tallenteita aikaisemmilta ohjelmointikursseilta sekä tekstimuotoiset muistiinpanot kultakin oppitunnilta.
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ä koe. Koe sisältää harjoitustehtävien kaltaisia ohjelmointitehtäviä ja se tehdään tietokoneella.
"The biggest mistake I see new programmers make is focusing on learning syntax instead of learning how to solve problems."
Tällä kurssilla opetellaan Java-kielen syntaksia, mutta erityisesti pyrimme opettelemaan ohjelmistokehityksen kannalta hyödyllisiä ajatusmalleja ja ongelmanratkaisutapoja. Ajatusmallit ja ongelmanratkaisukyky ovat myöhemmin sovellettavissa eri ohjelmointikielillä ja eri tyyppisissä sovelluksissa.
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 kehitysympäristöä, versionhallintaa ja yksikkötestausta (opettelu jatkuu Ohjelmointi 2:lla)
-
Automaattisesti arvioitavat Viope-tehtävät (50 % loppuarvosanasta)
-
tehtäviä saa tehdä pareittain, mutta molempien on osallistuttava aktiivisesti työskentelyyn ja palautettava oma ratkaisu Viopeen
-
vähintään 40 % tehtävistä on oltava tehty kurssikokeeseen mennessä
-
arvostellaan asteikolla 0-5 (40 % - 100 % tehtävistä)
-
Viopessa on tarjolla myös syventäviä ja kertaavia bonustehtäviä, joiden tekeminen kasvattaa pistekertymään, mutta joiden tekemättä jättäminen ei laske arvosanaa
-
kaikkien Viope-tehtävien DL on ke 14.10. klo 9 (kurssikokeen alku)
-
-
Kurssikoe (50 % loppuarvosanasta)
-
sisältää harjoitustehtävien kaltaisia ohjelmointitehtäviä
-
arvostellaan asteikolla 0-5
-
package arviointi;
import static arviointi.OsasuoritustenArviointi.*;
public class KurssinArviointi {
// tehtävien ja kokeen maksimipisteet lukitaan kurssin aikana:
private static int viopeMaksimi = 58; // bonukset huomioiden maksimi on 73
private static int kokeenMaksimi = 25;
public static int laskeLoppuarvosana(int tehtavienPisteet, int kokeenPisteet) {
double viopeArvosana = laskeArvosana(tehtavienPisteet, viopeMaksimi);
double kokeenArvosana = laskeArvosana(kokeenPisteet, kokeenMaksimi);
if (viopeArvosana > 0 && kokeenArvosana > 0) {
double keskiarvo = (viopeArvosana + kokeenArvosana) / 2;
return (int) Math.round(keskiarvo);
} else {
return 0;
}
}
}
package arviointi;
public class OsasuoritustenArviointi {
public static double laskeArvosana(int omatPisteet, int maksimiPisteet) {
// hyväksyttyyn arvosanaan vaaditaan 40 % pisteistä
double minimiPisteet = maksimiPisteet * 0.4;
if (omatPisteet < minimiPisteet) {
return 0;
} else {
// minimipisteillä saa arvosanan 1, maksimipisteillä arvosanan 5
double arvosana = 1 + 4 * (omatPisteet - minimiPisteet) / (maksimiPisteet - minimiPisteet);
// arvosana voi olla korkeintaan 5 bonuspisteet huomioiden
return Math.min(5, arvosana);
}
}
}
Java ja Eclipse IDE
Tarvitset Java-ohjelmien kehittämiseksi ja suorittamiseksi Java JDK:n (vähintään versio 9). 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 versio Eclipse IDE for Enterprise Java Developers.
Saat käyttää myös muita työkaluja, mutta niihin ei voida tarjota käyttötukea.
Viope
Kurssin harjoitustehtävien tehtävänannot löytyvät Viope-järjestelmästä, jonne tehtävät myös palautetaan, ja joka tarkistaa tehtävät automaattisesti.
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. Rekisteröityessäsi valitse tämä toteutus swd4tn032-3009 ☀️
.
Teknisistä syistä johtuen Viopeen palautettavista lähdekoodeista täytyy aina poistaa mahdolliset package -lauseet luokan yläpuolelta. Viope on myös muilla tavoin erittäin tarkka ohjelmien oikeellisuudesta, mikä saattaa aiheuttaa ensimmäisillä viikoilla hämmennystä. Tyypillisiä Viope-virhetilanteita ja niiden ratkaisuja on dokumentoitu erilliselle wiki-sivulle, jota päivitetään kurssin edetessä.
Teams
Tällä kurssilla käytetään viestintään ja oppitunteihin Microsoftin Teams -palvelua. Jos jäät jumiin koodisi kanssa tai et ymmärrä materiaaleja tai tehtävänantoja, kysy rohkeasti vinkkejä Teamsissa oppitunnin aikana ja käytä Teamsin chattia oppituntien ulkopuolella. Todennäköisesti samaa ongelmaa pohtii kanssasi myös moni muu, joten kysymykset ovat erittäin tervetulleita.
Teamsissa voi myös esittää toivomuksia kurssin kehittämiseksi jo kurssin aikana yksityisviesteinä opettajalle tai yhteisillä kanavilla. Tämä kurssi ei ole "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.
- Teams Quick Start -ohje (pdf)
- Web-käyttöliittymä: https://teams.microsoft.com/
- Lataussivu: https://teams.microsoft.com/downloads
GitHub
Kurssin tehtäväpohjien ja malliratkaisujen jakelussa hyödynnetään ohjelmistokehityksen alalla erittäin vakiintunutta Git-versionhallintaa ja GitHub-palvelua. Voit kloonata itsellesi tämän projektin repositorion ylälaidassa olevien painikkeiden avulla. Kurssin edetessä projektiin lisätään uusia tiedostoja, jotka voit myös 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ä. Voit hyvin suorittaa tämän kurssin myös perehtymättä erikseen Gittiin.