28
Ohjelmoinnin peruskurssi Y1 CS-A1111 11.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 1 / 27

Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Ohjelmoinnin peruskurssi Y1

CS-A1111

11.9.2017

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 1 / 27

Page 2: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Esittelyluento: luennon jalkeen

I Tiedat, miten tama kurssi on jarjestetty ja mita sinun pitaa tehda,jotta saisit kurssin suoritetuksi.

I Tiedat, mita tarkoitetaan ohjelmoinnilla.

I Osaat kirjoittaa yksinkertaisen tietokoneohjelman.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 2 / 27

Page 3: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Mihin teekkari / diplomi-insinoori tarvitsee ohjelmointia?

I Pienet laskentasovellukset

I Mittauslaitteen tms. ohjaaminen

I Matriisilaskenta- ja taulukkolaskentaohjelmia kayttaminen

I Valmiiden ohjelmien toiminnan opettelu ja ymmartaminen

I Tyoelamassa paljon tehtavia, joissa vaaditaan seka jonkininsinoorialan tuntemus etta hyva ohjelmointitaito.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 3 / 27

Page 4: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Mihin teekkari / diplomi-insinoori tarvitsee ohjelmointia?

I Pienet laskentasovellukset

I Mittauslaitteen tms. ohjaaminen

I Matriisilaskenta- ja taulukkolaskentaohjelmia kayttaminen

I Valmiiden ohjelmien toiminnan opettelu ja ymmartaminen

I Tyoelamassa paljon tehtavia, joissa vaaditaan seka jonkininsinoorialan tuntemus etta hyva ohjelmointitaito.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 3 / 27

Page 5: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Esimerkki harjoitustyosta, jossa tarvitaan ohjelmointia

I Kurssi: ENE-58.129 Rakennusten energiatalous (aikaisemmaltavuodelta)

I Annettu: Tiedot rakennuksen koosta, rakenteesta, sijainnista,lammitysjarjestelmasta, eri asioiden kustannuksista jne.

I Tehtava (osa harjoitustyosta): Hae optimaalinen yhdistelmaseuraaville viidelle parametrille

1. seinien eristyspaksuus2. ylapohjan eristyspaksuus3. ikkunoiden U-arvo4. lampopumpun kompressorin nimellisteho5. hoyrystymislampotila

siten, etta seinamien lampoeristysten, ikkunoiden jalammontuottojarjestelman muodostaman investoinnin sekarakennuksen lammityskustannusten yhteensa muodostamatelinkaarikustannukset saavat minimiarvon tarkasteluaikana jarakennus on energiatehokkuusluokassa A.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 4 / 27

Page 6: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Tama kurssi

I Oppimistavoitteena ohjelmoinnin perusasiat

I Ohjelmointikieli PythonI Mahdollisia jatkokursseja:

I CS-A1121 Ohjelmoinnin peruskurssi Y2I CS-A1130 Tietotekniikka sovelluksissaI CS-A1141 Tietorakenteet ja algoritmit YI ELEC-A7100 C-ohjelmoinnin peruskurssi

I Mahdollista suorittaa myos tietotekniikan sivuaine.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 5 / 27

Page 7: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Vaihtoehtona toinen ohjelmointikurssi

I Taman kurssin sijaan on mahdollisuus suorittaa SCI-koulun omilleopiskelijoille tarkoitettu kurssi CS-A1110 Ohjelmointi 1, joka onselvasti vaativampi.

I Jos haluaa kandidaatin tutkinnon suorittamisen jalkeen hakeatietotekniikan maisteriohjelmaan, niin vaatimuksena on Ohjelmointi1:n suoritus.

I Kandidaatin tutkintoon voi sisallyttaa molemmat kurssit CS-A1111Ohjelmoinnin peruskurssi Y1 ja CS-A1110 Ohjelmointi 1 (toinenmenee silloin vapaavalintaisiin opintoihin).

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 6 / 27

Page 8: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Yleista

I HenkilokuntaI Luennoija Kerttu Pollari-Malmi, vastaanotot keskiviikkoisin klo

12:00–13:00 tietotekniikan talon huoneessa A141.I 18 tuntiopettajaa.

I TiedotusI Kurssin kotisivu MyCourses-jarjestelmassaI Keskusteluryhma Piazzassa

https://piazza.com/aalto.fi/fall2017/csa1111

I Mahdollisuus antaa palautetta luennoista ja harjoitustehtavistaGoblinissa.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 7 / 27

Page 9: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Ilmoittatuminen

I Ilmoittaudu kurssille Oodissa.

I Ilmoittautuminen luennolle tai kurssille, ei harjoitusryhmiin.

I Kurssille ei voi ilmoittautua sahkopostitse.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 8 / 27

Page 10: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Opetusmuodot

I LuennotI ma 11.9. klo 12-14 ja sen jalkeen ke 14-16 ensimmaisella viikolla

Aalto-salissa, myohemmin B-salissa.I Ei luentoja 23.–27.10.I Viimeinen luento 15.11.I Luennoilla ei kasitella kaikkia asioita.

I Harjoitukset, joissa opiskelijat ratkaisevat harjoitustehtaviatietokoneella.

I 18 ryhmaa viikossa Tietotekniikan talon salissa T7.I Lasnaolo ei ole pakollista eika siita saa lisapisteita.I Lukiolaisille omat ryhmat lukioiden tiloissa (pakollinen osanotto).

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 9 / 27

Page 11: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Opetusmuodot jatkuu

I OppimateriaaliI Opetusmoniste (linkki MyCourses-sivulla)I Perusteellisempaa materiaalia haluaville suositellaan Gaddis: Starting

Out with Python, 2nd Ed tai 3rd Ed., Pearson.I Lisaksi kaytettavissa kalvot perusasioista.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 10 / 27

Page 12: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Pakolliset osasuoritukset

I TenttiI Perustuu opetusmonisteeseen ja harjoitustehtaviin.I Ensimmainen mahdollisuus pe 1.12. klo 9:00–12:00. (Huom aika!)I TENTTIIN ILMOITTAUTUMINEN ON PAKOLLISTA. Joulukuun

tenttiin ei kuitenkaan tarvitse ilmoittautua, jos ilmoittautunut kurssille.

I HarjoitustehtavatI 9 kierrosta, joista 8 ensimmaista pakollista.I Palautetaan netin kautta automaattisille tarkastajalle (Goblin).I Jos haluaa harjoitustehtavista vahintaan arvosanan 3, on myos

viimeisesta kierroksesta saatava minimipisteet.

I Vapaaehtoiset lisatehtavat (Mastery Grids – MG)I Naiden avulla voit harjoitella lisaa kurssin asioita 21.9. alkaen.

Mahdollisuus saada 200 lisapistetta harjoitustehtaviin.

I Kurssiarvosana on tenttiarvosanan ja harjoitusarvosanan keskiarvo, josmolemmat osasuoritukset on hyvaksytty.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 11 / 27

Page 13: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Pakolliset osasuoritukset, jatkuu

I PaikkausmahdollisuudetI Rastitentit.I Harjoitustehtavien rastikierros. (Vain kierrosten minimipisteiden

saavuttamiseen.)

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 12 / 27

Page 14: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

HUOMAA 1. HARJOITUSTEHTAVAKIERROKSESTA

I Aallon IT-palveluissa on katko 16.-17.9. viikonloppuna, mikahankaloittaa harjoitustehtavien tekemista viikonlopun aikana.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 13 / 27

Page 15: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Tarvittavat ATK-tunnukset

I Gobliniin kirjautumiseen tarvitaan Aalto-tunnus.

I Ensimmaisella kerralla kannattaa luoda itselleen oma tunnus jasalasana Gobliniin. Nain Gobliniin paasee myos silloin, josAalto-tunnuksella kirjautuminen ei onnistu.

I Kurssin keskusteluryhmaan luodaan tunnus Aalto-sahkopostiosoitteenavulla.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 14 / 27

Page 16: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Yhteistyo harjoitustehtavissa

I Tehtavien ratkaisuista saa keskustella muiden opiskelijoiden kanssa,mutta jokainen kirjoittaa oman koodinsa itse.

I Kaveria saa neuvoa, mutta valmista tai lahes valmista ratkaisua ei saaluovuttaa kaverille.

I Keskustelu tai neuvonta ei saa olla niin yksityiskohtaista, ettamolemmilla ohjelmissa tasmalleen samat kaskyt samassajarjestyksessa.

I Opetusmonisteessa, luennoilla ja oppikirjassa esitettya koodia saakayttaa apuna.

I Epailyt harjoitustehtavien kopioinnista tai muusta vilpista lahetetaanPerustieteiden korkeakoulun opintoasian paallikon ja opintoasioistavastaavan varadekaanin tutkivattaksi.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 15 / 27

Page 17: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Arvio kurssin tyomaarasta

I Kurssin laajuus on 5 op, joka vastaa noin 133 tuntia tyota. Sen onarvioitu jakautuvan seuraavasti:

I Luennot 20 tuntia (tai vastaava aika itseopiskeluun).I Opetusmonisteen itseopiskelu 33 tuntia.I Harjoitustehtavat keskimaarin 8–9 tuntia / krs, yhteensa 77 tuntia.I Tentti 3 tuntia.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 16 / 27

Page 18: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Tutkimus

I Kurssilla kerataan harjoitustehtavien tekemisesta tietoa, jotakaytetaan tutkimustyohon, jonka tavoitteena on kehittaa entistaparempia tyokaluja ja verkko-oppimisymparistoja ohjelmoinninopetukseen.

I Osa tutkimuksesta tehdaan yhteistyossa University of Pittsburghinkanssa.

I Mitaan opiskelijoiden henkilotietoja (ei myoskaan esim. nimia taiopiskelijanumeroita) ei valiteta Aalto-yliopiston ulkopuolelle.

I Jotta tutkimuksessa pystytaan erottamaan, mika on kurssilla opittuaja minka opiskelija on osannut jo ennen kurssille tuloa, tehdaanensimmaisella harjoitustehtavakierroksella esitesti.

I Testin tekemisesta saa harjoitustehtavapisteita, joihin ei vaikutamitenkaan se, onko vastannut kysymyksiin oikein vai vaarin.

I Ala saikahda, vaikka et osaisi vastata testin kysymyksiin.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 17 / 27

Page 19: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Tietokoneen perusosat

I Prosessori eli suoritin

I Keskusmuisti

I Syottolaitteet

I Tulostuslaitteet

I Lisaksi ulkoista muistia, joka voi toimia seka syotto- ettatulostuslaitteena.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 18 / 27

Page 20: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Mika on tietokoneohjelma?

Keittokirjan resepti

1. Vatkaa munat ja sokeri vaahdoksi.

2. Lisaa jauhot ja sekoita.

3. Kaada vuokaan ja paista 20 minuuttia.

Tietokoneohjelma

1. Pyyda rahasumma markkoina ja lue se.

2. Jaa luettu rahasumma 5.94573:lla.

3. Tulosta jakolaskun tulos kuvaruudulle.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 19 / 27

Page 21: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Erilaisia tapoja esittaa ohjelma tietokoneelle

I Kaskyt esitetaan konekielella (bittijonoina).

I Symbolinen konekieli

I Lausekieli, esim. Python, Java, C, C++, Scala, Pascal jne.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 20 / 27

Page 22: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Kaantaja ja tulkki

I Tietokoneen prosessori ymmartaa vain konekielella annettuja kaskyja.Muussa muodossa annettu ohjelma pitaa muuttaa konekielelle.

I Muuttaminen voidaan tehda toisella tietokoneohjelmalla, kaantajallatai tulkilla.

I Kaantaja ottaa koko ohjelman, kaantaa sen konekielelle ja tallentaakonekielisen ohjelman tiedostoon.

I Tulkki muuttaa kaskyn kerrallaan konekielelle ja suorittaa kaskyn heti.Sen jalkeen se siirtyy ohjelman seuraavaan kaskyyn.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 21 / 27

Page 23: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Kolme eri tapaa kirjoittaa ja ajaa Python-ohjelmia

I Kaynnista Python-tulkki ja anna sille kasky kerrallaan.

I Kirjoita ohjelma tiedostoon ja aja se komentotulkissa kaskyllapython3 tiedosto.py

I Kayta tyokalua, jolla voi seka kirjoittaa etta ajaa Python-ohjelmia,talla kurssilla Eclipse.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 22 / 27

Page 24: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Ensimmainen Python-ohjelma

print("Hyvaa paivaa")

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 23 / 27

Page 25: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Muuttujat

I Muuttujia kaytetaan ohjelman kasittelemien arvojen tallentamiseen jakasittelyyn.

I Muuttujalle voi antaa arvon sijoituskaskylla.

nimi = "Matti"

print("Hei,", nimi)

print("Tervetuloa Python-kurssille!")

Esimerkkiajo

Hei, Matti

Tervetuloa Python-kurssille!

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 24 / 27

Page 26: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Arvon pyytaminen kayttajalta

I Kayttajan antaman arvon voi lukea input-kaskylla.

I Kaskyn sulkujen sisaan kirjoitetaan kayttajalle annettava kehote.

I Luetun arvon voi antaa arvoksi muuttujalle sijoituskaskylla.

nimi = input("Kerro nimesi: ")

print("Hei,", nimi)

print("Tervetuloa Python-kurssille!")

Ajoesimerkki

Kerro nimesi: Minna

Hei, Minna

Tervetuloa Python-kurssille!

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 25 / 27

Page 27: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Lukuarvon lukeminen kayttajalta

I Kasky input antaa aina luetun arvon tekstina, merkkijonona.

I Jotta luettua arvoa voitaisiin kasitella lukuna, se pitaa ensin muuttaakokonais- tai desimaaliluvuksi.

I Jos luettu merkkijono on muuttujan rivi arvona, saadaan sitavastaava kokonaisluku muuttujan luku1 kokonaislukutyyppiseksiarvoksi seuraavasti:

luku1 = int(rivi)

I Vastaava desimaaliluku saadaan muuttujan luku2 float-tyyppiseksiarvoksi seuraavasti:

luku2 = float(rivi)

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 26 / 27

Page 28: Ohjelmoinnin peruskurssi Y1 - Aalto · 2017-09-11 · Vaihtoehtona toinen ohjelmointikurssi I T am an kurssin sijaan on mahdollisuus suorittaa SCI-koulun omille opiskelijoille tarkoitettu

Esimerkki: eurolaskuri

print("Muutan markat euroiksi.")

rivi = input("Anna rahasumma markkoina: ")

markat = float(rivi)

eurot = markat / 5.94573

print("Se on", eurot, "euroa.")

Esimerkkiajo

Muutan markat euroiksi.

Anna rahasumma markkoina: 543.50

Se on 91.4101380318 euroa.

CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2017 27 / 27