På svenska

Pääaineen tavoitteet


 Lue lisää

Tietotekniikan pääaine antaa opiskelijalle laajan tietotekniikan perusteiden tuntemuksen. Sisältö vastaa kansainvälisesti ymmärrettyä computer science -alan kanditutkintoa. Kandiopintojen pohjalta opiskelija pystyy omaksumaan jatkuvasti uutta ja soveltamaan uusinta tekniikkaa luovalla tavalla tietojenkäsittelyn muuttuviin tehtäviin. Kandiopinnot myös luovat perustan tietotekniikan DI-opinnoille, joissa syvennytään valittuun erityisalueeseen.

Tietotekniikan ytimessä ovat ohjelmistot, digitaalisen tiedon käsittely sekä ihminen tietoteknisten palvelujen käyttäjänä ja kehittäjänä. Pääaineen ensimmäinen tavoite on vankka ohjelmointitaito. Opiskelija osaa määritellä tietojenkäsittelyn tehtäviä abstrakteina ongelmina, ratkaista niitä algoritmisesti ja toteuttaa ratkaisun tietokoneohjelmana. Opinnoissa tutustutaan tietojenkäsittelyn käsitteisiin, ilmiöihin ja lainalaisuuksiin sekä ohjelmistojärjestelmien keskeisiin rakennuspalikoihin kuten tietokantoihin, tietoverkkojen palveluihin, digitaaliseen mediaan, käyttöliittymiin, datan käsittelyyn ja tietoturvatekniikoihin. Näiden perusteiden hallinta antaa mahdollisuuden sekä systemaattiseen ongelmaratkaisuun että mielikuvituksen lentoon tietojärjestelmiä toteutettaessa. Toisaalta pääaineessa opitaan analysoimaan käyttäjän ja asiakkaan tarpeita, ymmärtämään tuotteiden ja palveluiden elinkaarta ja hallitsemaan ohjelmistotuotannon menetelmiä.

Nopeasti kehittyvällä alalla on tärkeää, että pääaine antaa opiskelijalle pitkäikäisiä tietoja ja taitoja, joilla on käyttöä läpi koko työuran. Abstraktiot, menetelmät ja kriittinen ajattelu ovat tärkeämpiä kuin tuotteet tai teknologiat. Esimerkiksi ohjelmointikielten kursseja ei pääaineeseen kuulu lainkaan, vaan tavoitteena on laaja käsitys ohjelmoinnin malleista ja tyyleistä. Monipuolinen ohjelmointitaito on kaiken tietojenkäsittelyn perusta, ja sen kehittämiseen useista eri näkökulmista panostetaan heti opintojen alussa. Matematiikalla on myös keskeinen asema tietojenkäsittelyssä: eri tietotekniikan osa-alueet käyttävät eri matemaattisia menetelmiä, ja niiden hallitseminen avaa tien vaativimpiin teknisiin asiantuntijatehtäviin. Matematiikkaa olisi suositeltavaa opiskella enemmänkin kuin pakolliset kurssit. Pysyvien periaatteiden korostaminen ei kuitenkaan tee tietotekniikan pääaineesta erityisen teoreettista, sillä insinöörialan opintoihin kuuluu paljon soveltavia harjoituksia, joissa uusimmat teknologiat tulevat tutuiksi ja käytännön ammattitaito kehittyy.

Tietotekniikka kaikkine sovelluksineen on laaja ja monipuolinen kenttä, ja pääaineen opetusta suunniteltaessa on jouduttu pohtimaan valintoja tarkkaan. Opetuksessa painotetaan niitä aihepiirejä, joita Aalto-yliopistossa tutkitaan. Peruskursseilla tieteellinen tutkimus näkyy niin, että opettajat ovat aihepiirinsä tutkijoita. Opintojen edetessä päästään käyttämään tieteellisiä menetelmiä ja tietolähteitä. Keskeinen linjavalinta on, että pääaineessa korostuvat ohjelmistopinon yläkerrokset: korkean tason sovellusten ja palveluiden kehittäminen ja tiedon käsittely. Tietokoneen toiminta on jätetty aiempaa vähemmälle ja sähkötekniikka kokonaan pois, joten niistä kiinnostuneen opiskelijan on syytä täydentää osaamistaan valinnaisilla opinnoilla.

Kandiohjelmassa on jokaisena lukukautena studio- tai projektimuotoinen kurssi. Niissä kehitetään luovan ongelmanratkaisun, ryhmätyöskentelyn sekä projektinhallinnan taitoja, tutustutaan tuotekehityksen ja liiketoiminnan prosesseihin ja saadaan kokemusta monialaisesta yhteistyöstä. Läpi opintojen harjoitellaan suullista ja kirjallista viestintää niin suomeksi kuin englanniksi. Opiskelija tottuu käyttämään englantia työkielenä tarpeen vaatiessa ja saa ensimakua kansainvälisestä työympäristöstä.

Tietotekniikan pääaineen lisäksi kandiopintoihin sisältyy matematiikan, luonnontieteen ja talouden opintoja sekä sivuaine ja muita valinnaisia opintoja. Tämä antaa mahdollisuuden monialaiseen tutkintoon, jossa yhdistyvät tietotekniikka ja jokin sen sovellusalue tai esimerkiksi yritystalouden tuntemus.

Opintojen mallisuoritusjärjestys

Oranssi: perusopintoVihreä: pääaineen opinto

Ensimmäinen vuosi

Toinen vuosi

2. syksy2. kevät

Aalto-kurssi (3 op)

Vieras kieli (3 op)
Differentiaali- ja integraalilaskenta 2Tietokoneverkot
Todennäköisyyslaskennan ja tilastotieteen peruskurssiSoftware Project 2
Data Structures and AlgorithmsTheoretical Computer Science
Software Project 1Pääaineen valinnainen
Pääaineen valinnainenVapaasti valittava / sivuainekurssi
Vapaasti valittava / sivuainekurssi

Kolmas vuosi

3. syksy3. kevät
SCI-projektikurssi (5 op) ja
pääaineen valinnainen (5 op)
SCI-projektikurssi (5 op) ja
pääaineen valinnainen (5 op)
tai
Kandidaatintyö ja seminaari (10 op)
tai
Kandidaatintyö ja seminaari (10 op)
Vapaasti valittava / sivuainekurssiVapaasti valittava / sivuainekurssi
Vapaasti valittava / sivuainekurssiVapaasti valittava / sivuainekurssi
Vapaasti valittava / sivuainekurssiVapaasti valittava / sivuainekurssi
Vapaasti valittava / sivuainekurssiVapaasti valittava / sivuainekurssi

Kurssien laajuus on 5 op, jos ei muuta ilmoiteta.

Perusopinnot

Laajuus: 65 op
Vastuuprofessori: prof. Tuomas Aura
Koodi: SCI3027.A

Koodi

Kurssin nimi

Op

Periodi

Suoritus-
vuosi

Tietotekniikka 15 op:

CS-A1110

Ohjelmointi 1

Kurssin suoritettuasi ohjelmointi on sinusta hyödyllistä ja hauskaa.

Osaat itse kirjoittaa uusia tietokoneohjelmia ja tutkia ja muokata toisten kirjoittamia ohjelmia. Tunnet ohjelmoinnin keskeisimmät käsitteet, ja osaat keskustella niistä ja opetella itse lisää. Kurssi on työläs mutta palkitseva.

5

I-II

1.

CS-A1120

Programming 2

Johdatus tietokoneen toimintaan porttitasolta korkean tason ohjelmointikieliin. Ohjelmoinnin abstraktiot ja suorituskykyanalyysi. Funktionaalinen ohjelmointi, mm. rekursiiviset määritelmät ja rekursio. Johdatus algoritmiseen ongelmanratkaisuun, tietojenkäsittelytieteen ajattelutapa. Kurssin pääkieli on englanti; ohjausta saa myös suomeksi ja ruotsiksi.

5

IV-V

1.

CS-A1140

Data Structures and Algorithms

Kurssin suoritettuasi osaat tunnistaa, määritellä, esitellä, vertailla ja toteuttaa tietorakenteita ja algoritmeja sekä valita niitä mm. hakurakenteiksi ja järjestämisongelmaan. Pystyt myös keskustelemaan keskeisistä tietorakenteista ja algoritmeista käyttäen alan tyypillistä terminologiaa. Kurssin pääkieli on englanti; ohjausta saa myös suomeksi ja ruotsiksi.

5

I-II

2.

Matematiikka 25 op. Valitse joko suomen- tai ruotsinkieliset kurssit:

MS-A0401 *

Diskreetin matematiikan perusteet

5

I

1.

MS-A0409

Grundkurs i diskret matematik


I

2.

MS-A0102

Differentiaali- ja integraalilaskenta 1 (SCI)

5

II

1.

MS-A0109

Differential- och integralkalkyl 1


I


MS-A0002

Matriisilaskenta (SCI)

5

III

1.

MS-A0009

Matrisräkning


II


MS-A0202

Differentiaali- ja integraalilaskenta 2 (SCI)

5

I

2.

MS-A0209

Differential- och integralkalkyl 2


III

1.

MS-A0502 *

Todennäköisyyslaskennan ja tilastotieteen peruskurssi

5

II

2.

MS-A0509

Grundkurs i sannolikhetskalkyl och statistik


III


Fysiikka 10 op. Valitse joko suomen- tai ruotsinkieliset kurssit:

PHYS-A1130

Sähkömagnetismi (SCI)

5

III

1.

PHYS-A5130

Elektromagnetism


III


PHYS-A1140

Aineen rakenne (SCI)

5

IV

1.

PHYS-A5140

Materiens struktur


I


Tuotantotalous 5 op. Valitse joko suomen- tai ruotsinkielinen kurssi:

TU-A1100

Tuotantotalous 1

5

I-II

1.

TU-A1200

Grundkurs i Produktionsekonomi

5

I-II

1.

Yleis-, kieli-, ja Aalto-opinnot 10 op:

SCI-A0000

Johdatus opiskeluun

2

I-V

1.

 

Aalto-opinnot

3

 

2.

LC-5001 **

Toisen kotimaisen kielen (ruotsi) kokeen kirjallinen osio

1

 

1.

LC-7001**

Toisen kotimaisen kielen (suomi) kokeen kirjallinen osio




LC-5002 **

Toisen kotimaisen kielen (ruotsi) kokeen suullinen osio

1

 

1.

LC-7002**

Toisen kotimaisen kielen (suomi) kokeen suullinen osio




**

Vieras kieli

3

 

2.

* Kurssista on useita rinnakkaisia versioita eri periodeilla. Mikä tahansa rinnakkaisista versioista käy perusopintoihin, mutta tässä mainittu kurssikoodi on ensisijainen, tietotekniikan malliohjelman mukainen kurssi.

** Lisätietoja kieliopinnoista ja kielitaidon osoittamiseen kelpaavista kursseista on sivulla Tutkinnon kieli- ja viestintäopinnot.

Pääaineopinnot

Laajuus: 65 op
Vastuuprofessori: prof. Tuomas Aura
Koodi: SCI3027

Koodi

Kurssin nimi

Op

Periodi

Suoritusvuosi

Pakolliset kurssit 50 op:

CS-A1150

Tietokannat

Tietokantoja tarvitaan kaikkialla: opiskelijarekistereissä, verkkokaupoissa, terveydenhuollon tietojärjestelmissä jne. Tällä kurssilla opit suunnittelemaan tietokantoja ja tekemään erilaisia tietokantakyselyjä SQL-kielellä. Kurssilla käsitellään lyhyesti myös muita tietokantatyyppejä.

5

III-V

1.

CS-C2100

Ohjelmointistudio 1

Kurssilla opiskellaan ongelmalähtöisesti digitaalisen median peruskäsitteitä ja syvennetään ohjelmointiosaamista mediaohjelmoinnin avulla. Pääset harjoittelemaan ohjelmointia tehtävissä, joiden aiheena on esim. kuvan ja äänen esitys, pakkaus ja suodatus. Kurssilla opitaan myös ryhmässä toimimista sekä avointen ongelmien ratkaisua.

Huom! Kurssi suoritetaan yhdessä kurssin CS-A1110 Ohjelmointi 1 kanssa.

5

I-II

1.

CS-C2120

Ohjelmointistudio 2: projekti

Kurssilla opetellaan laajempien ohjelmien suunnittelua ja toteutustekniikoita yksilöllisen ohjelmointiprojektin ja harjoitusten kautta. Kurssi myös esittelee uusia ohjelmoinnin abstraktioita ja rakenteita sekä työkaluja koodin hallintaan ja jatkokehityksen helpottamiseen.

5

III-V

1.

CS-C2130

Software Project 1

In Software Project 1-2, students carry out a large software development project in teams for a real client from industry or academia. The students become familiar with the problem domain and implementation technologies of the chosen project. They also get an understanding of the structure and technical and non-technical challenges of software development projects
and learn to apply the Scrum process framework. The two project courses should be completed in the same academic year.

5

I-II

2.-3.

CS-C2140

Software Project 2

5

III-IV

2.-3.

CS-C2150

Theoretical Computer Science

In this course you will learn the basic models of computation and to build and use such computing machines. Finite automata, regular languages, pushdown automata, context-free grammars, Turing machines and computability, basics of computational complexity. You will also learn about the foundations behind the science of software, which are formal logic and theorem proving.

5

III-IV

2.

ELEC-C7241

Tietokoneverkot

Kurssilla tutustutaan verkkosovellusten ja tietokoneverkkojen toimintaan. Ymmärrät, kuinka Internet toimii, ja miten sen palveluita käytetään ohjelmistoissa. Osaat kirjoittaa verkon yli toimivia sovelluksia.

5

III-IV

2.

SCI-C1001

SCI-projektikurssi

Kurssilla toteutetaan tuotekehitysprojekti monialaisessa ryhmässä, jossa toimit tietotekniikan asiantuntijana. Opit tyypillisen innovaatioprosessin vaiheet, ongelmanratkaisua, omien ajatusten esittämistä, liiketoimintanäkökohtien huomioimista ja projektinhallintaa.

5

I-II
tai
III-V

Aikaisintaan 2. kevät

SCI3027.kand

Kandidaatintyö ja -seminaari

Kandidatarbete och seminarium

10

I-II
tai
III-IV

3.

SCI.kyps

Kypsyysnäyte

0

 

3.

Valitse kolme seuraavista kursseista (yhteensä 15 op). Opiskelija voi halutessaan suorittaa enemmänkin pääaineen valinnaisia kursseja ja sisällyttää ylimääräiset vapaasti valittaviin opintoihin:

CS-C3100

Computer Graphics

Three-dimensional computer graphics denotes the techniques that draw everything on your screen when you play a game or watch an effects-heavy movie. The course covers the fundamentals of 3D graphics from a modern perspective, from geometric modeling to animation and to efficient rendering.

5

I-II

2.-3.

CS-C3120

Human-Computer Interaction

This course covers the foundations of Human-Computer Interaction - how computer systems are designed to support the needs of the people who will use them. We introduce UI and UX design with focus on a user-centered design process, from understanding user requirements to prototyping and testing designs, as part of the software development process. We also look into how the relationship between computers and humans is evolving, and how we might interact with computer systems in the future.

5

I-II

2.-3.

CS-C3160

Data Science

The goal of data science is to extract useful and insightful knowledge from digital data. This course introduces students to data-science methodology and tools. You will learn to represent natural data in digital form and to apply elementary statistical and algorithmic methods to process the digital data, leading to actionable results. Statistical estimation of parametric distributions, classification, prediction, clustering, pattern mining and network analysis. The course serves as a basis for subsequent studies in data analysis and machine learning.

5

II

2.-3.

CS-C3140

Operating Systems

Operating systems provide basic services and abstractions on which most computing applications and services are built. This course covers the fundamental components and functions of a complex operating system from process and memory management to file systems, networking and device drivers. Linux is used as a practical example.

5

I

2.-3.

CS-C3170

Web Software Development

The distributed architecture of web software differs fundamentally from traditional desltop software. This course provides a software development viewpoint to the web, covering both the client and server sides through exercises and a group project on web service development.

5

II-III

2.-3.

CS-C3130

Information Security

Fundamental concepts and models of computer security, common security mechanisms and their limitations, threat analysis, data privacy, secure programming. Learn to think like the attacker.

5

I

2.-3.

CS-C3150

Software Engineering

The course provides a broad, but practical view of the major areas in software engineering, including requirements, design, implementation, testing, and delivery as well as software processes, including traditional and agile development. The course is delivered in moodle and consists of a fixed schedule of video lectures and assignments.

5

I-II,

III-IV

2.-3.

CS-E4580

Programming Parallel Computers

This is a practical hands-on course on algorithm
engineering for modern parallel computers. The
students will learn how to design programs that make the best possible use of the computing power of multicore CPUs and GPUs.

5

V

2.-3.


Tietotekniikan opiskelijoille, jotka haluavat laajentaa matemaattista tai menetelmällistä osaamistaan pääainetta tukevilla opinnoilla, suositellaan esimerkiksi seuraavia vapaavalintaisia kursseja:

Koodi

Kurssin nimi

Op

Periodi

MS-C1081

Abstract algebra

5III

MS-C1342/

MS-C1343

Lineaarialgebra/

Linear algebra

5

V

I

MS-C1620 Statistical inference5III-IV

MS-C2105

Introduction to optimization

5IV

MS-C2111

Stochastic processes

5II

ELEC-A7100

C-ohjelmoinnin peruskurssi

5III-V

ELEC-A7151

Object oriented programming with C++

5I-II
CS-E3190Principles of Algorithmic Techniques5I-II

CS-E4600

Algorithmic Methods of Data Mining

5I-II

CS-E4800

Artificial Intelligence

5III-IV

CS-E4840

Information Visualization

5IV