T-106.5800 Ohjelmistotekniikan seminaari Scala-lukupiiri, kevät 2013 Teemu Sirkiä teemu.sirkia@aalto.fi 31.1.2013
Kenelle tämä lukupiiri on suunnattu? Scalasta kiinnostuneille Erityisesti heille, joita kiinnostaa toimia syksyllä uuden Scalalla pidettävän ohjelmoinnin peruskurssin assistentteina hakuaika päättyy 3. helmikuuta, lisähakuja tulossa keväällä (?) hakuilmoitus: tori.tyopaikat lisätietoja Juha Sorvalta
Esitietovaatimukset Scalasta ei tarvitse tietää mitään, mutta hyvä aiempi ohjelmointitaito ja -kokemus on hyödyksi, jotta uusia asioita on helpompi omaksua Ohjelmoinnin peruskurssit on siis syytä olla suoritettuna, mutta muita virallisia esitietovaatimuksia ei ole
Lukupiirin tavoitteita Scalan syntaksi ja funktionaalinen ohjelmointi tutuksi Scalaan liittyvät perusteet ja käsitteet hyvin hallussa Miten asioita kannattaa katsoa aloittelijan näkökulmasta Keskustelua kielen piirteistä ja niiden hyödyllisyydestä esimerkiksi muihin kieliin verrattuna yms. Tarkoitus ei ole kuitenkaan käydä koko kieltä ja sen kirjastoja yksityiskohtaisesti läpi!
Kirja Odersky, Spoon & Venners: Programming in Scala, 2. painos Kirjassa käytetään versiota 2.8, tällä hetkellä uusin versio on 2.10 Sähköinen ja paperinen versio olemassa
Käytännön järjestelyt Viikoittaiset tapaamiset: torstaisin n. kahden tunnin tapaaminen klo 14-18. Mikä olisi sopivin aika? torstaisin klo 14:15 16:00 torstaisin klo 15:00 17:00 torstaisin klo 16:15 18:00 jokin muu n. kahden tunnin aika ko. aikavälillä? Tarvitaanko kaksi erillistä ryhmää?
Käytännön järjestelyt Lukupiiristä saa 2-5 opintopistettä Mikäli haluaa saada yli 2 op, niin seuraavista kustakin yksi opintopiste lisää: lyhyt esitys jostakin kirjan luvusta kyseisen kerran alussa loppuraportti pienehkö koodausprojekti lopuksi Arvostellaan hyväksytty/hylätty Mikäli osallistuu vain lukupiiriin (lukee kirjan ja käy viikottaisissa tapaamissa), kurssin suoritusmerkintä tulee todennäköisesti jollakin toisella kurssikoodilla.
Aikataulu 1 A Scalable Language 19 Type Parameterization X 7.2.2013 14.2.2013 21.2.2013 28.2.2013 14.3.2013 2 First Steps in Scala 3 Next Steps in Scala 4 Classes and Objects 5 Basic Types and Operations 6 Functional Objects 7 Built-in Control Structures 8 Functions and Closures X 9 Control Abstraction X 10 Composition and Inheritance X 11 Scala's Hierarchy 12 Traits X 13 Packages and Imports 14 Assertions and Unit Testing 15 Case Classes and Pattern Matching X 16 Working with Lists X 17 Collections X 18 Stateful Objects X 21.3.2013 28.3.2013 4.4.2013 11.4.2013 18.4.2013 25.4.2013 20 Abstract Members X 21 Implicit Conversions and Parameters X 22 Implementing Lists 23 For Expressions Revisited X 24 The Scala Collections API X 25 The Architecture of Scala Collections X 26 Extractors X 27 Annotations 28 Working with XML X 29 Modular Programming Using Objects X 30 Object Equality 31 Combining Scala and Java X 32 Actors and Concurrency X 33 Combinator Parsing X 34 GUI Programming X 35 The SCells Spreadsheet Ruksilla merkityistä aiheista on mahdollista pitää n. 10-15 minuutin esitys kyseisen kerran alussa.
Esitys kirjan luvusta Yhteenveto sisällöstä ja tärkeimmistä asioista, kesto noin 10 15 minuuttia. Toimii alustuksena aiheelle. Miten ominaisuus X toimii mielestäsi Scalassa paremmin kuin kielen Y ominaisuus Z? Kuinka hyödyllisenä pidät ominaisuutta X? Onko se juuri se, mikä puuttuu kielestä Y, vai lähinnä koriste? Mitä asian opettamisessa pitäisi mielestäsi huomioida?
Aikataulu 1 A Scalable Language 19 Type Parameterization X 7.2.2013 14.2.2013 21.2.2013 28.2.2013 14.3.2013 2 First Steps in Scala 3 Next Steps in Scala 4 Classes and Objects 5 Basic Types and Operations 6 Functional Objects 7 Built-in Control Structures 8 Functions and Closures X 9 Control Abstraction X 10 Composition and Inheritance X 11 Scala's Hierarchy 12 Traits X 13 Packages and Imports 14 Assertions and Unit Testing 15 Case Classes and Pattern Matching X 16 Working with Lists X 17 Collections X 18 Stateful Objects X 21.3.2013 28.3.2013 4.4.2013 11.4.2013 18.4.2013 25.4.2013 20 Abstract Members X 21 Implicit Conversions and Parameters X 22 Implementing Lists 23 For Expressions Revisited X 24 The Scala Collections API X 25 The Architecture of Scala Collections X 26 Extractors X 27 Annotations 28 Working with XML X 29 Modular Programming Using Objects X 30 Object Equality 31 Combining Scala and Java X 32 Actors and Concurrency X 33 Combinator Parsing X 34 GUI Programming X 35 The SCells Spreadsheet Ruksilla merkityistä aiheista on mahdollista pitää n. 10-15 minuutin esitys kyseisen kerran alussa.
Kysymyksiä, kommentteja tai ideoita? Hankkikaa kirja mahdollisimman pian, jollei sitä jo ole Ottakaa kirja mukaan lukupiiriin Sähköposti: teemu.sirkia@aalto.fi