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

Samankaltaiset tiedostot
Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

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

Ohjelmoinnin peruskurssi Y1

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

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

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

Ohjelmoinnin peruskurssi Y1

Kemiantekniikan ohjelmointikurssi CHEM-A2600 (5 op)

Ohjelmoinnin peruskurssi Y1

Ohjelmointi 1. Kumppanit

4. Lausekielinen ohjelmointi 4.1

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

Ohjelmoinnin peruskurssi Y1

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

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

T Ohjelmoinnin perusteet Y (Python)

TIE Johdatus ohjelmointiin

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

Kemiantekniikan ohjelmointikurssi CHEM-A2600 (5 op)

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

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

Kemian tekniikan kandidaattiohjelman ohjelmointikurssi (5 op)

Tietorakenteet ja algoritmit CSE- A1140 (5 op)

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


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

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

Kurssiesite Lausekielinen ohjelmointi I Kesä Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

Ohjelmoinnin perusteet Y Python

Python-ohjelmointi Harjoitus 2

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

T harjoitustyö, kevät 2012

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

T harjoitustehtävät, syksy 2011

Tärkeää huomioitavaa:


Ohjelmoinnin peruskurssi Y1

17/20: Keittokirja IV

Ohjelmoinnin peruskurssi Y1

Tietorakenteet ja algoritmit Y CSE- A1141 (5 op)

T Ohjelmoinnin perusteet Y (Python)

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Teknillisen fysiikan pääaineen tupsut / Mallilukujärjestys I periodi / viikot /

Johdatus Ohjelmointiin

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Johdanto kurssiin ja ohjelmoijan työkaluihin

Ohjelmoinnin perusteet Y Python

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

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

Tietokoneen toiminta (Computer Organization I)

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

Ohjelmoinnin perusteet Y Python

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta.

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

Ohjelmoinnin perusteet Y Python

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

- Ilmoittaudu OODI:n kautta ainakin luentojen kohdalle, jotta olet mukana opintotoimiston listoilla.

Ohjelmoinnin perusteet Y Python

A4.1 Projektityö, 5 ov.

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

Ohjelmoinnin perusteet Y Python

ENG3042.Kand Kandidaatintyö ja seminaari (10 op) ENY ENG3044.Kand Kandidaatintyö ja seminaari (10 op) RYM Saija Toivonen

Algoritmit 1. Luento 1 Ti Timo Männikkö

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

Tietokoneen toiminta (Computer Organization I)

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

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

Tieto- ja palvelujohtamisen erikoistumisalue opintojen suunnittelu

Ohjelmointi 1 / syksy /20: IDE

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

Harjoittelukurssien suorittamisinformaatio

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

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

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

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Ohjelmoinnin peruskurssi Y1

Sähköinen matematiikan ja ohjelmoinnin opintopolku alakoulusta yliopistoon. Mikko Lujasmaa, Salon lukio Mikko-Jussi Laakso, Turun yliopisto

213a. MS-A0503 Todennäköisyyslaskenna n ja tilastotieteen per; M (vkot 3-7)

Transkriptio:

Ohjelmoinnin peruskurssi Y1 Huom: Istukaa joka paikalle sali tulee täyteen! CS-A1111 9.9.2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 1 / 26

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. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 2 / 26

Mihin teekkari / diplomi-insinööri tarvitsee ohjelmointia? CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 3 / 26

Mihin teekkari / diplomi-insinööri tarvitsee ohjelmointia? Pienet laskentasovellukset Mittauslaitteen tms. ohjaaminen Matriisilaskenta- ja taulukkolaskentaohjelmia käyttäminen Valmiiden ohjelmien toiminnan opettelu ja ymmärtäminen Työelämässä paljon tehtäviä, joissa vaaditaan sekä jonkin insinöörialan tuntemus että hyvä ohjelmointitaito. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 3 / 26

Opiskelijoiden kommentteja kesätöiden jälkeen Opiskelija 1 (ENG): En ollut käytännössä koskaan aiemmin ohjelmoinut ennen Ohjelmoinnin peruskurssi Y1:stä. Kurssi yllätti minut positiivisesti ja sen ansiosta todella innostuin ohjelmoinnista. Näen sen luovana ongelmanratkaisuna, jossa työnsä jäljen näkee heti ja jossa voi aina kehittää olemassa olemia ohjelmia paremmiksi ja myös oppia aina uutta. Ohjelmointi on universaalina taito, joka myös ratkaisevasti kehittää loogista ajattelua ja ajatusten jäsentämistä. Y1 onnistuu opettamaan näitä taitoja palkitsevalla tavalla ja on ehdottomasti yksi parhaista käymistäni kursseista näiden parivuotisten yliopisto-opintojeni aikana. Sain kurssin ansiosta myös kesätöitä. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 4 / 26

Opiskelijoiden kommentteja kesätöiden jälkeen Opiskelija 2 (ELEC): Olin saanut muutamia ensikosketuksia ohjelmointiin ennen kun aloitin yliopiston, mutta suurin osa ensimmäisellä kurssilla esiin tulleista asioista oli kuitenkin uusia. Muita ohjelmointikursseja oli hyvä rakentaa perusasioiden päälle, joita Y1 opetti. Kaikilla ohjelmointikursseilla syntyneestä osaamisesta on ollut hyötyä niin muilla kursseilla kuin kesätöissä. On ollut myös hauska huomata, että ohjelmoinnissa kehittyvät myös ongelmanratkaisutaidot ja ihan toisenlainen ajattelu kuin esimerkiksi matematiikan ja fysiikan kursseilla. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 5 / 26

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. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 6 / 26

Tämä kurssi Oppimistavoitteena ohjelmoinnin perusasiat Ohjelmointikieli Python Mahdollisia jatkokursseja: CS-A1121 Ohjelmoinnin peruskurssi Y2 CS-A1130 Tietotekniikka sovelluksissa CS-A1141 Tietorakenteet ja algoritmit Y ELEC-A7100 C-ohjelmoinnin peruskurssi Mahdollista suorittaa myös tietotekniikan sivuaine. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 7 / 26

Vaihtoehtona toinen ohjelmointikurssi Tämän kurssin sijaan on mahdollisuus suorittaa selvästi vaativampi mutta erittäin antoisa kurssi CS-A1110 Ohjelmointi 1. Y1:llä pääpaino on pienten kokonaisten ohjelmien kirjoittamisessa, Ohjelmointi 1:llä taidoissa, joita tarvitaan suurten ohjelmien tekemisessä. Jos haluaa kandidaatin tutkinnon suorittamisen jälkeen hakea tietotekniikan maisteriohjelmaan, niin vaatimuksena on Ohjelmointi 1:n suoritus. Kandidaatin tutkintoon voi sisällyttää molemmat kurssit CS-A1111 Ohjelmoinnin peruskurssi Y1 ja CS-A1110 Ohjelmointi 1 (toinen menee silloin vapaavalintaisiin opintoihin). CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 8 / 26

Oletko ohjelmoinut aikaisemmin? Vastaa kyselyyn sivulla http://presemo.aalto.fi/y1s2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 9 / 26

Yleistä Henkilökunta Luennoija Sanna Suoranta Opetusmateriaalit laatinut Kerttu Pollari-Malmi noin 22 tuntiopettajaa Tiedotus Kurssin kotisivu MyCourses-järjestelmässä Keskusteluryhmä Piazzassa https://piazza.com/aalto.fi/fall2019/csa1111/home CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 10 / 26

Opetusmuodot lähiopetus Luennot ma 9.9. klo 12-14 ja sen jälkeen keskiviikkoisin 14-16 aluksi Aalto-salissa, noin 25.9. jälkeen salissa T1 Tietotekniikan talolla. Luennoilla ei käsitellä kaikkia asioita. Läsnäoloa ei valvota. Harjoitukset, joissa opiskelijat itse ratkaisevat harjoitustehtäviä tietokoneella. 18 ryhmää viikossa Tietotekniikan talon salissa T7 alkaen to 12.9. (ei tenttiviikolla) Lisäksi ylimääräisiä harjoitusryhmiä tuota ennen (katso ajat ja paikatmycoursesista) ohjelmointiympäristön asentamiseksi. Läsnäolo ei ole pakollista eikä siitä saa lisäpisteitä, mutta tarjolla on tuntiopettajien apua. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 11 / 26

Opetusmuodot jatkuu Oppimateriaali A+-järjestelmässä oleva oppimateriaali (linkki MyCourses-sivulla) Oppikirjaa kaipaaville suositellaan Gaddis: Starting Out with Python, 2nd Ed. tai uudempi, Pearson. Pythonin webbisivut: https://docs.python.org/3/ Lisäksi lisämateriaali (ks. MyCourses, alasivut Materiaalit) A+järjestelmän tämän kurssin sivu löytyy osoitteesta: https://plus.cs.aalto.fi/y1/2019s/ CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 12 / 26

Pakolliset osasuoritukset Tentti Ensimmäinen mahdollisuus ti 26.11. klo 17:00 20:00. Harjoitustehtävät Palautetaan A+-järjestelmässä automaattisille tarkistimille, joka antaa alustavat pisteet. 9 kierrosta, joista 8 ensimmäistä + esitietokysely pakollisia. Kullakin kierroksella on minimipistemäärä, joka on saavutettava. Jos haluaa harjoitustehtävistä vähintään arvosanan 3, on myös viimeisestä kierroksesta (eli kierroksesta 9) on saatava minimipisteet. Mahdollisuus antaa palautetta harjoitustehtävistä A+-järjestelmässä. Kurssiarvosana on tenttiarvosanan ja harjoitusarvosanan keskiarvo, jos molemmat osasuoritukset on hyväksytty. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 13 / 26

Pakolliset osasuoritukset, jatkuu Paikkausmahdollisuudet Rästitentit keväällä (Pakollinen ilmoittautuminen viimeistään viikko ennen tenttiä). Harjoitustehtävien rästikierros (vain kierrosten minimipisteiden saavuttamiseen). Kaikkia tehtäviä ei voi korvata rästikierrokset tekemällä. Tärkeä tieto rästikierroksesta Rästikierroksella voi saada vain vaaditut minimipisteet sellaisesta kierroksesta, josta ei ole saanut riittävästi pisteitä. Rästikierroksella ei voi korottaa hyväksyttyjen kierrosten pistemäärää. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 14 / 26

Tarvittavat ATK-tunnukset A+-järjestelmään kirjautumiseen tarvitaan Aalto-tunnus. Kurssin Piazza-keskusteluryhmään luodaan tunnus Aalto-sähköpostiosoitteen avulla. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 15 / 26

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ä. A+-materiaalissa, luennoilla ja oppikirjassa esitettyä koodia saa käyttää apuna. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 16 / 26

Arvio kurssin työmäärästä Kurssin laajuus on 5 op, joka vastaa noin 133 tuntia työtä. Keskimääräinen arvioitu työmäärä yhden kierroksen suorittamiseen on noin 12 14 tuntia: Kierroksen aihepiiriä käsittelevä luento 2 h Kierroksen materiaalin lukeminen 2 h Kierroksen tehtävien tekeminen 8 10 h Lisäksi Aloitusluento 2 h. Kertaus tenttiin 10 h. Tenttiin osallistuminen 3 h. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 17 / 26

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 Ruotsin kruunuina ja lue se. 2. Jaa luettu rahasumma 10.54:lla. 3. Tulosta kuvaruudulle jakolaskun tulos eli vastaava summa euroina. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 18 / 26

Erilaisia tapoja esittää ohjelma tietokoneelle Käskyt esitetään konekielellä (bittijonoina) Symbolisella konekielellä, esim. Assembly Lausekielellä, esim. Python, Java, C, C++, Scala, Pascal jne. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 19 / 26

Kääntäjä ja tulkki Tietokoneen prosessori ymmärtää vain konekielellä annettuja käskyjä. Muussa muodossa annettu ohjelma pitää 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. Tulkki muuttaa käskyn kerrallaan konekielelle ja suorittaa käskyn heti. Sen jälkeen se siirtyy ohjelman seuraavaan käskyyn. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 20 / 26

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 PyCharm (tai aiemmin kurssilla käytetty Eclipse). CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 21 / 26

Ensimmäinen Python-ohjelma print("hyvaa paivaa") CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 22 / 26

Muuttujat Muuttujia käytetään ohjelman käsittelemien arvojen tallentamiseen ja käsittelyyn. Muuttujalle voi antaa arvon sijoituskäskyllä. nimi = "Matti" print("hei,", nimi) print("tervetuloa Python-kurssille!") Esimerkkiajo Hei, Matti Tervetuloa Python-kurssille! CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 23 / 26

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! CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 24 / 26

Lukuarvon lukeminen käyttäjältä Käsky 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) Vastaava desimaaliluku saadaan muuttujan luku2 float-tyyppiseksi arvoksi seuraavasti: luku2 = float(rivi) CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 25 / 26

Esimerkki: eurolaskuri print("muutan Ruotsin kruunut euroiksi.") rivi = input("anna rahasumma kruunuina: ") kruunut = float(rivi) eurot = kruunut / 10.54 print("se on", eurot, "euroa.") Esimerkkiajo Muutan Ruotsin kruunut euroiksi. Anna rahasumma kruunuina: 543.50 Se on 51.56546489563568 euroa. CS-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2019 26 / 26