JTT Johdatus tietojenkäsittelytieteisiin Kenelle? Miksi? Koska? Kuinka? pakollinen tietojenkäsittelytieteiden uudessa tutkinto ohjelmassa tänä syksynä aloittaneet tietojenkäsittelytieteiden uudet opiskelijat aikaisemmin aloittaneet uuden järjestelmän mukaan opiskelemaan siirtyneet jakson asema tutkinto ohjelmassa ei kuulu mihinkään muuhun opintokokonaisuuteen (ei tietojenkäsittelytieteiden tutkinto ohjelmassa, eikä muiden tutkinto ohjelmien opiskelijoille tarjotuissa kokonaisuuksissa) ei voi kelpaa tietojenkäsittelyopin eikä vuorovaikutteisen teknologia sivuainekokonaisuuteen ( tietojenkäsittelyoppia 18 op ) (nykytermein valinnaisiin opintoihin)
JTT Johdatus tietojenkäsittelytieteisiin Miksi? Koska? Kuinka? opiskeluvalmiudet kokonaiskuva tieteenalasta oman tutkinto ohjelman näkökulmasta Koska? Kuinka? I perioidissa (alustavasti 20 tuntia) keskiviikkoisin klo 14 16 perjantaisin klo klo 8 10
Kuinka? luennot tentti pe 12.10., klo 8.00 10 Pinni B 1100 tenttikysymykset luentomonisteesta + erikseen mainituista artikkeleista Boehm, Making a difference in the software century, IEEE Computer 41, 3 (2008), 32-38. pdf (yliopiston IP-numero tai Nelli-etäkirjautuminen) Denning, Great principles of computing, Comm. ACM 46, 11 (2003), 15 20. King, Li and Chan, A brief survey of computational approaches in social computing, In. Proc. of International Joint Conference on Neural Networks, 2009, 1625-1632. Robare and Forlizzi, Sound in computing: a short history. ACM interactions, 16,1 (2009), 62-65. Mikko Ruohonen, Johtamiskulttuurien muutos ICT-yrityksissä: hypestä todellisuuteen. Esko Ukkonen, Al Khwarizmin perintö Mitä on algoritmitutkimus?
Yleistä tieteestä Mikä on tiedettä ja mikä ei? (demarkaatio-ongelma) ei ole: rajatiede, uskonto, taide, viihde, urheilu,... Tieteen määritelmät, esim. Tiede on järjestelmällistä ja järkiperäistä uuden tiedon hankintaa. Tieteen luonnehdinnat, esim.: objektiivisuus julkisuus kriittisyys itseäänkorjaavuus autonomisuus edistyvyys. 4
Objektiivisuus tutkimuskohteen ominaisuudet riippumattomia tutkijan mielipiteistä; tieto on peräisin kohteesta saatavista havainnoista Julkisuus väitteille tulee voida antaa julkinen perustelu, toinen tutkija voisi samoin menetelmin päätyä vastaaviin tuloksiin kriittisyysperiaate ja koeteltavuus Itsensäkorjaavuus virhekäsitykset korjaantuvat ajan myötä Autonomisuus tieteellisten ongelmien (tutkimuskohteiden) valinta ja tieteen tulosten arviointi ovat tiedeyhteisön omia asioita Edistyvyys
Miksi tutkitaan? Onko tieteellä tavoitetta? Tiedon intressit. a. tieteen tehtävänä vastata johonkin käytännön päätöksenteko-ongelmaan (instrumentalismi) b. tieteen tehtävänä on tuottaa tietoa (verismi) a. neuvonantaja a. soveltaja b. totuuden etsijä b. teoreetikko a. tiedon hyödyllisyys b. tieto itseisarvona 6
1. Perustutkimus uuden tiedon etsintä ilman ensisijaista pyrkimystä käytännöllisiin tavoitteisiin tai sovelluksiin 2. Soveltava tutkimus (tavoitetutkimus) perustutkimuksen tuloksille perustuvaa käytännön sovellukseen tai tavoitteeseen pyrkivää tiedon etsintää 3. Kehittämistyö tutkimustuloksiin perustuva uusien tai parannettujen tuotteiden, tuotantomenetelmien tai -välineiden kehittäminen 7
Esimerkkejä: A1. perustutkimus: logiikka ja diskreetti matematiikka A2. soveltava tutkimus: tietokanta algoritmien tutkimus A3. kehittämistyö: verkkokaupan tietokannan tapahtumankäsittelyn suunnittelu; B1. perustutkimus: diskreetti matematiikka B2. soveltava tutkimus: ohjelmointikielten tutkimus B3. kehittämistyö: entistä tehokkaampien kääntäjien suunnittelu 8
Perustutkimus tieteellinen tieto totuus tutkimusmetodi tiedeyhteisö - totuus - informaatio - selitysvoima todellisuus 9
Tekniikka tekniset välineet tekniset mahdollisuudet tekninen yhteisö suunnittelu - tehokkuus - taloudellisuus - esteettisyys - ekologisuus - ergonomisuus - eettisyys loogiset mahdollisuudet 10
Tietojenkäsittelytieteen naapureita tekniikka matematiikka tilastotiede psykologia Tietojenkäsittelytiede filosofia liiketaloustiede kielitiede sosiologia biologia 11
tekniikka matematiikka tilastotiede psykologia liiketaloustiede sosiologia filosofia Computer Science Software Engineering Tietojärjestelmätiede Vuorovaikutteinen teknologia Hardware 12
Tieteellinen vs. arkiajattelu Arkiajattelun puutteita Epäluotettavat havainnot Valikoiva havainnointi Liiallinen yleistäminen Puutteellinen päättely Lyhytjännitteisyys Asioiden tarkastelu irrallaan yhteyksistä ja mittakaavasta Korjaamisen mekanismit tieteellisessä ajattelussa Havaintojen systematisointi Havaintojen toistettavuus Tutkimuksen oletuksia ja niiden vaikutuksia koskeva pohdinta Tilastolliset menetelmät Loogiset ja matemaattiset välineet Tilastolliset menetelmät Aikaisempiin tutkimuksiin perustuminen Ilmeisen näkeminen ongelmallisena Olennaisen ja epäolennaisen erottaminen 13
Tutkimusotteet Reaalimaailmaa koskevat Matemaattiset Millainen todellisuus on -tutkimukset Innovaation hyödyllisyyttä painottavat tutkimukset Käsitteellisteoreettiset otteet Empiiriset otteet Innovaatioita toteuttavat Innovaatioita arvioivat Teorioita testaavat Teorioita luovat 14
Formaalit tieteet Reaalitieteet matematiikka, logiikka luonto, ihminen, kulttuuri, yhteiskunta järki, ajattelu -------------- analyyttinen -------------- sopimus, määritelmä ------------- tautologia ------------- havainto, koe, teoria synteettinen vastaavuus luonnon kanssa tosiasiaväite tosi kaikissa mahdol- ------------- tosi aktuaalisessa lisissa maailmoissa maailmassa 15
TEORIAT induktio deduktio EMPIIRISET YLEISTYKSET METODIT HYPOTEESIT luokitus- ja laskentatoimet operationaalistaminen ja mittavälineiden laadinta HAVAINNOT 16
Sama (?) paljon yksinkertaisemmin ja ymmärrettävämmin: Holz et al.: Research methods in computing: what they are, and how should we teach them? In: ITiCSE 06, Bologna, 2006, pp. 96-114. 17
Tietojenkäsittelytieteen tutkimussuuntia Määritelmä : Tietojenkäsittelytiede tarkastelee niitä algoritmisia prosesseja, joilla informaatiota kuvataan ja muunnetaan: niiden teoriaa, analyysiä, suunnittelua, tehokkuutta, toteuttamista ja soveltamista. Tietojenkäsittelytieteen peruskysymys on: Mitä voidaan automatisoida (tehokkaasti)? (Denning) Muita (vanhempia) määritelmiä 1. Computer Science is the study of phenomena related to computers (Newell, Perlis and Simon). 2. Computer Science is the study of information structures (Wegner). 3. Computer Science is the study and management of complexity (Dijkstra). 18
4. Computer Science is the mechanization of abstraction (Aho and Ullman) 5. Computer Science is a field of study that is concerned with theoretical and applied disciplines in the development and use of computers for information storage and processing, mathematics, logic, science, and many other areas (Mahoney). 19
Mitä tietojenkäsittelytiede on? Denning http://portal.acm.org/citation.cfm?id=1610252.1610265&coll=portal&dl=acm&cfid=28898525&cftoken=90902010 Hartmanis http://portal.acm.org/citation.cfm?id=214040&coll=portal&dl=acm&cfid=42394170&cftoken=77304914 Johnson: What is Research in Computing Science? http://www.dcs.gla.ac.uk/~johnson/teaching/research_skills/research.html Johnson: Basic Research Skills in Computing Science http://www.dcs.gla.ac.uk/~johnson/teaching/research_skills/basics.html West http://portal.acm.org/citation.cfm?id=248448.248467 Dodig-Crnkovic http://www.mrtc.mdh.se/publications/0446.pdf 20
Voidaan myös yrittää määritellä tietojenkäsittelytieteitä sen perusteella mihin pyritään. Tunnetuin yritys: Tietojenkäsittelytieteet vastaavat kysymykseen Mitävoidaan automatisoida tehokkaasti? tehokkaasti?
Tieteenalaa voidaan kuvailla myös luettelemalla, millaisista osista se koostuu. ACM:n luetteli 1980 luvun lopulla seuraavat: algoritmit ja tietorakenteet, ohjelmointikielet, tietokonearkkitehtuurit, numeerinen ja symbolinen laskenta, käyttöjärjestelmät, ohjelmistotekniikka, tietokannat ja tiedonhaku, tekoäly ja robotiikka ihmisen ja tietokoneen vuorovaikutus.
Tällä jaksolla tarkastellaan tietojenkäsittelytieteitä Peter Denningin esittämän jaottelun perusteella.
Käytännöt Ydinteknologiat Perusperiaatteet Rakenne ilmentää tietojenkäsittelytieteiden läheistä suhdetta käytännön tietojenkäsittelytehtäviin ja teknologian kehitykseen.
Tietojenkäsittelyn käytännöt (computing practices) (monisteen luku 2) ohjelmointi (programming) järjestelmien suunnittelu (engineering systems) mallintaminen (modeling) innovointi (innovating) soveltaminen (applying). Tietojenkäsittelyjärjestelmien vakiintuneet rakentamis ja käyttöönottotavat.
Ydinteknologiat (core technologies) (monisteen luku 3) algoritmit (algorithms) tietokannat (databases) arkkitehtuurit (architectures) tietoverkot (networks) käyttöjärjestelmät operating systems) jne.
Perusperiaatteet tietojenkäsittelyn mekaniikat suunnittelun periaatteet (luku 4) (luku 5) Tietojenkäsittelyä ohjaavat lait Suunnittelutehtävissä vakiintuneet menettelytavat laskenta (computation), yksinkertaisuus (simplicity), kommunikointi (communication), suorituskyky (performance), koordinointi (coordination) luotettavuus (reliability), automatisointi (automation) kehitettävyys (evolvability) ja muistaminen (recollection). tietoturva (security).