-
Notifications
You must be signed in to change notification settings - Fork 18
/
ohpe-materiaali.html
193 lines (156 loc) · 9.06 KB
/
ohpe-materiaali.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
---
layout: null
sitemap: false
---
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width initial-scale=1" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>MOOC.fi</title>
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<link rel="dns-prefetch" href="//code.jquery.com">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Alegreya+Sans:400|Noto+Sans:400,700|Open+Sans+Condensed:300,700" type="text/css">
<link rel="stylesheet" href="/css/main.css" type="text/css">
<link rel="stylesheet" href="/css/material.css" type="text/css">
<link rel="canonical" href="http://moocfi.github.io/ohpe-materiaali.html">
<link rel="icon" type="image/png" href="img/favicon.png">
</head>
<body>
<header>
<a id="week-selector-toggle">☰</a>
<nav id="week-selector">
<ul>
<li><a href="#">Viikko 1</a></li>
<li><a href="#">Viikko 2</a></li>
<li><a href="#">Viikko 3</a></li>
<li class="current"><a href="#">Viikko 4</a></li>
<li><a href="#">Viikko 5</a></li>
<li><a href="#">Viikko 6</a></li>
<li><a href="#">Viikko 7</a></li>
<li><a href="#">Viikko 8</a></li>
<li><a href="#">Viikko 9</a></li>
<li class="closed" title="Avataan 1.1.2016"><a href="#">Viikko 10</a></li>
<li class="closed" title="Avataan 1.2.2016"><a href="#">Viikko 11</a></li>
<li class="closed" title="Avataan 1.1.2016"><a href="#">Viikko 12</a></li>
<li class="closed" title="Avataan 1.2.2016"><a href="#">Viikko 13</a></li>
<li class="closed" title="Avataan 1.1.2016"><a href="#">Viikko 14</a></li>
</ul>
</nav>
</header>
<main>
<header>
<div class="organiser"><a href="http://cs.helsinki.fi"><img id="organiser" src="img/hy.png" alt="Helsingin yliopisto, University of Helsinki"></a></div>
<div class="mooc"><a href="/"><img id="mooc "src="img/logo.png" alt="MOOC.FI"></a></div>
<p>Tämä materiaali on lisensoitu Creative Commons BY-NC-SA-lisenssillä, joten voit käyttää ja levittää sitä vapaasti, kunhan alkuperäisten tekijöiden nimiä ei poisteta. Jos teet muutoksia materiaaliin ja haluat levittää muunneltua versiota, se täytyy lisensoida samanlaisella vapaalla lisenssillä. Materiaalien käyttö kaupalliseen tarkoitukseen on ilman erillistä lupaa kielletty.</p>
<p id="by-line">Tekijät: Arto Vihavainen ja Matti Luukkainen</p>
<p id="material-license"><img src="img/copyright.png" width="88" height="31" alt="Creative Commons copyright" class="cc"></p>
</header>
<article>
<header>
<h1>Viikko 4: Ohjelmoinnin MOOC</h1>
</header>
<nav>
<ol id="index-menu">
<li><a href="#huomautus_lukijalle">Huomautus lukijalle</a></li>
<li>
<a href="#ohjelma_ja_lahdekoodi">Ohjelma ja lähdekoodi</a>
<ol>
<li><a href="#t1">Tehtävä 1: Nimi</a></li>
<li><a href="#t2">Tehtävä 2: Hei Maailma! (Ja Mualima!)</a></li>
<li><a href="#t2">Tehtävä 3: Kuusi</a></li>
</ol>
</li>
<li>
<a href="#muuttuja_ja_sijoitus">Muuttuja ja sijoitus</a>
<ol>
<li><a href="#t2">Tehtävä 4: Muuttuvat muuttujat</a></li>
</ol>
</li>
</ol>
</nav>
<section id="huomautus_lukijalle">
<header>
<h1>1. Huomautus lukijalle</h1>
</header>
<p>
Tämä materiaali on tarkoitettu Helsingin yliopiston tietojenkäsittelytieteen laitoksen Ohjelmoinnin perusteet -kurssille. Materiaali pohjautuu syksyn 2012 ja keväiden 2013, 2012, 2011 ja 2010 kurssimateriaaleihin, joiden sisältöön ovat vaikuttaneet Matti Paksula, Antti Laaksonen, Pekka Mikkola, Juhana Laurinharju, Martin Pärtel, Joel Kaasinen ja Mikael Nousiainen.
</p>
</section>
<section id="ohjelma_ja_lahdekoodi">
<header>
<h1>2. Ohjelma ja lähdekoodi</h1>
</header>
<p>
Nykyaikainen ohjelmointi tapahtuu lähes poikkeuksetta ohjelmointiympäristössä. Ohjelmointiympäristö sisältää joukon ohjelmoijaa auttavia aputoimintoja. Ohjelmointiympäristö ei rakenna ohjelmaa ohjelmoijan puolesta, mutta se muunmuassa vinkkaa helpoista virheistä ohjelmakoodissa ja auttaa ohjelmoijaa hahmottamaan ohjelman rakennetta.
</p>
<h1>2.1 Lähdekoodi</h1>
<p>
Olemassaolevan muuttujan arvoa halutaan usein muuttaa. Tämä onnistuu tavallisen sijoituslausekkeen avulla. Seuraavassa muuttujan ika arvoa kasvatetaan yhdellä:
</p>
<!-- DAT CODE -->
<div class="highlight">
<pre><code class="language-java" data-lang="java"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">Luokka</span> <span class="kd">implements</span> <span class="n">Rajapinta</span> <span class="o">{</span>
<span class="o">}</span>
</code></pre>
</div>
<!-- DAT CODE -->
<div class="exercise" id="t1">
<header>
<h1>Tehtävä 1</h1>
</header>
<div>
<p>Sovelluksessa on valmis Chat-palvelu, sekä valmis komponentti kolmannen osapuolen chattikaverin käyttämiseen, jota ei kuitenkaan ole vielä liitetty sovellukseen. Tässä kolmannen osapuolen palvelu integroidaan osaksi chat-palvelua.</p>
<p>Sovelluksen rakenne on seuraava. Luokka <code>MessageController</code> ottaa vastaan pyyntöjä käyttöliittymältä, ja ohjaa niitä <code>MessageService</code>-palvelulle. MessageService tarjoaa metodit viestien listaamiseen ja uuden viestin tallentamiseen: tallentaminen tapahtuu <code>MessageRepository</code>-rajapintaa käyttämällä.</p>
<p>Muokkaa <code>MessageService</code>-luokan tarjoamaa viestin tallennusmetodia siten, että kun käyttäjän kirjoittama viesti on tallennettu, viesti annetaan <code>ChatService</code>-oliolle, jonka palauttama viesti myös tallennetaan. Injektoi <code>ChatService</code>-palvelu <code>MessageService</code>-palveluun.</p>
<p>Kun sovellus toimii, keskustelun pitäisi näyttää esimerkiksi seuraavanlaiselta:</p>
</div>
</div>
<div class="exercise" id="t2">
<header>
<h1>Tehtävä 2</h1>
</header>
<div class="collapsed">
<p>Sovelluksessa on valmis Chat-palvelu, sekä valmis komponentti kolmannen osapuolen chattikaverin käyttämiseen, jota ei kuitenkaan ole vielä liitetty sovellukseen. Tässä kolmannen osapuolen palvelu integroidaan osaksi chat-palvelua.</p>
<p>Sovelluksen rakenne on seuraava. Luokka <code>MessageController</code> ottaa vastaan pyyntöjä käyttöliittymältä, ja ohjaa niitä <code>MessageService</code>-palvelulle. MessageService tarjoaa metodit viestien listaamiseen ja uuden viestin tallentamiseen: tallentaminen tapahtuu <code>MessageRepository</code>-rajapintaa käyttämällä.</p>
<p>Muokkaa <code>MessageService</code>-luokan tarjoamaa viestin tallennusmetodia siten, että kun käyttäjän kirjoittama viesti on tallennettu, viesti annetaan <code>ChatService</code>-oliolle, jonka palauttama viesti myös tallennetaan. Injektoi <code>ChatService</code>-palvelu <code>MessageService</code>-palveluun.</p>
<p>Kun sovellus toimii, keskustelun pitäisi näyttää esimerkiksi seuraavanlaiselta:</p>
</div>
</div>
</section>
<section id="muuttuja_ja_sijoitus">
<header>
<h1>3. Muuttuja ja sijoitus</h1>
</header>
<p>
Ohjelmoinnissa eräs keskeinen käsite on muuttuja. Muuttuja kannattaa ajatella lokerona, johon voi tallettaa tietoa. Muuttujaan talletettavalla tiedolla on aina tyyppi. Tyyppejä ovat esimerkiksi teksti eli merkkijono (String), kokonaisluku (int), liukuluku (double) ja totuusarvo (boolean). Muuttujaan asetetaan arvo yhtäsuuruusmerkillä <code>=</code>.
</p>
</section>
</article>
</main>
<footer>
<article>
<section id="about">
<p>MOOC.FI tarjoaa täysin ilmaisia yliopistotason ohjelmointikursseja kenelle tahansa.</p>
<p>Kurssitarjonnastamme löydät opeteltavaa olit sitten ohjelmoinnista kiinnostunut aloittelija, tai taitojasi syventävä peruskoodari.</p>
</section>
<section id="contact">
<p class="facebook">Tiedotus <a href="#">Twitter</a> & <a href="http://www.kikatus.com/misc/MOOC/#">Facebook</a></p>
<p class="irc">Ohjaus <a href="#">#mooc.fi @ IRCNet</a></p>
<p class="sourceforge">Virheraportit <a href="#">SourceForge</a></p>
</section>
<section id="license">
<img src="/img/helsingin-yliopisto-computer-science.png" alt="Helsingin yliopisto - Department of computer science">
<p>
<img src="/img/copyright.png" alt="Creative Commons copyright">
Sivuston kaikki materiaali on lisensoitu Creative Commons BY-NC-SA-lisenssillä
</p>
</section>
</article>
</footer>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="/js/mooc.js"></script>
<script src="/js/material.js"></script>
</body>
</html>