Ohjelmoinnin peruskurssi Y1



Samankaltaiset tiedostot
Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Huom: Istukaa joka paikalle sali tulee täyteen!

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

Ohjelmoinnin peruskurssi Y1

Tietorakenteet ja algoritmit CSE- A1140 (5 op)

Ohjelmoinnin peruskurssi Y1

TIE Johdatus ohjelmointiin

T Ohjelmoinnin perusteet Y (Python)

Ohjelmoinnin peruskurssi Y1

T Ohjelmoinnin perusteet Y (Python) Opetusmoniste kevät 2010

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

Ohjelmointi 1. Kumppanit

Fysiikan opinnot Avoimen yliopiston opiskelijoille

Tietorakenteet ja algoritmit Y CSE- A1141 (5 op)

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmointi II. Erkki Pesonen Luennot ja harjoitukset. Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015

Tervetuloa jatkamaan DIGITAALI- TEKNIIKAN opiskelua! Digitaalitekniikka (piirit) Luku 0 Sivu 1 (8)

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

T Ohjelmoinnin perusteet Y (Python)

T harjoitustyö, kevät 2012

Tervetuloa opiskelemaan DIGITAALI- TEKNIIKKAA! Digitaalitekniikan matematiikka Luku 0 Sivu 1 (9)

Kurssin käytännön järjestelyt. Tuotantotalous 1 Joel Kauppi

Ohjelmoinnin peruskurssi Y1

Python-ohjelmointi Harjoitus 2

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Fysiikan opinnot Avoimen yliopiston opiskelijoille

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Weboodi. Katri Laaksonen Oppimisen IT

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

4. Lausekielinen ohjelmointi 4.1

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

Orientaatiotilaisuus Avoimen yliopiston opintoihin

Ohjelmoinnin perusteet Y Python

Johdatus Ohjelmointiin

T harjoitustehtävät, syksy 2011

Ohjelmoinnin perusteet Y Python

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

WebOodin opinto-opas ja ilmoittautuminen

Ohjelmoinnin peruskurssi Y1

Kurssin käytännön järjestelyt. Tuotantotalous 1 Tuomo Tanila

Lahden kaupunginkirjasto ASIAKASKOULUTUKSET

Ohjelmoinnin peruskurssi Y1

Tervetuloa kursseillemme! Kursseista tietoa myös verkkosivulla lastukirjastot.fi/ajankohtaista

17/20: Keittokirja IV

Mallilukujärjestys Teknistieteellinen kandidaattiohjelma Tietotekniikka, 2. vuosikurssi

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Kurssiesite Lausekielinen ohjelmointi Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Lahden kaupunginkirjasto ASIAKASKOULUTUKSET

Johdanto kurssiin ja ohjelmoijan työkaluihin


SAS-ohjelmiston perusteet 2010

Tähtitieteen käytännön menetelmiä Kevät 2009

ASIAKASKOULUTUKSET. Kurssiohjelma Syksy 2016

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Kurssin käytännön järjestelyt. Tuotantotalous 1 Tuomo Tanila

Kurssin käytännön järjestelyt. Tuotantotalous 1 Jukka Kurki

Kurssiesite. Rakentamisen tekniikat RAK-C3004. Syksy 2016, periodi I (+ II)

HISTORIAN OPPIAINE KEVÄTLUKUKAUSI Historian perusopinnot

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

Mallilukujärjestys 1. vuosi 2013

AIKUISKASVATUSTIETEEN PERUSOPINNOT SYKSYLLÄ 2017

Kurssiesite Lausekielinen ohjelmointi II Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

LC-8011 Työelämän venäjän perusteet 1. Aalto-yliopisto Kielikeskus Alexandra Belikova

ELEC-C7230 Tietoliikenteen siirtomenetelmät. Yleistä

Kemiantekniikan ohjelmointikurssi CHEM-A2600 (5 op)

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

Tietokoneen toiminta (Computer Organization I)

Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Luento 0: Kurssihallinto Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

ASIAKASKOULUTUKSET. Kurssiohjelma Syksy 2017

Teknillistieteellisen alan kieliopinnot

ELEC-C7230 Tietoliikenteen siirtomenetelmät

Tietokoneen toiminta (Computer Organization I)

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi Syksy Tavoitteet ja keinot. Lausekielinen ohjelmointi (10 op)

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Transkriptio:

Ohjelmoinnin peruskurssi Y1 CSE-A1111 7.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 1 / 24

Esittelyluento: luennon jälkeen Tiedät, miten tämä kurssi on järjestetty ja mitä sinun pitää tehdä, jotta saisit kurssin suoritetuksi. Tiedät, mitä tarkoitetaan ohjelmoinnilla. Osaat kirjoittaa yksinkertaisen tietokoneohjelman. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 2 / 24

Mihin teekkari / diplomi-insinööri tarvitsee ohjelmointia? Pienten laskentasovellusten kirjoittaminen. Mittauslaitteen tms. ohjaaminen. Ohjelmointitaidosta on apua myös matriisilaskenta- ja taulukkolaskentaohjelmia käytettäessä. Pienikin ohjelmointitaito auttaa valmiiden ohjelmien toiminnan opettelussa ja ymmärtämisessä. Työelämässä paljon tehtäviä niille, joilla on sekä jonkin insinöörialan tuntemus että hyvä ohjelmointitaito. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 3 / 24

Esimerkki harjoitustyöstä, jossa tarvitaan ohjelmointia Kurssi: ENE-58.129 Rakennusten energiatalous (aikaisemmalta vuodelta) Annettu: Tiedot rakennuksen koosta, rakenteesta, sijainnista, lämmitysjärjestelmästä, eri asioiden kustannuksista jne. Tehtävä (osa harjoitustyöstä): Hae optimaalinen yhdistelmä seuraaville viidelle parametrille 1. seinien eristyspaksuus 2. yläpohjan eristyspaksuus 3. ikkunoiden U-arvo 4. lämpöpumpun kompressorin nimellisteho 5. höyrystymislämpötila siten, että seinämien lämpöeristysten, ikkunoiden ja lämmöntuottojärjestelmän muodostaman investoinnin sekä rakennuksen lämmityskustannusten yhteensä muodostamat elinkaarikustannukset saavat minimiarvon tarkasteluaikana ja rakennus on energiatehokkuusluokassa A. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 4 / 24

Tämä kurssi Tavoitteena on oppia ohjelmoinnin perusasiat. Aikaisempi ohjelmointitaito ei ole tarpeen. Ohjelmointikielenä käytetään Pythonia. Kurssi keskittyy perusasioihin. Kurssin jälkeen voi jatkaa jollekin seuraavista kursseista: CSE-A1121 Ohjelmoinnin peruskurssi Y2 CSE-A1130 Tietotekniikka sovelluksissa CSE-A1141 Tietorakenteet ja algoritmit Y ELEC-A7100 C-ohjelmoinnin peruskurssi tai vaikka suorittaa ne kaikki. Halukkaat voivat tämän kurssin jälkeen suorittaa tietotekniikan sivuaineopinnot, johon kurssit CSE-A1121 ja CSE-A1141 kuuluvat. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 5 / 24

Yleistä Henkilökunta Luennoija Kerttu Pollari-Malmi, vastaanotot keskiviikkoisin klo 12:00 13:00 tietotekniikan talon huoneessa B209. 17 tuntiopettajaa. Tiedotus Kurssin kotisivu MyCourses-järjestelmässä (Huom! valitse syksyn kurssin sivu) Keskusteluryhmä Piazzassa https://piazza.com/aalto.fi/fall2015/csea1111/home. Mahdollisuus antaa palautetta luennoista ja harjoitustehtävistä Goblinissa. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 6 / 24

Ilmoittatuminen Ilmoittaudu kurssille WebOodilla. Ilmoittautuminen luennolle tai kurssille, ei harjoitusryhmiin. Kurssille ei voi ilmoittautua sähköpostitse. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 7 / 24

Opetusmuodot Luennot ma 12-14 ja ke 14-16 aluksi Aalto (A) -salissa, myöhemmin B-salissa. Ei luentoja 19. 21.10. Viimeinen luento 11.11. Harjoitukset, joissa opiskelijat ratkaisevat harjoitustehtäviä tietokoneella ja assistentit kiertävät neuvomassa. 17 ryhmää viikossa Tietotekniikan talon salissa T7, ajat kurssin MyCourses-sivulla. Osanotto ei ole pakollista eikä siitä saa lisäpisteitä. Tehtävät ovat pakollisia, mutta niitä voi palauttaa myös netin kautta. Oppimateriaali Opetusmoniste (MyCourses-sivulla) Perusteellisempaa materiaalia haluaville suositellaan Gaddis: Starting Out with Python, 2nd Ed tai 3rd Ed., Pearson. Lisäksi käytettävissä kalvot perusasioista. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 8 / 24

Pakolliset osasuoritukset Tentti Perustuu opetusmonisteeseen ja harjoitustehtäviin. Ensimmäinen mahdollisuus ti 1.12. klo 17:00 20:00. TENTTIIN ILMOITTAUTUMINEN ON PAKOLLISTA. Ilmoittautumisaika päättyy viikko ennen tenttiä. Harjoitustehtävät 9 kierrosta, joista 8 ensimmäistä pakollista. Palautetaan netin kautta automaattisille tarkastajalle (Goblin). Jos haluaa harjoitustehtävistä vähintään arvosanan 3, on myös viimeisestä kierroksesta saatava minimipisteet. Vapaaehtoiset lisätehtävät (Mastery Grids MG) Näiden avulla voit harjoitella lisää kurssin asioita. Jos tekee vähintään 15 MG-tehtävää, saa 200 lisäpistettä harjoitustehtäviin (vastaa noin yhden tavallisen ohjelmointitehtävän pisteitä). Kurssiarvosana on tenttiarvosanan ja harjoitusarvosanan keskiarvo, jos molemmat osasuoritukset on hyväksytty. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 9 / 24

Pakolliset osasuoritukset, jatkuu Millaisia harjoitustehtäviä kurssilla on? Pikkutehtäviä, joissa rakennetaan tehdään ohjelmaa valmiiksi annetuista osista tai katsotaan, mitä ohjelmaa ajettaessa tietokoneen sisällä tapahtuu. Varsinaisia ohjelmointitehtäviä Vapaaehtoiset tehtävät muistuttavat pikkutehtäviä, ja sisältävät lisäksi visailuja. Paikkausmahdollisuudet Rästitentit. Harjoitustehtävien rästikierros. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 10 / 24

Tarvittavat ATK-tunnukset Gobliniin kirjautumiseen tarvitaan Aalto-yliopiston Weblogin-tunnus. Jos et voi jostain syystä saada vielä tunnusta (esim. jatko-opiskelija, jonka jatko-opintohakemusta ei ole virallisesti vielä hyväksytty), lähetä sähköpostia luennoijalle Goblin-tunnuksen saamiseksi. Ensimmäisellä kerralla kannattaa luoda itselleen oma tunnus ja salasana Gobliniin. Näin Gobliniin pääsee myös silloin, jos Aalto-tunnuksella kirjautuminen ei onnistu. Kurssin keskusteluryhmään luodaan tunnus Aalto-sähköpostiosoitteen avulla. Jos et voi saada Aalto-sähköpostiosoitetta, lähetä sähköpostia luennoijalle, joka voi liittää sinut keskusteluryhmään jollain toisella sähköpostiosoitteella. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 11 / 24

Yhteistyö harjoitustehtävissä Tehtävien ratkaisuista saa keskustella muiden opiskelijoiden kanssa, mutta jokainen kirjoittaa oman koodinsa itse. Kaveria saa neuvoa, mutta valmista tai lähes valmista ratkaisua ei saa luovuttaa kaverille. Keskustelu tai neuvonta ei saa olla niin yksityiskohtaista, että molemmilla ohjelmissa täsmälleen samat käskyt samassa järjestyksessä. Opetusmonisteessa, luennoilla ja oppikirjassa esitettyä koodia saa käyttää apuna. Epäilyt harjoitustehtävien kopioinnista tai muusta vilpistä lähetetään Perustieteiden korkeakoulun opintoasian päällikön ja opintoasioista vastaavan varadekaanin tutkivattaksi. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 12 / 24

Arvio kurssin työmäärästä Kurssin laajuus on 5 op, joka vastaa noin 133 tuntia työtä. Sen on arvioitu jakautuvan seuraavasti: Luennot 36 tuntia (tai vastaava aika itseopiskeluun). Harjoitustehtävät 8 9 tuntia / krs. Tentti 20 tuntia (valmistautuminen ja osallistuminen). CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 13 / 24

Tutkimus Kurssilla kerätään harjoitustehtävien tekemisestä tietoa, jota käytetään tutkimustyöhön, jonka tavoitteena on kehittää entistä parempia työkaluja ja verkko-oppimisympäristöjä ohjelmoinnin opetukseen. Osa tutkimuksesta tehdään yhteistyössä University of Pittsburghin kanssa. Mitään opiskelijoiden henkilötietoja (ei myöskään esim. nimiä tai opiskelijanumeroita) ei välitetä Aalto-yliopiston ulkopuolelle. Jotta tutkimuksessa pystytään erottamaan, mikä on kurssilla opittua ja minkä opiskelija on osannut jo ennen kurssille tuloa, tehdään ensimmäisellä harjoitustehtäväkierroksella esitesti. Testin tekemisestä saa harjoitustehtäväpisteitä, joihin ei vaikuta mitenkään se, onko vastannut kysymyksiin oikein vai väärin. Älä säikähdä, vaikka et osaisi vastata testin kysymyksiin. Tarkoituksena on vain saada selville, kuinka paljon kurssilla opetettavia asioita kukin opiskelija tietää jo ennen kurssille tuloa. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 14 / 24

Tietokoneen perusosat Prosessori eli suoritin Keskusmuisti Syöttölaitteet Tulostuslaitteet Lisäksi ulkoista muistia, joka voi toimia sekä syöttö- että tulostuslaitteena. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 15 / 24

Mikä on tietokoneohjelma? Keittokirjan resepti 1. Vatkaa munat ja sokeri vaahdoksi. 2. Lisää jauhot ja sekoita. 3. Kaada vuokaan ja paista 20 minuuttia. Tietokoneohjelma 1. Pyydä rahasumma markkoina ja lue se. 2. Jaa luettu rahasumma 5.94573:lla. 3. Tulosta jakolaskun tulos kuvaruudulle. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 16 / 24

Erilaisia tapoja esittää ohjelma tietokoneelle Käskyt esitetään konekielellä (bittijonoina). Symbolinen konekieli Lausekieli, esim. Python, Java, C, C++, Scala, Pascal jne. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 17 / 24

Kääntäjä ja tulkki Tietokoneen prosessori ymmärtää vain konekielellä annettuja käskyjä. Jos tietokoneohjelma annetaan jossain muussa muodossa, pitää se muuttaa konekielelle. Muuttaminen voidaan tehdä toisella tietokoneohjelmalla, kääntäjällä tai tulkilla. Kääntäjä ottaa koko ohjelman, kääntää sen konekielelle ja tallentaa konekielisen ohjelman tiedostoon. Ohjelma voidaan ajaa tästä tiedostosta halutun määrän kertoja, eikä ohjelmaa tarvitse kääntää uudelleen. Tulkki ottaa käskyn kerrallaan, muuttaa sen konekielelle ja suorittaa käskyn heti. Sen jälkeen se siirtyy ohjelman seuraavaan käskyyn. Jos ohjelma halutaan suorittaa uudelleen, se pitää tulkata joka kerta uudelleen. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 18 / 24

Kolme eri tapaa kirjoittaa ja ajaa Python-ohjelmia Käynnistä Python-tulkki ja anna sille käsky kerrallaan. Kirjoita ohjelma tiedostoon ja aja se komentotulkissa käskyllä python3 tiedosto.py Käytä työkalua, jolla voi sekä kirjoittaa että ajaa Python-ohjelmia, tällä kurssilla Eclipse. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 19 / 24

Ensimmäinen Python-ohjelma print("hyvaa paivaa") CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 20 / 24

Muuttujat Muuttujia käytetään ohjelman käsittelemien arvojen tallentamiseen ja käsittelyyn. Muuttujalle voi antaa arvon sijoituskäskyllä, jota merkitään =:lla. nimi = "Matti" print("hei,", nimi) print("tervetuloa Python-kurssille!") Esimerkkiajo Hei, Matti Tervetuloa Python-kurssille! CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 21 / 24

Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea input-käskyllä. Käskyn sulkujen sisään kirjoitetaan käyttäjälle annettava kehote. Luetun arvon voi antaa arvoksi muuttujalle sijoituskäskyllä. nimi = input("kerro nimesi: ") print("hei,", nimi) print("tervetuloa Python-kurssille!") Ajoesimerkki Kerro nimesi: Minna Hei, Minna Tervetuloa Python-kurssille! CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 22 / 24

Lukuarvon lukeminen käyttäjältä Lukuarvojen lukeminen on vähän monimutkaisempaa, sillä input antaa aina luetun arvon tekstinä, merkkijonona. Jotta luettua arvoa voitaisiin käsitellä lukuna, se pitää ensin muuttaa kokonais- tai desimaaliluvuksi. Jos luettu merkkijono on muuttujan rivi arvona, saadaan sitä vastaava kokonaisluku muuttujan luku1 kokonaislukutyyppiseksi arvoksi seuraavasti: luku1 = int(rivi) Jos luettu merkkijono on muuttujan rivi arvona, saadaan sitä vastaava desimaaliluku muuttujan luku2 float-tyyppiseksi arvoksi seuraavasti: luku2 = float(rivi) CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 23 / 24

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. CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.9.2015 24 / 24