På svenska

Kandidaatin tutkinnon rakenne

Pääaineen tavoitteet

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, monipuolinen 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 rakennuspalikkoihin kuten tietokantoihin, tietoverkkojen palveluihin, digitaaliseen mediaan, käyttöliittymiin, datan käsittelyyn ja tietoturvatekniikoihin. Näiden perusteiden hallinta antaa mahdollisuuden sekä systemaattiseen ongelmaratkaisuun että luovaan ideointiin tietojärjestelmiä toteutettaessa. Toisaalta pääaineessa opitaan analysoimaan käyttäjän ja asiakkaan tarpeita, hallitsemaan ohjelmistotuotannon menetelmiä ja ymmärtämään tuotteiden ja palveluiden elinkaarta myös kestävän kehityksen näkökulmasta.

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. Matematiikalla on myös keskeinen asema: eri tietotekniikan osa-alueilla käytettyjen matemaattisten menetelmien hallitseminen avaa tien vaativimpiin asiantuntijatehtäviin, ja 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ä. Aalto-yliopiston tietotekniikan pääaineessa painotetaan niitä aihepiirejä, joita yliopistossamme tutkitaan. Opetus perustuu tutkimukseen: opettajat ovat aihepiirinsä tutkijoita, ja opintojen edetessä opitaan käyttämään tieteellisiä menetelmiä ja tietolähteitä. Pääaineessa korostuvat ohjelmistopinon yläkerrokset: korkean tason sovellusten ja palveluiden kehittäminen ja tiedon käsittely. Tietokoneen matalan tason toiminnasta ja sähkötekniikasta kiinnostuneen opiskelijan on syytä täydentää osaamistaan valinnaisilla opinnoilla.

Studio- ja projektimuotoisilla kursseilla 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 opintoVioletti: sivuaineen tai vapaasti valittavien opinto

Ensimmäinen vuosi

  1. syksy
  1. kevät
Johdatus opiskeluun (2 op)2. kotimainen kieli (2 op)
Diskreetin matematiikan perusteetSähkömagnetismi
Differentiaali- ja integraalilaskenta 1Aineen rakenne
Tuotantotalous 1Matriisilaskenta
Ohjelmointi 1Programming 2
Ohjelmointistudio 1Ohjelmointistudio 2: projekti

Tietokannat


Toinen vuosi

2. syksy2. kevät
Differentiaali- ja integraalilaskenta 2Yleisopinto (3 op)
Todennäköisyyslaskennan ja tilastotieteen peruskurssiVieras kieli (3 op)
Data Structures and AlgorithmsTheory of Computation
Käyttäjälähtöinen tuotekehitysprojekti (syksy tai kevät)Valinnainen kurssi
Valinnainen kurssiValinnainen kurssi
Valinnainen kurssiValinnainen kurssi

Valinnainen kurssi

Kolmas vuosi

3. syksy3. kevät
Valinnainen kurssi (5 op) ja valinnainen kurssi (5 op)Valinnainen kurssi (5 op) ja valinnainen kurssi (5 op)
tai kandidaatintyö ja seminaari (10 op)tai kandidaatintyö ja seminaari (10 op)
Software Project 1Software Project 2
Valinnainen kurssiValinnainen kurssi
Valinnainen kurssiValinnainen kurssi
Valinnainen kurssiValinnainen kurssi

Valinnainen kurssi on joko pääaineen valinnainen (yht. 30 op), sivuaineen kurssi (yht. 20-25 op) tai vapaasti valittava kurssi (yht. 15-20 op).

Kurssien laajuus on 5 op, jos ei muuta ilmoiteta.

Perusopinnot

Laajuus: 65 op
Vastuuprofessori: prof. Jukka Suomela
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-, ruotsin tai englanninkieliset kurssit:

MS-A0401 *

Diskreetin matematiikan perusteet

5

I

1.

MS-A0409

Grundkurs i diskret matematik


II

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:

PHYS-A1130

Sähkömagnetismi (SCI)

Kurssi on suoritettavissa myös ruotsiksi. Kurssista on videoidut luennot, harjoitusryhmä ja tentti ruotsiksi.

5

III

1.

PHYS-A5130

Elektromagnetism


III

ei opetusta 2022-2024

PHYS-A1140

Aineen rakenne (SCI)

Kurssi on suoritettavissa myös ruotsiksi. Kurssista on videoidut luennot, harjoitusryhmä ja tentti ruotsiksi.

5

IV

1.

PHYS-A5140

Materiens struktur


I

ei opetusta 2022-2024

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- ja kieliopinnot 10 op:

SCI-A0000

Johdatus opiskeluun

2

I-V

1.

 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 osio1
1.
LC-7002**Toisen kotimaisen kielen (suomi) kokeen suullinen osio


**Vieras kieli3
2.
Valitse yksi seuraavista:



TU-A1160

Elämisen taito
tai

3

III-IV

2.

CHEM-A1020

Akateemisen ajattelun alkeiskurssi
tai

5

I-II

2.

NBE-C3001

Aivoaakkoset
tai

4

I-II

2.

***Mikä tahansa Kielikeskuksen kielikurssi

3-4

 

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.

*** Yleisopinnoksi käy mikä tahansa Kielikeskuksen 3-4 op kielikurssi, mutta ei kuitenkaan äidinkielen opinto. Voit halutessasi sijoittaa tähän Tekniikan alan ruotsia tai Tekniikan alan ruotsia perusteellisesti -kurssin. Myös Intercultural communication -kurssit sopivat tähän.

Jos valitset 4 op tai 5 op laajuisen kurssin, voit halutessasi vähentää ylimääräiset opintopisteet vapaasti valittavista opinnoista. Eli jos esim. opiskelet Akateemisen ajattelun alkeiskurssin, 5 op, voit halutessasi opiskella 2 op vähemmän vapaasti valittaviin opintoihin.


Pääaineopinnot

Laajuus: 75 op
Vastuuprofessori: prof. Jukka Suomela
Koodi: SCI3027

Koodi

Kurssin nimi

Op

Periodi

Suoritusvuosi

Pakolliset kurssit 45 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

Software project is the capstone course of the Bachelor studies in computer science. 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

3.

CS-C2140

Software Project 2

5

III-V

3.

CS-C2160

Theory of Computation

After the course you know the most important mathematical models of computation and their characteristics. You can model computation using finite automata and describe simple syntactic patterns with regular expressions and context-free grammars. You understand the possibilities and limitations of the computation models and description formalisms studied during the course, and know their relationships. You understand how the Turing machine model characterises everything that can be computed with a computer program, and that there are well-defined problems that cannot be solved by any program.

5

III-IV

2.

SCI-C1002

Käyttäjälähtöinen tuotekehitysprojekti

The students become familiar with key concepts and practices of product and service development and are able to apply them in practice. They can collect, synthesize and combine knowledge from users and other stakeholders, use it in iterative product and services design, evaluate and test the solutions, and communicate the results while working in a multidisciplinary team. The course follows the phases of a user-centric design process.

Katso myös vaihtoehtoiset monialaiset projektit kurssikuvauksesta.

5

I-II
tai
III-IV

2.

SCI3027.kand

Kandidaatintyö ja -seminaari

Kandidatarbete och seminarium

10

I-II
tai
III-IV

3.

SCI.kyps

Kypsyysnäyte

0

 

3.

Valitse seuraavista kursseista niin, että pääaineen laajuus 75 op täyttyy (yleensä 6 kurssia, 30 op):

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-C3240

Machine Learning

5

I

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-II

2.-3.

CS-C3170

Web Software Development

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

5

II

jatkuva

2.

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

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.

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.

MS-C1342

Linear algebra

5

V

2.

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

ei opetusta 2022-2024

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

5

III

MS-C1620

Statistical inference

5

III-IV

MS-C2105

Introduction to optimization

5

IV

MS-C2111

Stochastic processes

5

II

ELEC-A7100

C-ohjelmoinnin peruskurssi

5

III-V

ELEC-A7151

Object oriented programming with C++

5

I-II

CS-E4770

Designing and building scalable web applications

5

II, III-V

CS-E3190

Principles of Algorithmic Techniques

5

I-II

CS-E4595

Competitive programming

5

I-II

CS-E4650

Methods of Data Mining

5

I-II

CS-E4800

Artificial Intelligence

5

III-IV

CS-E4840

Information Visualization

5

IV

CS-E5480

Digital Ethics

5

V

CS-E4700

Logic and hard computational problems

5

I-II

CS-C3260

Practical quantum computing

5

V