Tervetuloa! CS-C2110 Ohjelmointistudio 1: mediaohjelmointi Koittakaa löytää istumapaikka!
Aloitusluento CS-C2110 Ohjelmointistudio 1: mediaohjelmointi Syksy 2016 [Studio 1] Antti Tolppanen, Sanna Suoranta, Lauri Savioja
Tällä luennolla Mikä tämä kurssi on? Mitä kurssilla opitaan? Miksi kurssi kuuluu kandiopintoihini? Kuka kurssia vetää? Kuinka kurssia kehitetään? Kurssin suoritus Miten kurssilla opiskellaan? Mitä pitää tehdä, jotta kurssin saa suoritettua? Miten arvosanani määräytyy? Mistä saan apua? Millaisia tehtäviä kurssilla on?
Mikä on CE-C2110 Ohjelmointistudio 1: mediaohjelmointi Tutustutaan digitaaliseen mediaan ohjelmoinnin kautta Käytetään Scala-ohjelmointia ja syvennetään Ohjelmointi 1 - kurssin tietoja Tarkoitettu suoritettavaksi Ohjelmointi 1 -kurssin kanssa samanaikaisesti Kurssin jälkeen osaat kirjoittaa tietokoneohjelmia, jotka käsittelevät digitaalista mediaa (esim. kuvia tai ääntä) Opit ongelmanratkaisua ja ryhmässä toimimista Vain tietotekniikan ja informaatioverkostojen pääaineopiskelijoille
Studio 1:n rooli kandiopinnoissa Tietotekniikan pääaineessa on studio- tai projektikurssi joka lukukaudella Keskenään hyvin erilaisia, toisistaan riippumattomia kursseja Miksi? Valmistaudutaan työelämään. Osaamistavoitteita: oman työn organisointi vastuun ottaminen omasta oppimisesta ryhmätyöskentely ja ryhmän johtaminen kyky toimia monenlaisten ihmisten kanssa esiintyminen oman alan asiantuntijoille ongelmien tunnistaminen, määritteleminen ja ratkaiseminen
Studio 1:n rooli kandiopinnoissa Työelämässä DI joutuu määrittelemään itse omat ja ryhmänsä tavoitteet, työmenetelmät ja tulosten arviointiperusteet identifioimaan ongelmat ja hakemaan ratkaisumenetelmät, ilman että kyseisen ongelman ratkaisemiseen on juuri koulutettu myymään suunnitelmansa ja työnsä tulokset omassa työyhteisössä Tällä kurssilla harjoitellaan avoimien ongelmien avulla työelämässä vaadittavia taitoja Tehtävänannot eivät siis tarkasti määrittele, mitä pitäisi tehdä ylipäänsä, tai miten ja missä järjestyksessä ongelmaa ratkaistaan
Kurssin ihmiset Vastuuprofessori Lauri Savioja Vastuuopettaja Sanna Suoranta Pääassistentti Antti Tolppanen - Saa ottaa aina yhteyttä tehtäviin liittyen Tuntiassistentit Auttavat tehtävien kanssa Opiskelijat!
Kurssin kehitys Neljäs kerta kun kurssi järjestetään tässä muodossa Kurssipalautteen antaminen tärkeää! Uutena tänä vuonnaprojektityö Palautteen perusteellamm. opetussessiotliitetty tiiviimmin kurssilla tehtäviin töihin ja ryhmille nimitetty nimikkoassarit
Muistakaa antaa palautetta myös tänä vuonna!! Asiallinen ja rakentava palaute vie kurssia eteenpäin kohti parasta mahdollista Älähtäkää heti kun ongelmia ilmenee, niin asialle voidaan tehdä jotain vielä kurssin aikana
Kurssin suorittaminen Eli mitä syksyn aikana tehdään?
Kurssin ideologia lyhyesti Kurssilla ei tarjota perinteisiä luentoja tai oppimateriaaleja, joista voisi löytää oikeat vastaukset Rohkaistaan itsenäiseen tiedonhakuun ja ongelmanratkaisuun Ongelmanratkaisua harjoitellaan yhdessä OLO-sessioissa OLO = OngelmaLähtöinen Oppiminen / PBL = Problem Based Learning Ohjelmoimaan oppii ohjelmoimalla ja samalla tutustutaan digitaaliseen mediaan käytännössä Suuri vastuu on opiskelijalla itsellään.. tukea saa ja voi myös vaatia lisää
Kurssin osasuoritukset kootusti Kolme (3) ohjelmointitehtävät (pakollisia) kukin näistä arvostellaan asteikolla 0-5p, kaikista saatava hyväksytty arvosana Yhteensä siis 15p, skaalataan asteikolle 0-5 (keskiarvo) 7 OLO-sessiota (mukaan lukien tämä) viidestä viimeisestä voi saada 1p/kerta, yht 5p Projektityö (3 hengen ryhmissä, pakollinen) arvostellaan asteikolla 0-5, mutta 0 on hylätty, eikä oikeuta kurssin läpipääsyyn Kurssipalaute (pakollinen)
Lisä- ja sakkopisteet sekä Kurssin arvosana Lisäpisteitä voit saada mahdollisesti ohjelmointitehtävissälisäominaisuuksien toteuttamisesta (ohjelmointitehtävien pisteisiin) Tai jos tekee jonkun päräyttävän projektin (projektin pisteisiin) Sakkoja ansaitsee Vajavaiset tai väärässä formaatissa olevat palautukset Myöhästyneet palautukset Kurssiarvosana muodostuu kaavalla 0,4 x tehtävien keskiarvo + 0,5 x projektin arvosana + 0,1 x OLO-sessioiden läsnäolopisteet
Ohjelmointitehtävistä Koodia ei kirjoiteta ainoastaan tietokoneen tulkittavaksi vaan myös ihmisluettavaksi - tällä kurssilla ihminen tarkistaa ja arvostelee koodin Jokainen palauttaa OMAN itse tekemänsä ratkaisun (ongelmista voi toki keskustella kanssaopiskelijoiden kanssa) Käykää Paniikissa (C106) assarivastaanotolla näyttämässä koodianne Usein monta tapaa ratkaista sama ongelma Joka kierrokselta tulee sanallinen palaute, josta voi oppia Palautusten määräajat perjantaisin klo 18:00, palautuksia ei oteta enää vastaan seuraavan keskiviikon jälkeen Myöhästymissakko 1p alkavalta vuorokaudelta (jo siis perjantaina klo 18:01) Järkevistä tehtävänannon ylittävistä lisäominaisuuksista voi ansaita yhden (1) lisäpisteen per tehtävä
OLO-sessiot Tutustutaan johonkin tehtäväkierrokseen tai projektiin liittyvään aiheeseen 1. Ryhmät tutustuvat johonkin annettuun teemaan assarin läsnäollessa 2. Sovitaan työnjaosta tulevan viikon aikana 3. Tulosten esittely muille ryhmille seuraavassa sessiossa 4. Keskustelua ja kommentointia Opiskelijan vastuu korostuu opetetaan asioita toisilleen
OLO-sessiot (jatkoa) Työskentely tässä ryhmässä Myöhemmissä sessioissa jakaudutaan noin 9-12 hengen ryhmiin jotka käsittelevät aina yhtä aihetta (sekaryhmät tik- ja info!) Jokaisella ryhmällä oma assari Ryhmät samat koko syksyn ajan! 1 piste per osallistuminen seuraavista OLO-sessioista: maanantai-ryhmät: 26.9, 3.10, 17.10, 7.11, ja 21.11. keskiviikko-ryhmä: 28.9., 5.10., 20.10., 9.11. ja 23.11.
Projektityö Vapaavalintainen peli (tai hyötyohjelma) Toteutetaan kolmen (3) hengen ryhmissä Ryhmät muodostetaan oman luentoryhmän (eli tässä salissa olijoiden) kesken Ryhmät esittelevät omia ideoitaan muille näissä sessioissa Ryhmien rekisteröityminen MyCoursesissa auki Ryhmät muodostettu viimeistään viikolla 39 (kahden viikon päästä) Projektiin kuuluu palautettava suunnitelma, toteutus, projektista kertova loppuraportti sekä projektin demoaminen livenä Deadline JOKO joulu- tai tammikuussa valintanne mukaan
Apua suoritukseen Yleinen kaikkiin kohdistuva kurssi-informaatio MyCourses Apua ohjelmointitehtäviin Assarivastaanotot Paniikissa Slack https://studio1-2016.slack.com/signup Muut tilanteet Kurssin sähköpostiosoite: <- ENSISIJAINEN Tehtävät, antti.tolppanen@aalto.fi Oman ryhmän assistentti - yhteystiedotmycoursesissa
Omat tavoitteesi tällä kurssilla? Eri osa-alueilla? Saavutusten suhteen? Sosiaalisten vuorovaikutussuhteiden suhteen? Eri tasoilla? Abstraktittavoitteet (eli mitä)? Konkreettisettavoitteet (eli miten)?
Ohjelmointiharjoitukset hiukan tarkemmin
Kierros 1 Intro Toteutetaan yksinkertainen ristinolla-peli Tutustutaan ohjelmointiin ja opitaan satunnaisuutta DL perjantaina 7.10.2016 klo 18:00
Kierros 2 Ääni Laaditaan ohjelma, jonka avulla voidaan manipuloida äänidataa Ohjelmallisesti vaikein asia on silmukkarakenne Digitaalisen äänen ymmärtäminen helpottaa tehtävän suoritusta Ja sen ymmärtää viimeistään tehtävän jälkeen DL perjantaina 28.10.2016 klo 18:00
Kierros 3 Kuva Laaditaan ohjelma, jonka avulla voidaan käsitellä kuvia ohjelmallisesti sekä ladata ne internetin kuvapalveluun Kajotaan kuvien väreihin, kirkkauteen ja tarkkuuteen Ohjelmallisesti syvennetäänsisäkkäisten taulukoiden käsittelytaitoja Opit samalla käyttämään Scalan ulkopuolisia kirjastoja ja tutustut hieman web-teknologioihin Yksinkertaista matematiikkaa DL perjantaina 18.11.2016 klo 18:00
Projekti Opitaan ohjelmoimaan ryhmässä ja toteuttamaankokonainen projekti alusta loppuun Tutustutaan graafisten käyttöliittymien tekoon DL joko perjantaina 9.12.2016 klo 18:00 tai maanantaina 9.1.2017 klo 18:00 Suosittelemme tammikuuta, mutta jos lähdössä esimerkiksi armeijaan yms. voi palautuksen tehdä jo joulukuussa Aihe on vapaa mutta kurssihenkilökunnan tulee hyväksyä se Projektisuunnitelman DL pe 14.10.2016 klo 18:00
Projekti Esimerkkiaiheita: Sokoban, Tetris, Sudoku, Laivanupotus, Bejeweled, Bomberman, Pacman yms Vähimmäisvaatimukset: Graafinen käyttöliittymä joka reagoi käyttäjän toimiin Musiikkia/ääniefektejä (jotka voi mielellään kytkeä pois..) Pisteenlaskulogiikka TAI selkeästi etenevä juoni Vähintään 3 erilaista tasoa, vaikeusastetta, kenttää Olennaista on että peli pysyy mielenkiintoisena ensimmäisen minuutinkin jälkeen Peliohjeet nähtävissä pelaajalle (vaikea arvostella jos assari ei osaa pelata)
jatkoa Mahdollisen hyötyohjelman tavoitteista sovitaan erikseen Hyväksytty projektisuunnitelma Arvosteluperusteina mm. Tekninen toteutus Projektin järkevä arkkitehtuuri (näistä opitte myöhemmin) ja kommentointi Idea, visuaalinen ilme, äänimaailma Omaperäisyys Vaikka tekisi Tetriksen ei sen tarvitse olla tylsä. Teemana Länsimetron työmaa yms. Saa ja kannattaa olla luova! Raportti ja demo Lisää tietoa ensi viikolla
Tällä luennolla (n. 5 min ;) Mikä tämä kurssi on? Mitä kurssilla opitaan? Miksi kurssi kuuluu kandiopintoihini? Kuka kurssin mahdollistaa? Kuinka kurssia kehitetään? Kurssin suoritus Miten kurssilla opiskellaan? Mitä pitää tehdä, jotta kurssin saa suoritettua? Miten arvosanani määräytyy? Mistä saan apua? Millaisia tehtäviä kurssillaon?