Kemiantekniikan ohjelmointikurssi CHEM-A2600 (5 op)

Samankaltaiset tiedostot
Kemiantekniikan ohjelmointikurssi CHEM-A2600 (5 op)

Kemian tekniikan kandidaattiohjelman ohjelmointikurssi (5 op)

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

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

Ohjelmoinnin perusteet Y Python

C-ohjelmointikielen perusteet, osa 1

Ohjelmoinnin peruskurssi Y1

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

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

T harjoitustyö, kevät 2012

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmointi 1. Kumppanit

4. Lausekielinen ohjelmointi 4.1

Octave-opas. Mikä on Octave ja miksi? Asennus

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

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

OPETTAJA VERKOSSA: Koodaaminen

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

Tieto- ja viestintätekniikka. Internetistä toimiva työväline 1,5 osp (YV10TV2) (HUOM! Ei datanomeille)


T harjoitustehtävät, syksy 2011

Ohjelmoinnin peruskurssi Y1

CHEM-A1000 Korkeakouluopiskelijan ABC

ELM GROUP 04. Teemu Laakso Henrik Talarmo


PLA Mobiiliohjelmointi. Mika Saari

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

Korkealämpötilakemia

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

Korkealämpötilakemia

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

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen

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

Ohjelmoinnin peruskurssi Y1

OHJ-7400 Graafisen käyttöliittymän ohjelmointi 4/6op

Ohjelmoinnin perusteet Y Python

Visma Avendon asennusohje

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

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

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

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

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

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

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

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Aalto CHEM Kandidaattiseminaari (+ BTT/KEM/MTE seminaarit)

UCOT-Sovellusprojekti. Asennusohje

lizengo Asennusopas Windows: in kopioiminen

CHEM-A1000 Korkeakouluopiskelijan ABC

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

Tieto- ja viestintätekniikka. Internetistä toimiva työväline, 1 ov (YV10TV2) (HUOM! Ei datanomeille)

RUOTSI LC-5411 H02. PHYS-A3121 Termodynamiikka CS-A1111 PHYS-A3121 H02 H12 MS-A0105 H02. CS-A1111 *** Ohjelmoinnin peruskurssi. Luento H13 CS-A1111

MA/MÅ TI KE/ON TO PE/FR PHYS-A3121 H05 RUOTSI. Differentiaali- ja integraalilaskenta 1. (ENG1) Luento PHYS-A3121 H02 CSE-A1111 H14 H11

740150P Valmiustaitoja biokemisteille (2 op)

740150P Valmiustaitoja biokemisteille (2 op) Tuomo Glumoff Helmut Pospiech Jari Heikkinen Anne Mäkelä

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tentti kestää kolme tuntia.

Ohjelmoinnin perusteet Y Python

Ohjelmointi 1 / syksy /20: IDE

P e d a c o d e ohjelmointikoulutus verkossa

4. Lausekielinen ohjelmointi 4.1

ICT-info opiskelijoille

SAS-ohjelmiston perusteet 2010

Suoritustavat: Laboratoriotöitä 2.-3.periodi. Luennot 2h, Laboratorityöt 4h, itsenäinen työskentely 124 h. Yhteensä 130 h.

Ohjelmoinnin perusteet Y Python

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

Tentti erilaiset kysymystyypit

KTKO104 Tieto- ja viestintätekniikka. 2. Luento - Opetussuunnitelma 2014 Tiistai

Tilanne sekä MS-A0003/4* Matriisilaskenta 5 op

Tietorakenteet ja algoritmit

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

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi I Syksy Lausekielinen ohjelmointi I (5 op) Lausekielinen ohjelmointi I (5 op)

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

KTKO104 Tieto- ja viestintätekniikka. 2. Luento - Opetussuunnitelma ja TVT Tiistai

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tentti kestää kolme tuntia. Tehdään sähköisesti mikroluokkien Windows-koneilla.

TRUST SIGHT FIGHTER VIBRATION FEEDBACK & PREDATOR QZ 500

Microsoft Security Essentials (MSE) asennuspaketin lataaminen verkosta

Harjoitus 5 (viikko 41)

Digitalisoitu harjoitustehtävien ratkaisujen palautus sekä arviointi matematiikan ja tilastotieteen yliopisto-opinnoissa

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

13/20: Kierrätys kannattaa koodaamisessakin

Aalto CHEM Kandidaattiseminaari (+ BTT/KEM/MTE seminaarit)

Ohjelmoinnin perusteet Y Python

ICT-info opiskelijoille. Syksy 2017

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

Tieto- ja viestintätekniikan opinnot Jyväskylän yliopistossa

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

SCI- A0000: Tutustuminen Linuxiin, syksy 2015

Kieliversiointityökalu Java-ohjelmistoon. Ohje

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Johdatus ohjelmointiin

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi I Syksy Lausekielinen ohjelmointi I (5 op) Lausekielinen ohjelmointi I (5 op)

Valppaan asennus- ja käyttöohje

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

ICT-info opiskelijoille

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Ohjelmoinnin perusteet Y Python

Transkriptio:

Kemiantekniikan ohjelmointikurssi CHEM-A2600 (5 op) Antti Karttunen Kurssin aloitusluento 30.10.2017 Aloita avaamalla web-sivu: presemo.aalto.fi/a2600

Osa 1 Kurssin kuvaus 2

Kurssin yhteenveto Kurssi kestää kuusi viikkoa (periodi II) Yksi viikko = yksi kierros Jokaisella kierroksella on omat aiheensa ja niihin liittyviä ohjelmointitehtäviä Kurssin arviointi perustuu ohjelmointitehtäviin Ohjelmointitehtävät on toteutettu MyCoursesin Quiz-toiminnolla CodeRunner-niminen ohjelmisto tarkistaa tehtävät automaattisesti Kolme ohjattua harjoitusryhmää viikossa (yleensä ti, ke, to klo 13.00-15.00) Ilmoittautuminen harjoitusryhmiin MyCoursesissa Harjoitukset eivät ole pakollisia, mutta suositeltavia! Harjoitusten aikana kurssista ja tehtävistä voi keskustella opettajien kanssa Koska ohjelmointitehtävät voi tehdä millä tahansa tietokoneella ja tehtävien tarkastus on automatisoitu, kurssin voi halutessaan suorittaa etäopiskeluna Tarvittavien ohjelmointityökalujen asennus on ohjeistettu alla (Anaconda) 3

Kurssikalenteri Kierros Viikko Teema 1 44 Kurssin aloitusluento maanantaina 30.10. klo 13.15 (Ke2 / A304) 2 45 Funktiot, moduulit Ohjelmoinnin peruskäsitteitä ja Pythonin perusteet (tulkki, IDE). Tulostaminen, syötteen lukeminen Muuttujat, operaattorit ja kontrollirakenteet: if-elif-else, while, for 3 46 Tietorakenteet (listat, monikot, sanakirjat) 4 47 Numpy, Matplotlib, Polynomit 5 48 Tiedostojen käsittely, virheenkäsittely 6 49 Sovellukset, Scipy (+ olio-ohjelmointi lisämateriaalina) Kurssin yhteenvetoluento tiistaina 5.12. klo 10.15 (Ke2 / A304) 4

Ohjatut harjoitukset Kaikki harjoitukset järjestetään CHEM-rakennuksen tietokoneluokassa 3 (R018) Luokassa 16 tietokonetta. Oman läppärin käyttäminen myös sallittua! Ilmoittautuminen MyCoursesissa (voit varata paikan yhdestä ryhmästä viikossa) Jos tavoittelemasi harjoitusryhmä on täynnä, voit vielä yrittää mahtua mukaan luokkaan oman läppärin kanssa Ilmoittautuminen MyCoursesissa Jos ryhmällä on poikkeava aika, annan lisätietoja kuvauksessa Muista tallentaa valintasi 5

Arvostelu Kurssin arvostelu perustuu ohjelmointitehtäviin Uusi kierros alkaa aina maanantaisin ja tehtävät ovat avoinna viikon ajan Kannattaa tutustua tehtäviin jo ennen harjoituksia Jokainen kierros sisältää kahdentyyppisiä tehtäviä: A- ja B-tehtävät A-tehtävät ovat perustason tehtäviä B-tehtävät ovat hieman laajempia tehtäviä Kurssin arvosana muodostuu (suurin piirtein) seuraavasti: 1: vähintään 50% A-tehtävien pisteistä 3: vähintään 80% A-tehtävien pisteistä ja noin 50% B-tehtävien pisteistä 5: vähintään 90% A-tehtävien pisteistä ja noin 90% B-tehtävien pisteistä Koska kurssi on syksyllä 2017 kehitysvaiheessa, pisterajat saattavat joustaa alaspäin (ei ylöspäin) Jos suoritat tietotekniikan sivuaineen (20-25 op) ja haluat korvata tällä kurssilla Ohjelmoinnin peruskurssin Y1 (CSE-A1111), arvosanan tulee olla vähintään 3 Korvaavuusasioissa ole yhteydessä Anttiin niin sovitaan asia CSE-A1111-kurssin vastuuopettajan Kerttu Pollari-Malmin kanssa 6

Ajankäytöstä 5 op = 5 x 27 h = 135 h Kontaktiopetus (22 h): Aloitus- ja lopetusluento (2 x 2 h) 18 h ohjattuja tietokoneharjoituksia (6 x 3 h) Kurssin voi suorittaa myös verkko-opintoina ilman osallistumista kontaktiopetukseen Oma työskentely (113 h): Viikoittaiset harjoitustehtävät 60 h (6 x 10 h) Kurssin verkkomateriaaleihin perustuva omatoiminen opiskelu 53 h Kurssin läpäiseminen vaatii aktiivista omatoimista työskentelyä Ohjelmoimaan oppii vain ohjelmoimalla! Aloita ohjelmointitehtävien tekeminen aina ajoissa Ohjelmointitehtävien vaativuus ja kurssin vaatima ajankäyttö kasvaa loppua kohti Jos vauhti on liian kova (tai liian hidas), kertokaa toki minulle! Uuden kurssin vaativuustason kalibrointi vaatii pari läpivetoa 7

Ohjelmointitehtävistä Ohjelmointitehtävät palautetaan yksilösuorituksina Tehtävistä on mahdollista keskustella opettajien kanssa harjoitusryhmissä Jos tarvetta ilmenee, saatan perustaa jonkun keskustelualueen kurssia varten Tehtävistä saa keskustella myös kaverin kanssa Valmiita ratkaisuja ei saa jakaa (miksi veisit kaverilta oivaltamisen ilon?) CodeRunner-ohjelma tarkistaa ja pisteyttää ohjelmointitehtävien palautukset automaattisesti Kaikki palautukset tallentuvat tietokantaan Palautusten samankaltaisuuksia vertaillaan sekä automaattisesti että manuaalisesti jokaisella kierroksella Yksinkertaisissa tehtävissä ratkaisut ovat luonnollisesti usein samanlaisia Monimutkaisemmissa tehtävissä samankaltaisuuksia ei pitäisi esiintyä 8

Osa 2 Yleistä asiaa ohjelmoinnista ja kurssilla käytettävät työkalut 9

Ohjelmointitaitojen merkitys Tyypillinen uutinen 2017: yhä useammat työtehtävät tullaan automatisoimaan Ohjelmointitaito yhä tärkeämpää, mutta mediassa myös liioittelua Tekoäly 10

Ohjelmointi ja kemian tekniikka Kemian tekniikassa ohjelmoinnilla on merkittävä rooli. Esimerkkejä: Kemian teollisuuden prosessien ohjaus Prosessien simulointi (mallinnus): kemiallinen prosessi mallinnetaan ensin tietokoneella ja siirrytään vasta sitten kalliimpaan kokeelliseen työhön Erilaisten kemiallisten tietokantojen tehokas käyttö vaatii ohjelmointia: materiaali- ja kemikaalitietokannat, rakenne-ominaisuustietokannat Mittausdatan edistynyt käsittely vaatii usein ohjelmointia (tai ainakin se on huomattavasti tehokkaampaa ohjelmoimalla kuin käsityönä Excelillä) Keksitkö lisää esimerkkejä? Kemiallisissa tieteissä ohjelmoinnilla keskeinen rooli monilla osa-alueilla Laskennallinen kemia, mittausdatan käsittely, spektroskopia, tiedonlouhinta (data mining), koneoppiminen (machine learning), 11

Mitä ohjelmointi on? Ohjelmoinnissa luodaan tarkka toimintaohje, eli ohjelma Ohjelman käskyjen avulla tietokone suorittaa tarvittavan tehtävän Ohjelma täytyy kirjoittaa ohjelmointikielellä, joita on satoja Alkuaikoina ohjelmat kirjoitettiin keskusprosessorin konekielellä (esim. bittijonoina 011001 ) Nykyisin käytetään pääasiassa korkeamman tason lausekieliä (kuten Python, Java, C) Minkä ohjelmointikielen opettelen? Mikä tahansa moderni lausekieli on hyvä valinta Tärkeintä on oppia ohjelmoinnissa tarvittava ajattelutapa. Kuva: AJK/wordclouds.com Ajattelutavan opittuasi uusien ohjelmointikielten oppiminen on varsin helppoa 12

Python-ohjelmointikieli Tällä kurssilla käytetään Python-ohjelmointikieltä. Sen etuja ovat: Selkeä kielioppi (syntax). Pythonilla kirjoitettu ohjelma, koodi, on siis varsin luettavaa, ainakin jos hyviä ohjelmointikäytäntöjä on noudatettu Erittäin matala aloituskynnys. Aloittelijakin saa heti aikaan näkyviä tuloksia Python-tulkki itsessään on vapaa (free) ohjelmisto, eli sen lähdekoodi on kaikkien saatavilla. Tämän seurauksena sen voi hankkia ilmaiseksi ja kuka tahansa voi ehdottaa siihen parannuksia. Pythonille on saatavissa valtava määrä vapaita kirjastoja (library) joita voi hyödyntää omissa ohjelmissa Erittäin vahva ja aktiivinen yhteisö kehittää Pythonia koko ajan Python soveltuu sekä pieniin että suuriin ohjelmointiprojekteihin Pythonilla voi toteuttaa myös suurta laskentatehoa vaativia tieteellisiä ohjelmistoja, mutta tällöin raskas laskenta on parasta hoitaa erillisten tieteellisten kirjastojen avulla (NumPy / SciPy, hyödynnetään myös tällä kurssilla!) Python on ns. tulkattu kieli, eli tulkki (interpreter) muuntaa lausekielisen ohjelman ajon aikana konekielelle. Tulkatun kielen vastakohta on käännetty kieli (kuten C) 13

Anaconda Kurssilla hyödynnämme Anaconda-nimistä Python-jakelupakettia (distribution) Paketti on asennettuna kaikkiin CHEM-rakennuksen mikroluokkiin Jakelupaketti sisältää Python-tulkin ohjelmien ajamista varten Valtavan määrän kirjastoja joita voi hyödyntää omissa ohjelmissa Erityisen kattavan kirjastokokoelman tieteellistä ohjelmointia varten Graafisen Spyder-ohjelmointiympäristön, joka helpottaa ohjelmien luomista Anacondan perusversio on ilmainen: https://www.anaconda.com/download/ Saatavilla Windows-, Linux-, OSX-versiot. Paketin voi asentaa helposti omalle tietokoneelle Tällä kurssilla käytetään Pythonin versiota 3.6. Myös vanhempaa 2.X sarjaa käytetään paljon. 3.X- ja 2.X-versiot eivät ole täysin yhteensopivia Kannattaa ottaa 64-bittinen versio 14

Spyder-ohjelmointiympäristö (IDE) Aja ohjelma tästä (tai paina F5) Help: paina editorissa Ctrl+I funktion nimen päällä ja Spyder näyttää ohjeen Ohjelma kirjoitetaan editorissa Ohjelma pyörii konsolissa Voit myös kirjoittaa komentoja suoraan konsoliin Huom! Spyder käynnistyy aika hitaasti, joten odottele rauhassa (jopa minuutti) Kun ajat ohjelman, Spyder tallentaa sen ennen ajamista (nimi.py) Kannattaa tehdä kurssia varten hakemisto omalle verkkolevylle Kokoa jokaisen harjoituskerran materiaalit omaan alihakemistoonsa 15

Oppimateriaali MyCourses-sivulta löytyy kurssin Python-oppimateriaali Toteutettu MyCourses-kirjana (ks. kuva alla) Sisältää kaikki kurssilla käsiteltävät asiat Linkkejä lisämateriaaliin löytyy tämän esityksen lopusta Tämän kautta kirjan voi myös tallentaa PDF-muodossa (interaktiiviset tehtävät eivät tallennu) 16

Coderunner-tehtävät MyCourses Vastattuasi kaikkiin Quiz-sivun tehtäviin klikkaa alalaidasta Kopioi Spyderissä kirjoittamasi ja testaamasi koodi tähän ja klikkaa Check 1. kierroksen tehtävissä virheellisistä palautuksista ei tule miinusta. Tämä voi muuttua myöhemmin. 17

Tärkeitä Python-resursseja https://docs.python.org/3/ Pythonin virallinen dokumentaatio https://docs.python.org/3/tutorial/index.html (tutorial) https://docs.python.org/3/reference/index.html ( kielioppi ) https://www.tutorialspoint.com/python3/ Varsin selkeä tutoriaali Google Valtavan käyttäjämäärän ansiosta netti on täynnä koodikysymyksiä ja vastauksia niihin (esim. http://stackoverflow.com/) MUISTA! 1) Kommentoi aina kirjoittamasi koodi hyvin 2) Älä käytä muuttujien nimissä ääkkösiä (ä, ö, å) 18