<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="et">
	<id>http://www.lambda.ee/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Radu</id>
	<title>Lambda - Kasutaja kaastöö [et]</title>
	<link rel="self" type="application/atom+xml" href="http://www.lambda.ee/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Radu"/>
	<link rel="alternate" type="text/html" href="http://www.lambda.ee/wiki/Eri:Kaast%C3%B6%C3%B6/Radu"/>
	<updated>2026-10-28T09:47:03Z</updated>
	<subtitle>Kasutaja kaastöö</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=KR_2021_homework_part_1&amp;diff=18479</id>
		<title>KR 2021 homework part 1</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=KR_2021_homework_part_1&amp;diff=18479"/>
		<updated>2021-02-11T14:10:58Z</updated>

		<summary type="html">&lt;p&gt;Radu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The goal of the lab is to explore and prepare data for the question answering system to be built in the following labs. We will later modify, filter and format this data to make it suitable for simple commonsense reasoning / question answering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Due date 1.04.2021&#039;&#039;&#039; -- on that day we will have presentations for each group and if some remain, they will be able to do present during the next practice session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Yago for geodata =&lt;br /&gt;
&lt;br /&gt;
As a source for geographical data we use [https://yago-knowledge.org/ yago] (here is [https://www.mpi-inf.mpg.de/departments/databases-and-information-systems/research/yago-naga/yago/ their old page]). Investigate parts of it and download from [https://yago-knowledge.org/downloads the download page] (again, the old download page [https://www.mpi-inf.mpg.de/departments/databases-and-information-systems/research/yago-naga/yago/downloads/ is here]). The second important taxonomy source is [https://wordnet.princeton.edu/ wordnet]: Yago contains some (?) of it, but you can use wordnet directly in your system.&lt;br /&gt;
&lt;br /&gt;
Yago is large. You do not need to incorporate all of Yago in your database: the geographical facts for say, one country, and taxonomies are enough.&lt;br /&gt;
&lt;br /&gt;
Your task is to &lt;br /&gt;
&lt;br /&gt;
* select a sensible sub-part of geographical facts in Yago (like, one country) and store it in the SQL database, using both standard SQL and, where it seems useful, json. Postgresql is the best option due to special capabilities of handling json. Sqlite is the second best option, due to simplicity of use.&lt;br /&gt;
&lt;br /&gt;
* select a sensible sub-part of Yago taxonomies and store it in the same SQL database. &lt;br /&gt;
&lt;br /&gt;
* investigate whether your yago taxonomy contains relevant parts of wordnet: if not, incorporate also wordnet into your database.&lt;br /&gt;
&lt;br /&gt;
* perform some sample queries to verify that you can actually find information: try searching for both simple facts and also using taxonomies for searching for more abstract concepts.&lt;br /&gt;
&lt;br /&gt;
= Quasimodo for basic commonsense knowledge =&lt;br /&gt;
&lt;br /&gt;
As a source for basic commonsense knowledge we explore and possibly use [https://www.mpi-inf.mpg.de/departments/databases-and-information-systems/research/yago-naga/commonsense/quasimodo quasimodo]. Beware: it does not cover very much and contains a lot of weird statements, like &amp;quot;estonia, has_color, yellow&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In particular, please &lt;br /&gt;
&lt;br /&gt;
* Read the [https://arxiv.org/pdf/1905.10989.pdf paper] and explore [https://quasimodo.r2.enst.fr/ the demo]&lt;br /&gt;
&lt;br /&gt;
* Download and explore the [https://www.mpi-inf.mpg.de/fileadmin/inf/d5/research/quasimodo/quasimodo-v1.3.zip version 1.3 dataset]. &lt;br /&gt;
&lt;br /&gt;
* Find out if the dataset contains meaningful amount of information about the geographical places (or additional information about the facts about these places) for the sub-part you chose from Yago.&lt;br /&gt;
&lt;br /&gt;
* If yes, please store the relevant meaningful information part in the SQL database, using both standard SQL and, where it seems useful, json.&lt;br /&gt;
&lt;br /&gt;
= Conceptnet for basic commonsense knowledge =&lt;br /&gt;
&lt;br /&gt;
Similarly to Quasimodo, explore, and if it makes sense, use [http://conceptnet5.media.mit.edu/ conceptnet]. This contains a lot more than Quasimodo, but does not have as good metainformation (context, plausibility, etc).&lt;br /&gt;
&lt;br /&gt;
In particular,&lt;br /&gt;
&lt;br /&gt;
* Find out if the dataset contains meaningful amount of information about the geographical places (or additional information about the facts about these places) for the sub-part you chose from Yago.&lt;br /&gt;
&lt;br /&gt;
* If yes, please store a significant amout of relevant meaningful information part in the SQL database, using both standard SQL and, where it seems useful, json. Since Conceptnet is big, do not attempt to store all the seemingly relevant information.&lt;/div&gt;</summary>
		<author><name>Radu</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogiad&amp;diff=17450</id>
		<title>Tarkvaratehnoloogiad</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogiad&amp;diff=17450"/>
		<updated>2020-05-06T14:36:24Z</updated>

		<summary type="html">&lt;p&gt;Radu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Pilt:matrix.jpg|left|IT]] --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Ainekood: ITO8020&amp;lt;br&amp;gt;&lt;br /&gt;
Link: http://www.lambda.ee/wiki/tarkvaratehnoloogiad&amp;lt;br&amp;gt;&lt;br /&gt;
Link ÕISi https://ois.ttu.ee/aine/ito8020&amp;lt;br&amp;gt;&lt;br /&gt;
Õppejõud: [http://www.facebook.com/tanel.tammet Tanel Tammet]&amp;lt;br&amp;gt;&lt;br /&gt;
Kontakt: tanel.tammet@ttu.ee, 6203457, ICT 426&amp;lt;br&amp;gt;&lt;br /&gt;
Varasemast: [[Tarkvaratehnoloogiad 2019 aasta arhiiv]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Eksamid ja hindamine&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Eksamid toimuvad sel aastal ainult kaugtööna ja kirjalikult: eksami algusajaks paneb õppejõud küsimused/ülesanded siia wikilehele&lt;br /&gt;
ning kolme tunni jooksul tuleb saata emailiga vastused. Eksamile registeeruda ei ole vaja.&lt;br /&gt;
&lt;br /&gt;
Eksamiajad on järgmised:&lt;br /&gt;
* Kolmapäev, 20 mai, kell 10:00&lt;br /&gt;
* Neljapäev 28 mai, kell 17:00&lt;br /&gt;
* Neljapäev 4 juuni, kell 15:00&lt;br /&gt;
&lt;br /&gt;
Igaüks võib osaleda kas ühel või kahel eksamil oma valitud päevadel. Täiendavaid päevi ehk hilisemaid järeleksameid ei ole.&lt;br /&gt;
&lt;br /&gt;
Nagu algselt planeeritud, annavad praktikumid 40% tulemusest ja eksam 60% (ehk, punktid liidetakse kokku) ja hindeskaalad &lt;br /&gt;
on 50-59 punkti 1, ..., 90-100 punkti 5.&lt;br /&gt;
&lt;br /&gt;
Eksami sisu erineb veidi algselt planeeritust. Küsimused jagunevad nelja liigi vahel:&lt;br /&gt;
* Mikroesseed/seletused a la pool lehekülge õppejõu valitud konkreetsetel teemadel/küsimustel õppematerjalide või kohustusliku kirjanduse seast.&lt;br /&gt;
* Ülesanne pakkuda välja arhitektuuriline ja tehnoloogiline lahendus mingile suhteliselt väikesele tarkvara-loomise probleemile, seda lahendust põhjendada ja tuua välja orienteeruv töömaht lahenduse eri osadele ja võimalikud riski- ning keerukuskohad.&lt;br /&gt;
* Etteantud programmi/päringu/veebilehe jupi toimimise seletamine: siin tulevad ainult praktikumides või kursusematerjalides pikemalt läbikäidud keeltes kirjutatud jupid.&lt;br /&gt;
* Pisiülesanded: veebijupi tegemine ja pisiprogrammi kirjutamine. Õppejõud neid käima ei pane ja vead on lubatud.&lt;br /&gt;
&lt;br /&gt;
Eksamil võib kasutada materjale, arvutit ja googlit. Teiste tudengite või muude inimestega konsulteerimine ei ole lubatud (see on nüüd puhtalt aususe peale).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Praktikumi hinded&amp;lt;/font&amp;gt; ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!kood!!hinne&lt;br /&gt;
|-&lt;br /&gt;
|191887IADM||35&lt;br /&gt;
|-&lt;br /&gt;
|191886IADM||35&lt;br /&gt;
|-&lt;br /&gt;
|191830IADM||31&lt;br /&gt;
|-&lt;br /&gt;
|191845IADM||36&lt;br /&gt;
|-&lt;br /&gt;
|191893IADM||36&lt;br /&gt;
|-&lt;br /&gt;
|191902IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191882IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191869IADM||42&lt;br /&gt;
|-&lt;br /&gt;
|191793IADM||42&lt;br /&gt;
|-&lt;br /&gt;
|191852IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191816IADM||32&lt;br /&gt;
|-&lt;br /&gt;
|191898IADM||32&lt;br /&gt;
|-&lt;br /&gt;
|191889IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191897IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191908IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191788IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191811IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191894IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191934IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191836IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191844IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191835IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191770IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191850IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191822IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191840IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191896IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191891IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191904IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191806IADM||31&lt;br /&gt;
|-&lt;br /&gt;
|191832IADM||31&lt;br /&gt;
|-&lt;br /&gt;
|191795IADM||36&lt;br /&gt;
|-&lt;br /&gt;
|191847IADM||36&lt;br /&gt;
|-&lt;br /&gt;
|191901IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191826IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191853IADM||37&lt;br /&gt;
|-&lt;br /&gt;
|191818IADM||37&lt;br /&gt;
|-&lt;br /&gt;
|191865IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191877IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191782IADM||39&lt;br /&gt;
|-&lt;br /&gt;
|191817IADM||39&lt;br /&gt;
|-&lt;br /&gt;
|191789IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191864IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191905IADM||37&lt;br /&gt;
|-&lt;br /&gt;
|191781IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191885IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|200607IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191787IADM||31&lt;br /&gt;
|-&lt;br /&gt;
|191809IADM||32&lt;br /&gt;
|-&lt;br /&gt;
|191823IADM||32&lt;br /&gt;
|-&lt;br /&gt;
|191849IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191876IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191825IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191831IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191794IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191858IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191777IADM||35&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Õppetöö piiranguajal ==&lt;br /&gt;
&lt;br /&gt;
Viimane praktilise töö sessioon [http://lambda.ee/wiki/Tarkvaratehnoloogia_praktikumide_etapid#5._p.C3.A4ev:_edasiarenduse_planeerimine.2C_vigade_ja_puuduste_parandamine.2C_ettekanne (vaata siit päeva eesmärke)] toimub videokõnena tavalisel planeeritud ajal, kus &lt;br /&gt;
* püüame videosse lülitada korraga võimalikult palju tudengeid: hetkel ei oska öelda, millised tehnilised piirangud võivad tekkida&lt;br /&gt;
* iga grupp teeb ettekande, nagu plaanis&lt;br /&gt;
* saame ettekannet kommenteerida ja arutada, nagu plaanis&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Harjutuspäev 26. märtsil kell 16 ==&lt;br /&gt;
&lt;br /&gt;
Hetkel on käimas Skype lingil https://join.skype.com/opDZxYJUcugu ja kui ei õnnestu, kirjutage palun tanel.tammet@taltech.ee&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB!&amp;lt;/font&amp;gt; Esialgu ei nõustunud Skype link ega Slack töötama: mõlemid ütlesid &amp;quot;expired&amp;quot;. Loodetavasti ülevalolev link nüüd käib ok.&lt;br /&gt;
-&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Videokõne tehnoloogiaks kasutame Skype: palun ühenda selle lingi kaudu:&lt;br /&gt;
&lt;br /&gt;
https://join.skype.com/oCHi7R9GBJmD&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Kui keegi ei ole Skype tükk aega kasutanud, palun uuendage oma Skype ja tehke katseks mõne teise skypekasutajaga videokõne, et heli/pilt käima seadistada.&lt;br /&gt;
&lt;br /&gt;
Enne ettekandeid saab õppejõuga viimase praksi ajal konsulteerida samuti videokõne abil.&lt;br /&gt;
&lt;br /&gt;
Palume grupiliikmetel ühine töö korraldada teile endile mugavamal viisil.&lt;br /&gt;
&lt;br /&gt;
Probleemide korral kirjutage palun tanel.tammet@ttu.ee või radu.prekup@gmail.com.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slacki kanal ==&lt;br /&gt;
&lt;br /&gt;
Liituge Slack jututoaga:&lt;br /&gt;
* [https://join.slack.com/t/taltechtarkva-acc6522/shared_invite/zt-d2xnz3hh-LqNTq9V1dwkxp1YNZv9wVg jututoa link]&lt;br /&gt;
&lt;br /&gt;
== Kursuse eesmärk ja põhimõtted ==&lt;br /&gt;
&lt;br /&gt;
Mõista IT-süsteemide tehnoloogilist konstruktsiooni, arendusvahendeid ja arendusprotsesse. &lt;br /&gt;
&lt;br /&gt;
Saada aru riistvara, tarkvara ja kommunikatsiooniprotokollide ehituse põhiideedest. &lt;br /&gt;
&lt;br /&gt;
Mõista&lt;br /&gt;
* tarkvara peamisi arhitektuurivariante, &lt;br /&gt;
* erinevate programmeerimiskeelte olemust, &lt;br /&gt;
* teekide ja raamistike kasutamise üldisi põhimõtteid,&lt;br /&gt;
* erinevate arendusprotsesside ideid.&lt;br /&gt;
&lt;br /&gt;
Kursuse raames ülikoolis kohapeal loenguid ei toimu: kõik loengud on varasemalt salvestatud videosse,&lt;br /&gt;
ja lisatud presentatsioon, vaata siin lehel allpool.&lt;br /&gt;
&lt;br /&gt;
Kohapealne töö (praktikum/konsultatsioon) on mõeldud eeskätt praktilise arenduskogemuse saamiseks, &lt;br /&gt;
eesmärgiga omaenda katsetuste najal tekitada arusaamine, mismoodi praktiline arendusprotsess toimub,&lt;br /&gt;
mida ja  kuidas standardtehnoloogiatega teha saab, mis on keeruline ja mis lihtne. &lt;br /&gt;
&lt;br /&gt;
Kohapealne praktiline töö eeldab varasemat tutvumist osade allpool toodud teemadega.&lt;br /&gt;
&lt;br /&gt;
Esimeseks praktikumiks oleks väga soovitav vaadata/lugeda läbi allpool materjalid teemadel&lt;br /&gt;
* Veebilehed (tingimata)&lt;br /&gt;
* Programmeerimise sissejuhatus Pythonis (soovitav)&lt;br /&gt;
&lt;br /&gt;
== Praktikumi/konsultatsiooni ajad ==&lt;br /&gt;
&lt;br /&gt;
Eri rühmadel neljapäeviti ja reedeti ruumis ICT-501:&lt;br /&gt;
&lt;br /&gt;
B-rühm (IADM20B) neljapäeviti:&lt;br /&gt;
&lt;br /&gt;
* 30.01.2020 kl 16-20.30&lt;br /&gt;
* 13.02.2020 kl 16-20.30&lt;br /&gt;
* 27.02.2020 kl 16-20.30&lt;br /&gt;
* 12.03.2020 kl 16-20.30&lt;br /&gt;
* 26.03.2020 kl 16-20.30 &lt;br /&gt;
&lt;br /&gt;
A-rühm (IADM20A) reedeti:&lt;br /&gt;
&lt;br /&gt;
* 31.01.2020 kl 15-19.30&lt;br /&gt;
* 14.02.2020 kl 15-19.30&lt;br /&gt;
* 28.02.2020 kl 15-19.30&lt;br /&gt;
* 13.03.2020 kl 15-19.30&lt;br /&gt;
* 27.03.2020 kl 15-19.30&lt;br /&gt;
&lt;br /&gt;
== Praktiline ülesanne ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NB! Esimese praktikumi eel on väga soovitav tutvuda allpool klippide ja materjalidega teemadel &amp;quot;veebilehed&amp;quot; (tingimata)&lt;br /&gt;
ja &amp;quot;programmeerimise sissejuhatus Pythonis&amp;quot; (soovitav)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Kursuse kodu-või-praktikumiülesandeks on (a) reaalse rakenduse planeerimine ja ehitamine, mis kuvab kasutajale veebis mõistetavalt ja otsitavalt ja/või sorteeritavalt mingit reaalset andmestikku, mis on soovitavalt teie enda töökohast pärit. Kui sa sobivat andmestikku oma töökohast ei leia, vali mõni töödeldav ja huvitav andmestik [https://opendata.riik.ee/ eesti avaandmete portaalist], (b) edasiarenduse planeerimine hüpoteetiliseks tellimiseks.&lt;br /&gt;
&lt;br /&gt;
Soovitav on tulemus panna üles avalikku pilveserverisse (soovitus: [http://digitalocean.com digitalocean]) ja kood avalikku koodihoidlasse (soovitus: [http://github.com github]). Alternatiiv on panna tulemus dijkstra serverisse Taltechis.&lt;br /&gt;
&lt;br /&gt;
Github on tasuta, digitalocean annab alustajatele ca 100 USD krediiti ja lisaks on olemas Github student pack, mis sisaldab ca 50 USD digitaloceani krediiti. Rangelt kohustuslik avaliku veebiserveri ja githubi kasutamine ei ole: väiksema arvu punkte saab praktikumist ka siis, kui realiseerid kõik lihtsalt oma arvutis ja ei pane kuhugi üles.&lt;br /&gt;
&lt;br /&gt;
=== Praktikumi töökorraldus ===&lt;br /&gt;
&lt;br /&gt;
Ülesannet võib teha üksi või kahekesi. &lt;br /&gt;
&lt;br /&gt;
Kursuse praktikumipäevadel tegeleme teie projekti realiseerimise etappidega, ning iga etapi/praktikumipäeva lõpuks vaatame üle hetkeseisu ja anname esialgsed hinnangud, kui kaugele on jõutud ja mis on edasised sammud, veidi sarnaselt tüüpiliste agiilse arenduse hetkeseisu-koosolekutega.&lt;br /&gt;
&lt;br /&gt;
Selleks peab iga grupp tegema praktikumipäeva lõpus paariminutise ettekande, kus on öeldud:&lt;br /&gt;
* grupi liikmete nimed&lt;br /&gt;
* mida sel päeval üritati teha ja kuhu jõuti&lt;br /&gt;
* mis on plaan järgmise praktikumikorraga saavutada&lt;br /&gt;
&lt;br /&gt;
Praktikumijuhendaja hindab iga päeva progressi.&lt;br /&gt;
&lt;br /&gt;
Lõpp-presentatsioon viimasel päeval peaks olema pikem, ca viisteist minutit.&lt;br /&gt;
&lt;br /&gt;
Praktikumi kogutulemusest on arvestuslikult ca 50% lõpptulemus ja teine ca 50% esimese nelja päeva tulemused.&lt;br /&gt;
&lt;br /&gt;
=== Praktikumi etapid ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jagame töö etapiviisi viiele praktikumi päevale: nende jaoks on eraldi wikileht:&lt;br /&gt;
&lt;br /&gt;
[[tarkvaratehnoloogia praktikumide etapid]].&lt;br /&gt;
&lt;br /&gt;
== Loengud ja materjalid ==&lt;br /&gt;
&lt;br /&gt;
Loengud on salvestatud youtube klippidena, iga loenguga on seotud presentatsioon ja soovitavad täiendavad materjalid ja lingid.&lt;br /&gt;
&lt;br /&gt;
Videoloengute [https://www.youtube.com/playlist?list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO youtube üldlisti] järjekord on suvaline, kasuta pigem allolevaid linke õiges järjekorras.&lt;br /&gt;
&lt;br /&gt;
=== Sissejuhatus ja põhimõisted ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_sissejuhatus.pptx|Sissejuhatus]] ja [https://www.youtube.com/watch?v=y8wMd-Qy26I&amp;amp;index=21&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media:tt_põhimõisted.ppt|Põhimõisted]] ja [https://www.youtube.com/watch?v=PWM2PU4DiYA&amp;amp;index=2&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video].&lt;br /&gt;
&lt;br /&gt;
=== Kuidas arvuti töötab ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_protsessor.ppt|Protsessor]] ja [https://www.youtube.com/watch?v=dMawoey6TCE&amp;amp;index=3&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Eelmise presentatsiooni lõpuosa ja seejärel [http://skilldrick.github.io/easy6502/ reaalne näide protsessori käskudega]: [https://www.youtube.com/watch?v=vid3W9E_z-w&amp;amp;index=4&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Soovitavalt loe veel:&lt;br /&gt;
* [https://blog.codinghorror.com/the-infinite-space-between-words/ The infinite space between words]&lt;br /&gt;
* [https://news.ycombinator.com/ võibolla peamine arendajate üldhuvi-uudistesait]: loe seda iga päev!&lt;br /&gt;
&lt;br /&gt;
=== Interneti funktsioneerimine ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_interneti_funktsioneerimine_1.ppt|Esimene osa]] ja [https://www.youtube.com/watch?v=kwhGs1kxLvY&amp;amp;index=5&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] &lt;br /&gt;
* [[Media:tt_interneti_funktsioneerimine_2.ppt|Teine osa]] ja [https://www.youtube.com/watch?v=WBxr3aTjNzo&amp;amp;index=6&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
=== Programmeerimise sissejuhatus Pythonis ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_programmeerimise_sissejuhatus.pptx|Programmeerimise sissejuhatus]]: [https://www.youtube.com/watch?v=whyQ6Y9pUvY&amp;amp;t=0s&amp;amp;index=11&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Programmeerimine 2: python [https://www.youtube.com/watch?v=KiXcqKc8MMo&amp;amp;t=0s&amp;amp;index=10&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Programmeerimine 3: tingimused, tsüklid, funktsioonid: [https://www.youtube.com/watch?v=-JNGmN_voBA&amp;amp;t=0s&amp;amp;index=20&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] &lt;br /&gt;
* Programmeerimine 4: failitöötlus [https://www.youtube.com/watch?v=fUWTsE9nfXM&amp;amp;t=0s&amp;amp;index=13&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] ja [[failitöötluse näitekood pythonis]]&lt;br /&gt;
* Programmeerimine 5: andmeimport ja andmete seostamine [https://www.youtube.com/watch?v=xBXvsSeNTpk&amp;amp;t=0s&amp;amp;index=14&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Vajalik Pythoni tarkvara:&lt;br /&gt;
&lt;br /&gt;
* [http://python.org Pythoni põhisait]&lt;br /&gt;
* [https://realpython.com/installing-python/ Päris OK installerimise õpetus]&lt;br /&gt;
* Failid [https://www.python.org/downloads/release/python-381/ võta selle lehe allosast]&lt;br /&gt;
&lt;br /&gt;
Head pikemad õpetused:&lt;br /&gt;
&lt;br /&gt;
* Kõige lihtsam: [https://www.w3schools.com/python/default.asp w3schools python] &lt;br /&gt;
* Veidi keerulisem: [https://docs.python.org/3/tutorial/index.html tutorial pythoni lehel]&lt;br /&gt;
* [https://progeopik.cs.ut.ee Eestikeelne õpik]&lt;br /&gt;
&lt;br /&gt;
Tekstiredaktorid:&lt;br /&gt;
&lt;br /&gt;
* päris rikkalik: [https://code.visualstudio.com/ vs code]&lt;br /&gt;
* keskmiselt rikkalik: [https://atom.io/ atom]&lt;br /&gt;
* üpris minimaalne: [https://notepad-plus-plus.org/ notepad++]&lt;br /&gt;
* eriti minimaalne: [https://www.scintilla.org/SciTE.html scite]&lt;br /&gt;
&lt;br /&gt;
=== Veebilehed ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_veeb.pptx|Sissejuhatus teemasse]]&lt;br /&gt;
* Esimene osa,  html: [https://www.youtube.com/watch?v=tXrYZ7hcF2Y&amp;amp;index=7&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Teine osa, css: [https://www.youtube.com/watch?v=6ACCz9wwLCQ&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO&amp;amp;index=8 video]&lt;br /&gt;
* Kolmas osa, javascript: [https://www.youtube.com/watch?v=ub32ImHktu8&amp;amp;t=0s&amp;amp;index=8&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Kõige paremad veebiehituse õpetused algajale on [https://www.w3schools.com/ w3schools saidil]&lt;br /&gt;
&lt;br /&gt;
Üleüldine peamine küsimuste/vastuste sait on [https://stackoverflow.com/ stackoverflow].&lt;br /&gt;
&lt;br /&gt;
=== Server ja veebirakendus ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_server.pptx|Põhipunktid ja koodinäited]]. &lt;br /&gt;
* Esimene osa, server ja veebiteenus: [https://www.youtube.com/watch?v=z51YWLfbv4Y&amp;amp;t=0s&amp;amp;index=15&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Teine osa, veebirakendus: [https://www.youtube.com/watch?v=lq0WeTzye9I&amp;amp;t=0s&amp;amp;index=19&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Flask server:&lt;br /&gt;
&lt;br /&gt;
* Kasutame Pythoni populaarset micro-frameworki [http://flask.pocoo.org Flask]&lt;br /&gt;
* Sul peab olema Windowsil käsurealt käivitatav python ja pip. pip on levinuim Pythoni moodulite installeerimise-programm.&lt;br /&gt;
* Ütle käsurealt: &amp;lt;tt&amp;gt;pip install flask&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Flask veel ise käima ei lähe: loe presentatsioonist edasi.&lt;br /&gt;
* NB! Kui paned oma flaski abil tehtud serveriprogrammi serverisse tööle, siis viimase asjana kirjuta app.run(debug=True, port=5000, host=&#039;0.0.0.0&#039;) kus on näidetega võrreldes lisaks host=... : see lubab väljapoolt serverit ligi pääseda.&lt;br /&gt;
&lt;br /&gt;
=== Andmebaasiga serverirakenduse ehitamine ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_sql.pptx|Andmebaasid]]&lt;br /&gt;
&lt;br /&gt;
* Andmebaasid ja SQL [https://www.youtube.com/watch?v=K8yQrsDy2dc&amp;amp;t=0s&amp;amp;index=18&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Serverirakendus ja SQL 1. osa [https://www.youtube.com/watch?v=4CZ5LuWGQJc&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO&amp;amp;index=16 video]&lt;br /&gt;
* Serverirakendus ja SQL 2. osa [https://www.youtube.com/watch?v=nrazU1aKLzI&amp;amp;t=0s&amp;amp;index=16&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Soovitavalt uuri veidi: [https://www.w3schools.com/sql/sql_intro.asp w3schools SQL tutorial]&lt;br /&gt;
* Näited:&lt;br /&gt;
**[[sql insert-lausete näited andmete sisestamiseks|Tabelite tegemise ja andmete sisestamise näited]]&lt;br /&gt;
** [[sqlite andmebaasi tegemine ja kasutamine Pythonist]]&lt;br /&gt;
** [[blogiprogramm]]&lt;br /&gt;
&lt;br /&gt;
=== Tehisintellekt ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_tehisintellekt.pptx|Tehisintellekt]] ja [https://www.youtube.com/watch?v=USEUHWOwX8Q&amp;amp;t=0s&amp;amp;index=22&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Soovitavalt vaata ja loe lisaks:&lt;br /&gt;
&lt;br /&gt;
* Boston Dynamics [http://www.youtube.com/watch?v=ae06LFa3i38 robot donkey (aka big dog) varane], [http://www.youtube.com/watch?v=BtRnzlO7m_M big dog praegu], [http://www.youtube.com/watch?v=chPanW0QWhA Cheetah], [http://www.youtube.com/watch?v=wE3fmFTtP9g Wildcat],[http://www.youtube.com/watch?v=tFrjrgBV8K0 Petman], [http://www.youtube.com/watch?v=SD6Okylclb8 Atlas]&lt;br /&gt;
&amp;lt;!-- * [https://www.tastehit.com/blog/google-deepmind-alphago-how-it-works/ Kuidas AlphaGo töötab] --&amp;gt;&lt;br /&gt;
* Darpa [http://en.wikipedia.org/wiki/DARPA_Grand_Challenge grand challenge 2005] ja [http://archive.darpa.mil/grandchallenge/ urban challenge]&lt;br /&gt;
* [http://idlewords.com/talks/superintelligence.htm Miks mitte karta super-tehisintellekti]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Rodney_Brooks Rodney Brooksi] väike tehisintellekti-sari [https://rodneybrooks.com/forai-steps-toward-super-intelligence-ii-beyond-the-turing-test/ osa 1], [https://rodneybrooks.com/forai-steps-toward-super-intelligence-ii-beyond-the-turing-test/ osa 2], [https://rodneybrooks.com/forai-steps-toward-super-intelligence-iii-hard-things-today/ osa 3],  [https://rodneybrooks.com/forai-steps-toward-super-intelligence-iv-things-to-work-on-now/ osa 4]&lt;br /&gt;
&amp;lt;!-- õppejõu pikem [https://www.youtube.com/watch?v=ftYrfTo_W2E  tehisintellektiteemaline vestlus] &amp;quot;intrigeeriva pärastlõuna&amp;quot; podcastisarjas. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Arendusvahendid, programmeerimiskeeled ja arhitektuur ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_arendusvahendid.pptx|Arendusvahendid]] [https://www.youtube.com/watch?v=zHGPqdft8yk&amp;amp;t=0s&amp;amp;index=25&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media: tt_programmeerimiskeeled.pptx|Programmeerimiskeeled]] [https://www.youtube.com/watch?v=4INtjYLmQeI&amp;amp;t=0s&amp;amp;index=24&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media:tt_arhitektuur.pptx|Arhitektuur]]: [https://www.youtube.com/watch?v=NOr9mGXOL5c&amp;amp;t=0s&amp;amp;index=27&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video esimene osa] ja [https://www.youtube.com/watch?v=OWnPJ_Xcw1M&amp;amp;t=402s&amp;amp;index=23&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video teine osa]&lt;br /&gt;
&lt;br /&gt;
=== Arendusprotsess ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_arendusprotsess.pptx|Arendusprotsess]] ja [https://www.youtube.com/watch?v=_GERtMiNcX4&amp;amp;t=0s&amp;amp;index=26&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Loe (pikemad sirvi) need arendusprotsessiga seotud artiklid kursuse käigus läbi. Nende kõigi kohta võidakse eksamil küsida lugemiskontrolli-küsimusi.&lt;br /&gt;
&lt;br /&gt;
* Paul Graham [http://paulgraham.com/hp.html Hackers and painters]&lt;br /&gt;
* Paul Graham: [http://www.paulgraham.com/start.html How to start a startup?]&lt;br /&gt;
* Paul Graham: [http://www.paulgraham.com/gh.html Great hackers]&lt;br /&gt;
* Joel Spolsky: [https://www.joelonsoftware.com/2002/02/13/the-iceberg-secret-revealed/ The iceberg secret revealed]&lt;br /&gt;
* Joel Spolsky: [http://www.joelonsoftware.com/articles/fog0000000043.html IT firma töökorraldus: 12 sammu]&lt;br /&gt;
* [https://agilemanifesto.org/ Agiilarenduse manifest] ja [https://agilemanifesto.org/principles.html selle lisapunktid]&lt;br /&gt;
* Paul Reeves: [http://www.developerdotstar.com/mag/articles/reeves_design.html What is software design?] vana artikkel ja [http://www.developerdotstar.com/mag/articles/reeves_13yearslater.html What Is Software Design: 13 Years Later]&lt;br /&gt;
* Gnu manifest [http://www.gnu.org/philosophy/free-sw.html The Free Software Definition] ja [https://www.gnu.org/licenses/license-list.en.html Gnu ülevaade litsentsidest]&lt;br /&gt;
* Fred Brooks 1986: [http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBullet.html No Silver Bullet]&lt;br /&gt;
* [https://zwischenzugs.com/2017/10/15/my-20-year-experience-of-software-development-methodologies/ 20 aastat kogemust tarkvara arendusmeetoditega]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Kursus]]&lt;/div&gt;</summary>
		<author><name>Radu</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogiad&amp;diff=17449</id>
		<title>Tarkvaratehnoloogiad</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogiad&amp;diff=17449"/>
		<updated>2020-05-06T13:16:39Z</updated>

		<summary type="html">&lt;p&gt;Radu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Pilt:matrix.jpg|left|IT]] --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Ainekood: ITO8020&amp;lt;br&amp;gt;&lt;br /&gt;
Link: http://www.lambda.ee/wiki/tarkvaratehnoloogiad&amp;lt;br&amp;gt;&lt;br /&gt;
Link ÕISi https://ois.ttu.ee/aine/ito8020&amp;lt;br&amp;gt;&lt;br /&gt;
Õppejõud: [http://www.facebook.com/tanel.tammet Tanel Tammet]&amp;lt;br&amp;gt;&lt;br /&gt;
Kontakt: tanel.tammet@ttu.ee, 6203457, ICT 426&amp;lt;br&amp;gt;&lt;br /&gt;
Varasemast: [[Tarkvaratehnoloogiad 2019 aasta arhiiv]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Eksamid ja hindamine&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Eksamid toimuvad sel aastal ainult kaugtööna ja kirjalikult: eksami algusajaks paneb õppejõud küsimused/ülesanded siia wikilehele&lt;br /&gt;
ning kolme tunni jooksul tuleb saata emailiga vastused. Eksamile registeeruda ei ole vaja.&lt;br /&gt;
&lt;br /&gt;
Eksamiajad on järgmised:&lt;br /&gt;
* Kolmapäev, 20 mai, kell 10:00&lt;br /&gt;
* Neljapäev 28 mai, kell 17:00&lt;br /&gt;
* Neljapäev 4 juuni, kell 15:00&lt;br /&gt;
&lt;br /&gt;
Igaüks võib osaleda kas ühel või kahel eksamil oma valitud päevadel. Täiendavaid päevi ehk hilisemaid järeleksameid ei ole.&lt;br /&gt;
&lt;br /&gt;
Nagu algselt planeeritud, annavad praktikumid 40% tulemusest ja eksam 60% (ehk, punktid liidetakse kokku) ja hindeskaalad &lt;br /&gt;
on 50-59 punkti 1, ..., 90-100 punkti 5.&lt;br /&gt;
&lt;br /&gt;
Eksami sisu erineb veidi algselt planeeritust. Küsimused jagunevad nelja liigi vahel:&lt;br /&gt;
* Mikroesseed/seletused a la pool lehekülge õppejõu valitud konkreetsetel teemadel/küsimustel õppematerjalide või kohustusliku kirjanduse seast.&lt;br /&gt;
* Ülesanne pakkuda välja arhitektuuriline ja tehnoloogiline lahendus mingile suhteliselt väikesele tarkvara-loomise probleemile, seda lahendust põhjendada ja tuua välja orienteeruv töömaht lahenduse eri osadele ja võimalikud riski- ning keerukuskohad.&lt;br /&gt;
* Etteantud programmi/päringu/veebilehe jupi toimimise seletamine: siin tulevad ainult praktikumides või kursusematerjalides pikemalt läbikäidud keeltes kirjutatud jupid.&lt;br /&gt;
* Pisiülesanded: veebijupi tegemine ja pisiprogrammi kirjutamine. Õppejõud neid käima ei pane ja vead on lubatud.&lt;br /&gt;
&lt;br /&gt;
Eksamil võib kasutada materjale, arvutit ja googlit. Teiste tudengite või muude inimestega konsulteerimine ei ole lubatud (see on nüüd puhtalt aususe peale).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Praktikumi hinded&amp;lt;/font&amp;gt; ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!kood!!hinne&lt;br /&gt;
|-&lt;br /&gt;
|191816IADM||35&lt;br /&gt;
|-&lt;br /&gt;
|191886IADM||35&lt;br /&gt;
|-&lt;br /&gt;
|191830IADM||31&lt;br /&gt;
|-&lt;br /&gt;
|191845IADM||36&lt;br /&gt;
|-&lt;br /&gt;
|191893IADM||36&lt;br /&gt;
|-&lt;br /&gt;
|191902IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191882IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191869IADM||42&lt;br /&gt;
|-&lt;br /&gt;
|191793IADM||42&lt;br /&gt;
|-&lt;br /&gt;
|191852IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191816IADM||32&lt;br /&gt;
|-&lt;br /&gt;
|191898IADM||32&lt;br /&gt;
|-&lt;br /&gt;
|191889IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191897IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191908IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191788IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191811IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191894IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191934IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191836IADM||35&lt;br /&gt;
|-&lt;br /&gt;
|191844IADM||35&lt;br /&gt;
|-&lt;br /&gt;
|191835IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191770IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191850IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191822IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191840IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191896IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191891IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191904IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191806IADM||31&lt;br /&gt;
|-&lt;br /&gt;
|191832IADM||31&lt;br /&gt;
|-&lt;br /&gt;
|191795IADM||36&lt;br /&gt;
|-&lt;br /&gt;
|191847IADM||36&lt;br /&gt;
|-&lt;br /&gt;
|191901IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191826IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191853IADM||37&lt;br /&gt;
|-&lt;br /&gt;
|191818IADM||37&lt;br /&gt;
|-&lt;br /&gt;
|191865IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191877IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191782IADM||39&lt;br /&gt;
|-&lt;br /&gt;
|191817IADM||39&lt;br /&gt;
|-&lt;br /&gt;
|191789IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191864IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191905IADM||37&lt;br /&gt;
|-&lt;br /&gt;
|191781IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191885IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|200607IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191787IADM||31&lt;br /&gt;
|-&lt;br /&gt;
|191809IADM||32&lt;br /&gt;
|-&lt;br /&gt;
|191823IADM||32&lt;br /&gt;
|-&lt;br /&gt;
|191849IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191876IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191825IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191831IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191794IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191858IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191777IADM||35&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Õppetöö piiranguajal ==&lt;br /&gt;
&lt;br /&gt;
Viimane praktilise töö sessioon [http://lambda.ee/wiki/Tarkvaratehnoloogia_praktikumide_etapid#5._p.C3.A4ev:_edasiarenduse_planeerimine.2C_vigade_ja_puuduste_parandamine.2C_ettekanne (vaata siit päeva eesmärke)] toimub videokõnena tavalisel planeeritud ajal, kus &lt;br /&gt;
* püüame videosse lülitada korraga võimalikult palju tudengeid: hetkel ei oska öelda, millised tehnilised piirangud võivad tekkida&lt;br /&gt;
* iga grupp teeb ettekande, nagu plaanis&lt;br /&gt;
* saame ettekannet kommenteerida ja arutada, nagu plaanis&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Harjutuspäev 26. märtsil kell 16 ==&lt;br /&gt;
&lt;br /&gt;
Hetkel on käimas Skype lingil https://join.skype.com/opDZxYJUcugu ja kui ei õnnestu, kirjutage palun tanel.tammet@taltech.ee&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB!&amp;lt;/font&amp;gt; Esialgu ei nõustunud Skype link ega Slack töötama: mõlemid ütlesid &amp;quot;expired&amp;quot;. Loodetavasti ülevalolev link nüüd käib ok.&lt;br /&gt;
-&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Videokõne tehnoloogiaks kasutame Skype: palun ühenda selle lingi kaudu:&lt;br /&gt;
&lt;br /&gt;
https://join.skype.com/oCHi7R9GBJmD&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Kui keegi ei ole Skype tükk aega kasutanud, palun uuendage oma Skype ja tehke katseks mõne teise skypekasutajaga videokõne, et heli/pilt käima seadistada.&lt;br /&gt;
&lt;br /&gt;
Enne ettekandeid saab õppejõuga viimase praksi ajal konsulteerida samuti videokõne abil.&lt;br /&gt;
&lt;br /&gt;
Palume grupiliikmetel ühine töö korraldada teile endile mugavamal viisil.&lt;br /&gt;
&lt;br /&gt;
Probleemide korral kirjutage palun tanel.tammet@ttu.ee või radu.prekup@gmail.com.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slacki kanal ==&lt;br /&gt;
&lt;br /&gt;
Liituge Slack jututoaga:&lt;br /&gt;
* [https://join.slack.com/t/taltechtarkva-acc6522/shared_invite/zt-d2xnz3hh-LqNTq9V1dwkxp1YNZv9wVg jututoa link]&lt;br /&gt;
&lt;br /&gt;
== Kursuse eesmärk ja põhimõtted ==&lt;br /&gt;
&lt;br /&gt;
Mõista IT-süsteemide tehnoloogilist konstruktsiooni, arendusvahendeid ja arendusprotsesse. &lt;br /&gt;
&lt;br /&gt;
Saada aru riistvara, tarkvara ja kommunikatsiooniprotokollide ehituse põhiideedest. &lt;br /&gt;
&lt;br /&gt;
Mõista&lt;br /&gt;
* tarkvara peamisi arhitektuurivariante, &lt;br /&gt;
* erinevate programmeerimiskeelte olemust, &lt;br /&gt;
* teekide ja raamistike kasutamise üldisi põhimõtteid,&lt;br /&gt;
* erinevate arendusprotsesside ideid.&lt;br /&gt;
&lt;br /&gt;
Kursuse raames ülikoolis kohapeal loenguid ei toimu: kõik loengud on varasemalt salvestatud videosse,&lt;br /&gt;
ja lisatud presentatsioon, vaata siin lehel allpool.&lt;br /&gt;
&lt;br /&gt;
Kohapealne töö (praktikum/konsultatsioon) on mõeldud eeskätt praktilise arenduskogemuse saamiseks, &lt;br /&gt;
eesmärgiga omaenda katsetuste najal tekitada arusaamine, mismoodi praktiline arendusprotsess toimub,&lt;br /&gt;
mida ja  kuidas standardtehnoloogiatega teha saab, mis on keeruline ja mis lihtne. &lt;br /&gt;
&lt;br /&gt;
Kohapealne praktiline töö eeldab varasemat tutvumist osade allpool toodud teemadega.&lt;br /&gt;
&lt;br /&gt;
Esimeseks praktikumiks oleks väga soovitav vaadata/lugeda läbi allpool materjalid teemadel&lt;br /&gt;
* Veebilehed (tingimata)&lt;br /&gt;
* Programmeerimise sissejuhatus Pythonis (soovitav)&lt;br /&gt;
&lt;br /&gt;
== Praktikumi/konsultatsiooni ajad ==&lt;br /&gt;
&lt;br /&gt;
Eri rühmadel neljapäeviti ja reedeti ruumis ICT-501:&lt;br /&gt;
&lt;br /&gt;
B-rühm (IADM20B) neljapäeviti:&lt;br /&gt;
&lt;br /&gt;
* 30.01.2020 kl 16-20.30&lt;br /&gt;
* 13.02.2020 kl 16-20.30&lt;br /&gt;
* 27.02.2020 kl 16-20.30&lt;br /&gt;
* 12.03.2020 kl 16-20.30&lt;br /&gt;
* 26.03.2020 kl 16-20.30 &lt;br /&gt;
&lt;br /&gt;
A-rühm (IADM20A) reedeti:&lt;br /&gt;
&lt;br /&gt;
* 31.01.2020 kl 15-19.30&lt;br /&gt;
* 14.02.2020 kl 15-19.30&lt;br /&gt;
* 28.02.2020 kl 15-19.30&lt;br /&gt;
* 13.03.2020 kl 15-19.30&lt;br /&gt;
* 27.03.2020 kl 15-19.30&lt;br /&gt;
&lt;br /&gt;
== Praktiline ülesanne ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NB! Esimese praktikumi eel on väga soovitav tutvuda allpool klippide ja materjalidega teemadel &amp;quot;veebilehed&amp;quot; (tingimata)&lt;br /&gt;
ja &amp;quot;programmeerimise sissejuhatus Pythonis&amp;quot; (soovitav)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Kursuse kodu-või-praktikumiülesandeks on (a) reaalse rakenduse planeerimine ja ehitamine, mis kuvab kasutajale veebis mõistetavalt ja otsitavalt ja/või sorteeritavalt mingit reaalset andmestikku, mis on soovitavalt teie enda töökohast pärit. Kui sa sobivat andmestikku oma töökohast ei leia, vali mõni töödeldav ja huvitav andmestik [https://opendata.riik.ee/ eesti avaandmete portaalist], (b) edasiarenduse planeerimine hüpoteetiliseks tellimiseks.&lt;br /&gt;
&lt;br /&gt;
Soovitav on tulemus panna üles avalikku pilveserverisse (soovitus: [http://digitalocean.com digitalocean]) ja kood avalikku koodihoidlasse (soovitus: [http://github.com github]). Alternatiiv on panna tulemus dijkstra serverisse Taltechis.&lt;br /&gt;
&lt;br /&gt;
Github on tasuta, digitalocean annab alustajatele ca 100 USD krediiti ja lisaks on olemas Github student pack, mis sisaldab ca 50 USD digitaloceani krediiti. Rangelt kohustuslik avaliku veebiserveri ja githubi kasutamine ei ole: väiksema arvu punkte saab praktikumist ka siis, kui realiseerid kõik lihtsalt oma arvutis ja ei pane kuhugi üles.&lt;br /&gt;
&lt;br /&gt;
=== Praktikumi töökorraldus ===&lt;br /&gt;
&lt;br /&gt;
Ülesannet võib teha üksi või kahekesi. &lt;br /&gt;
&lt;br /&gt;
Kursuse praktikumipäevadel tegeleme teie projekti realiseerimise etappidega, ning iga etapi/praktikumipäeva lõpuks vaatame üle hetkeseisu ja anname esialgsed hinnangud, kui kaugele on jõutud ja mis on edasised sammud, veidi sarnaselt tüüpiliste agiilse arenduse hetkeseisu-koosolekutega.&lt;br /&gt;
&lt;br /&gt;
Selleks peab iga grupp tegema praktikumipäeva lõpus paariminutise ettekande, kus on öeldud:&lt;br /&gt;
* grupi liikmete nimed&lt;br /&gt;
* mida sel päeval üritati teha ja kuhu jõuti&lt;br /&gt;
* mis on plaan järgmise praktikumikorraga saavutada&lt;br /&gt;
&lt;br /&gt;
Praktikumijuhendaja hindab iga päeva progressi.&lt;br /&gt;
&lt;br /&gt;
Lõpp-presentatsioon viimasel päeval peaks olema pikem, ca viisteist minutit.&lt;br /&gt;
&lt;br /&gt;
Praktikumi kogutulemusest on arvestuslikult ca 50% lõpptulemus ja teine ca 50% esimese nelja päeva tulemused.&lt;br /&gt;
&lt;br /&gt;
=== Praktikumi etapid ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jagame töö etapiviisi viiele praktikumi päevale: nende jaoks on eraldi wikileht:&lt;br /&gt;
&lt;br /&gt;
[[tarkvaratehnoloogia praktikumide etapid]].&lt;br /&gt;
&lt;br /&gt;
== Loengud ja materjalid ==&lt;br /&gt;
&lt;br /&gt;
Loengud on salvestatud youtube klippidena, iga loenguga on seotud presentatsioon ja soovitavad täiendavad materjalid ja lingid.&lt;br /&gt;
&lt;br /&gt;
Videoloengute [https://www.youtube.com/playlist?list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO youtube üldlisti] järjekord on suvaline, kasuta pigem allolevaid linke õiges järjekorras.&lt;br /&gt;
&lt;br /&gt;
=== Sissejuhatus ja põhimõisted ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_sissejuhatus.pptx|Sissejuhatus]] ja [https://www.youtube.com/watch?v=y8wMd-Qy26I&amp;amp;index=21&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media:tt_põhimõisted.ppt|Põhimõisted]] ja [https://www.youtube.com/watch?v=PWM2PU4DiYA&amp;amp;index=2&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video].&lt;br /&gt;
&lt;br /&gt;
=== Kuidas arvuti töötab ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_protsessor.ppt|Protsessor]] ja [https://www.youtube.com/watch?v=dMawoey6TCE&amp;amp;index=3&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Eelmise presentatsiooni lõpuosa ja seejärel [http://skilldrick.github.io/easy6502/ reaalne näide protsessori käskudega]: [https://www.youtube.com/watch?v=vid3W9E_z-w&amp;amp;index=4&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Soovitavalt loe veel:&lt;br /&gt;
* [https://blog.codinghorror.com/the-infinite-space-between-words/ The infinite space between words]&lt;br /&gt;
* [https://news.ycombinator.com/ võibolla peamine arendajate üldhuvi-uudistesait]: loe seda iga päev!&lt;br /&gt;
&lt;br /&gt;
=== Interneti funktsioneerimine ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_interneti_funktsioneerimine_1.ppt|Esimene osa]] ja [https://www.youtube.com/watch?v=kwhGs1kxLvY&amp;amp;index=5&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] &lt;br /&gt;
* [[Media:tt_interneti_funktsioneerimine_2.ppt|Teine osa]] ja [https://www.youtube.com/watch?v=WBxr3aTjNzo&amp;amp;index=6&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
=== Programmeerimise sissejuhatus Pythonis ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_programmeerimise_sissejuhatus.pptx|Programmeerimise sissejuhatus]]: [https://www.youtube.com/watch?v=whyQ6Y9pUvY&amp;amp;t=0s&amp;amp;index=11&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Programmeerimine 2: python [https://www.youtube.com/watch?v=KiXcqKc8MMo&amp;amp;t=0s&amp;amp;index=10&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Programmeerimine 3: tingimused, tsüklid, funktsioonid: [https://www.youtube.com/watch?v=-JNGmN_voBA&amp;amp;t=0s&amp;amp;index=20&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] &lt;br /&gt;
* Programmeerimine 4: failitöötlus [https://www.youtube.com/watch?v=fUWTsE9nfXM&amp;amp;t=0s&amp;amp;index=13&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] ja [[failitöötluse näitekood pythonis]]&lt;br /&gt;
* Programmeerimine 5: andmeimport ja andmete seostamine [https://www.youtube.com/watch?v=xBXvsSeNTpk&amp;amp;t=0s&amp;amp;index=14&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Vajalik Pythoni tarkvara:&lt;br /&gt;
&lt;br /&gt;
* [http://python.org Pythoni põhisait]&lt;br /&gt;
* [https://realpython.com/installing-python/ Päris OK installerimise õpetus]&lt;br /&gt;
* Failid [https://www.python.org/downloads/release/python-381/ võta selle lehe allosast]&lt;br /&gt;
&lt;br /&gt;
Head pikemad õpetused:&lt;br /&gt;
&lt;br /&gt;
* Kõige lihtsam: [https://www.w3schools.com/python/default.asp w3schools python] &lt;br /&gt;
* Veidi keerulisem: [https://docs.python.org/3/tutorial/index.html tutorial pythoni lehel]&lt;br /&gt;
* [https://progeopik.cs.ut.ee Eestikeelne õpik]&lt;br /&gt;
&lt;br /&gt;
Tekstiredaktorid:&lt;br /&gt;
&lt;br /&gt;
* päris rikkalik: [https://code.visualstudio.com/ vs code]&lt;br /&gt;
* keskmiselt rikkalik: [https://atom.io/ atom]&lt;br /&gt;
* üpris minimaalne: [https://notepad-plus-plus.org/ notepad++]&lt;br /&gt;
* eriti minimaalne: [https://www.scintilla.org/SciTE.html scite]&lt;br /&gt;
&lt;br /&gt;
=== Veebilehed ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_veeb.pptx|Sissejuhatus teemasse]]&lt;br /&gt;
* Esimene osa,  html: [https://www.youtube.com/watch?v=tXrYZ7hcF2Y&amp;amp;index=7&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Teine osa, css: [https://www.youtube.com/watch?v=6ACCz9wwLCQ&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO&amp;amp;index=8 video]&lt;br /&gt;
* Kolmas osa, javascript: [https://www.youtube.com/watch?v=ub32ImHktu8&amp;amp;t=0s&amp;amp;index=8&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Kõige paremad veebiehituse õpetused algajale on [https://www.w3schools.com/ w3schools saidil]&lt;br /&gt;
&lt;br /&gt;
Üleüldine peamine küsimuste/vastuste sait on [https://stackoverflow.com/ stackoverflow].&lt;br /&gt;
&lt;br /&gt;
=== Server ja veebirakendus ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_server.pptx|Põhipunktid ja koodinäited]]. &lt;br /&gt;
* Esimene osa, server ja veebiteenus: [https://www.youtube.com/watch?v=z51YWLfbv4Y&amp;amp;t=0s&amp;amp;index=15&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Teine osa, veebirakendus: [https://www.youtube.com/watch?v=lq0WeTzye9I&amp;amp;t=0s&amp;amp;index=19&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Flask server:&lt;br /&gt;
&lt;br /&gt;
* Kasutame Pythoni populaarset micro-frameworki [http://flask.pocoo.org Flask]&lt;br /&gt;
* Sul peab olema Windowsil käsurealt käivitatav python ja pip. pip on levinuim Pythoni moodulite installeerimise-programm.&lt;br /&gt;
* Ütle käsurealt: &amp;lt;tt&amp;gt;pip install flask&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Flask veel ise käima ei lähe: loe presentatsioonist edasi.&lt;br /&gt;
* NB! Kui paned oma flaski abil tehtud serveriprogrammi serverisse tööle, siis viimase asjana kirjuta app.run(debug=True, port=5000, host=&#039;0.0.0.0&#039;) kus on näidetega võrreldes lisaks host=... : see lubab väljapoolt serverit ligi pääseda.&lt;br /&gt;
&lt;br /&gt;
=== Andmebaasiga serverirakenduse ehitamine ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_sql.pptx|Andmebaasid]]&lt;br /&gt;
&lt;br /&gt;
* Andmebaasid ja SQL [https://www.youtube.com/watch?v=K8yQrsDy2dc&amp;amp;t=0s&amp;amp;index=18&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Serverirakendus ja SQL 1. osa [https://www.youtube.com/watch?v=4CZ5LuWGQJc&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO&amp;amp;index=16 video]&lt;br /&gt;
* Serverirakendus ja SQL 2. osa [https://www.youtube.com/watch?v=nrazU1aKLzI&amp;amp;t=0s&amp;amp;index=16&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Soovitavalt uuri veidi: [https://www.w3schools.com/sql/sql_intro.asp w3schools SQL tutorial]&lt;br /&gt;
* Näited:&lt;br /&gt;
**[[sql insert-lausete näited andmete sisestamiseks|Tabelite tegemise ja andmete sisestamise näited]]&lt;br /&gt;
** [[sqlite andmebaasi tegemine ja kasutamine Pythonist]]&lt;br /&gt;
** [[blogiprogramm]]&lt;br /&gt;
&lt;br /&gt;
=== Tehisintellekt ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_tehisintellekt.pptx|Tehisintellekt]] ja [https://www.youtube.com/watch?v=USEUHWOwX8Q&amp;amp;t=0s&amp;amp;index=22&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Soovitavalt vaata ja loe lisaks:&lt;br /&gt;
&lt;br /&gt;
* Boston Dynamics [http://www.youtube.com/watch?v=ae06LFa3i38 robot donkey (aka big dog) varane], [http://www.youtube.com/watch?v=BtRnzlO7m_M big dog praegu], [http://www.youtube.com/watch?v=chPanW0QWhA Cheetah], [http://www.youtube.com/watch?v=wE3fmFTtP9g Wildcat],[http://www.youtube.com/watch?v=tFrjrgBV8K0 Petman], [http://www.youtube.com/watch?v=SD6Okylclb8 Atlas]&lt;br /&gt;
&amp;lt;!-- * [https://www.tastehit.com/blog/google-deepmind-alphago-how-it-works/ Kuidas AlphaGo töötab] --&amp;gt;&lt;br /&gt;
* Darpa [http://en.wikipedia.org/wiki/DARPA_Grand_Challenge grand challenge 2005] ja [http://archive.darpa.mil/grandchallenge/ urban challenge]&lt;br /&gt;
* [http://idlewords.com/talks/superintelligence.htm Miks mitte karta super-tehisintellekti]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Rodney_Brooks Rodney Brooksi] väike tehisintellekti-sari [https://rodneybrooks.com/forai-steps-toward-super-intelligence-ii-beyond-the-turing-test/ osa 1], [https://rodneybrooks.com/forai-steps-toward-super-intelligence-ii-beyond-the-turing-test/ osa 2], [https://rodneybrooks.com/forai-steps-toward-super-intelligence-iii-hard-things-today/ osa 3],  [https://rodneybrooks.com/forai-steps-toward-super-intelligence-iv-things-to-work-on-now/ osa 4]&lt;br /&gt;
&amp;lt;!-- õppejõu pikem [https://www.youtube.com/watch?v=ftYrfTo_W2E  tehisintellektiteemaline vestlus] &amp;quot;intrigeeriva pärastlõuna&amp;quot; podcastisarjas. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Arendusvahendid, programmeerimiskeeled ja arhitektuur ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_arendusvahendid.pptx|Arendusvahendid]] [https://www.youtube.com/watch?v=zHGPqdft8yk&amp;amp;t=0s&amp;amp;index=25&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media: tt_programmeerimiskeeled.pptx|Programmeerimiskeeled]] [https://www.youtube.com/watch?v=4INtjYLmQeI&amp;amp;t=0s&amp;amp;index=24&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media:tt_arhitektuur.pptx|Arhitektuur]]: [https://www.youtube.com/watch?v=NOr9mGXOL5c&amp;amp;t=0s&amp;amp;index=27&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video esimene osa] ja [https://www.youtube.com/watch?v=OWnPJ_Xcw1M&amp;amp;t=402s&amp;amp;index=23&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video teine osa]&lt;br /&gt;
&lt;br /&gt;
=== Arendusprotsess ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_arendusprotsess.pptx|Arendusprotsess]] ja [https://www.youtube.com/watch?v=_GERtMiNcX4&amp;amp;t=0s&amp;amp;index=26&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Loe (pikemad sirvi) need arendusprotsessiga seotud artiklid kursuse käigus läbi. Nende kõigi kohta võidakse eksamil küsida lugemiskontrolli-küsimusi.&lt;br /&gt;
&lt;br /&gt;
* Paul Graham [http://paulgraham.com/hp.html Hackers and painters]&lt;br /&gt;
* Paul Graham: [http://www.paulgraham.com/start.html How to start a startup?]&lt;br /&gt;
* Paul Graham: [http://www.paulgraham.com/gh.html Great hackers]&lt;br /&gt;
* Joel Spolsky: [https://www.joelonsoftware.com/2002/02/13/the-iceberg-secret-revealed/ The iceberg secret revealed]&lt;br /&gt;
* Joel Spolsky: [http://www.joelonsoftware.com/articles/fog0000000043.html IT firma töökorraldus: 12 sammu]&lt;br /&gt;
* [https://agilemanifesto.org/ Agiilarenduse manifest] ja [https://agilemanifesto.org/principles.html selle lisapunktid]&lt;br /&gt;
* Paul Reeves: [http://www.developerdotstar.com/mag/articles/reeves_design.html What is software design?] vana artikkel ja [http://www.developerdotstar.com/mag/articles/reeves_13yearslater.html What Is Software Design: 13 Years Later]&lt;br /&gt;
* Gnu manifest [http://www.gnu.org/philosophy/free-sw.html The Free Software Definition] ja [https://www.gnu.org/licenses/license-list.en.html Gnu ülevaade litsentsidest]&lt;br /&gt;
* Fred Brooks 1986: [http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBullet.html No Silver Bullet]&lt;br /&gt;
* [https://zwischenzugs.com/2017/10/15/my-20-year-experience-of-software-development-methodologies/ 20 aastat kogemust tarkvara arendusmeetoditega]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Kursus]]&lt;/div&gt;</summary>
		<author><name>Radu</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogiad&amp;diff=17448</id>
		<title>Tarkvaratehnoloogiad</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogiad&amp;diff=17448"/>
		<updated>2020-05-06T13:16:06Z</updated>

		<summary type="html">&lt;p&gt;Radu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Pilt:matrix.jpg|left|IT]] --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Ainekood: ITO8020&amp;lt;br&amp;gt;&lt;br /&gt;
Link: http://www.lambda.ee/wiki/tarkvaratehnoloogiad&amp;lt;br&amp;gt;&lt;br /&gt;
Link ÕISi https://ois.ttu.ee/aine/ito8020&amp;lt;br&amp;gt;&lt;br /&gt;
Õppejõud: [http://www.facebook.com/tanel.tammet Tanel Tammet]&amp;lt;br&amp;gt;&lt;br /&gt;
Kontakt: tanel.tammet@ttu.ee, 6203457, ICT 426&amp;lt;br&amp;gt;&lt;br /&gt;
Varasemast: [[Tarkvaratehnoloogiad 2019 aasta arhiiv]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Eksamid ja hindamine&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Eksamid toimuvad sel aastal ainult kaugtööna ja kirjalikult: eksami algusajaks paneb õppejõud küsimused/ülesanded siia wikilehele&lt;br /&gt;
ning kolme tunni jooksul tuleb saata emailiga vastused. Eksamile registeeruda ei ole vaja.&lt;br /&gt;
&lt;br /&gt;
Eksamiajad on järgmised:&lt;br /&gt;
* Kolmapäev, 20 mai, kell 10:00&lt;br /&gt;
* Neljapäev 28 mai, kell 17:00&lt;br /&gt;
* Neljapäev 4 juuni, kell 15:00&lt;br /&gt;
&lt;br /&gt;
Igaüks võib osaleda kas ühel või kahel eksamil oma valitud päevadel. Täiendavaid päevi ehk hilisemaid järeleksameid ei ole.&lt;br /&gt;
&lt;br /&gt;
Nagu algselt planeeritud, annavad praktikumid 40% tulemusest ja eksam 60% (ehk, punktid liidetakse kokku) ja hindeskaalad &lt;br /&gt;
on 50-59 punkti 1, ..., 90-100 punkti 5.&lt;br /&gt;
&lt;br /&gt;
Eksami sisu erineb veidi algselt planeeritust. Küsimused jagunevad nelja liigi vahel:&lt;br /&gt;
* Mikroesseed/seletused a la pool lehekülge õppejõu valitud konkreetsetel teemadel/küsimustel õppematerjalide või kohustusliku kirjanduse seast.&lt;br /&gt;
* Ülesanne pakkuda välja arhitektuuriline ja tehnoloogiline lahendus mingile suhteliselt väikesele tarkvara-loomise probleemile, seda lahendust põhjendada ja tuua välja orienteeruv töömaht lahenduse eri osadele ja võimalikud riski- ning keerukuskohad.&lt;br /&gt;
* Etteantud programmi/päringu/veebilehe jupi toimimise seletamine: siin tulevad ainult praktikumides või kursusematerjalides pikemalt läbikäidud keeltes kirjutatud jupid.&lt;br /&gt;
* Pisiülesanded: veebijupi tegemine ja pisiprogrammi kirjutamine. Õppejõud neid käima ei pane ja vead on lubatud.&lt;br /&gt;
&lt;br /&gt;
Eksamil võib kasutada materjale, arvutit ja googlit. Teiste tudengite või muude inimestega konsulteerimine ei ole lubatud (see on nüüd puhtalt aususe peale).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Praktikumi hinded&amp;lt;/font&amp;gt; ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!kood!!koguhinne&lt;br /&gt;
|-&lt;br /&gt;
|191816IADM||35&lt;br /&gt;
|-&lt;br /&gt;
|191886IADM||35&lt;br /&gt;
|-&lt;br /&gt;
|191830IADM||31&lt;br /&gt;
|-&lt;br /&gt;
|191845IADM||36&lt;br /&gt;
|-&lt;br /&gt;
|191893IADM||36&lt;br /&gt;
|-&lt;br /&gt;
|191902IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191882IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191869IADM||42&lt;br /&gt;
|-&lt;br /&gt;
|191793IADM||42&lt;br /&gt;
|-&lt;br /&gt;
|191852IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191816IADM||32&lt;br /&gt;
|-&lt;br /&gt;
|191898IADM||32&lt;br /&gt;
|-&lt;br /&gt;
|191889IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191897IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191908IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191788IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191811IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191894IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191934IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191836IADM||35&lt;br /&gt;
|-&lt;br /&gt;
|191844IADM||35&lt;br /&gt;
|-&lt;br /&gt;
|191835IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191770IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191850IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191822IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191840IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191896IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191891IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191904IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191806IADM||31&lt;br /&gt;
|-&lt;br /&gt;
|191832IADM||31&lt;br /&gt;
|-&lt;br /&gt;
|191795IADM||36&lt;br /&gt;
|-&lt;br /&gt;
|191847IADM||36&lt;br /&gt;
|-&lt;br /&gt;
|191901IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191826IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191853IADM||37&lt;br /&gt;
|-&lt;br /&gt;
|191818IADM||37&lt;br /&gt;
|-&lt;br /&gt;
|191865IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191877IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191782IADM||39&lt;br /&gt;
|-&lt;br /&gt;
|191817IADM||39&lt;br /&gt;
|-&lt;br /&gt;
|191789IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191864IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191905IADM||37&lt;br /&gt;
|-&lt;br /&gt;
|191781IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191885IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|200607IADM||38&lt;br /&gt;
|-&lt;br /&gt;
|191787IADM||31&lt;br /&gt;
|-&lt;br /&gt;
|191809IADM||32&lt;br /&gt;
|-&lt;br /&gt;
|191823IADM||32&lt;br /&gt;
|-&lt;br /&gt;
|191849IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191876IADM||34&lt;br /&gt;
|-&lt;br /&gt;
|191825IADM||33&lt;br /&gt;
|-&lt;br /&gt;
|191831IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191794IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191858IADM||40&lt;br /&gt;
|-&lt;br /&gt;
|191777IADM||35&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Õppetöö piiranguajal ==&lt;br /&gt;
&lt;br /&gt;
Viimane praktilise töö sessioon [http://lambda.ee/wiki/Tarkvaratehnoloogia_praktikumide_etapid#5._p.C3.A4ev:_edasiarenduse_planeerimine.2C_vigade_ja_puuduste_parandamine.2C_ettekanne (vaata siit päeva eesmärke)] toimub videokõnena tavalisel planeeritud ajal, kus &lt;br /&gt;
* püüame videosse lülitada korraga võimalikult palju tudengeid: hetkel ei oska öelda, millised tehnilised piirangud võivad tekkida&lt;br /&gt;
* iga grupp teeb ettekande, nagu plaanis&lt;br /&gt;
* saame ettekannet kommenteerida ja arutada, nagu plaanis&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Harjutuspäev 26. märtsil kell 16 ==&lt;br /&gt;
&lt;br /&gt;
Hetkel on käimas Skype lingil https://join.skype.com/opDZxYJUcugu ja kui ei õnnestu, kirjutage palun tanel.tammet@taltech.ee&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB!&amp;lt;/font&amp;gt; Esialgu ei nõustunud Skype link ega Slack töötama: mõlemid ütlesid &amp;quot;expired&amp;quot;. Loodetavasti ülevalolev link nüüd käib ok.&lt;br /&gt;
-&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Videokõne tehnoloogiaks kasutame Skype: palun ühenda selle lingi kaudu:&lt;br /&gt;
&lt;br /&gt;
https://join.skype.com/oCHi7R9GBJmD&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Kui keegi ei ole Skype tükk aega kasutanud, palun uuendage oma Skype ja tehke katseks mõne teise skypekasutajaga videokõne, et heli/pilt käima seadistada.&lt;br /&gt;
&lt;br /&gt;
Enne ettekandeid saab õppejõuga viimase praksi ajal konsulteerida samuti videokõne abil.&lt;br /&gt;
&lt;br /&gt;
Palume grupiliikmetel ühine töö korraldada teile endile mugavamal viisil.&lt;br /&gt;
&lt;br /&gt;
Probleemide korral kirjutage palun tanel.tammet@ttu.ee või radu.prekup@gmail.com.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slacki kanal ==&lt;br /&gt;
&lt;br /&gt;
Liituge Slack jututoaga:&lt;br /&gt;
* [https://join.slack.com/t/taltechtarkva-acc6522/shared_invite/zt-d2xnz3hh-LqNTq9V1dwkxp1YNZv9wVg jututoa link]&lt;br /&gt;
&lt;br /&gt;
== Kursuse eesmärk ja põhimõtted ==&lt;br /&gt;
&lt;br /&gt;
Mõista IT-süsteemide tehnoloogilist konstruktsiooni, arendusvahendeid ja arendusprotsesse. &lt;br /&gt;
&lt;br /&gt;
Saada aru riistvara, tarkvara ja kommunikatsiooniprotokollide ehituse põhiideedest. &lt;br /&gt;
&lt;br /&gt;
Mõista&lt;br /&gt;
* tarkvara peamisi arhitektuurivariante, &lt;br /&gt;
* erinevate programmeerimiskeelte olemust, &lt;br /&gt;
* teekide ja raamistike kasutamise üldisi põhimõtteid,&lt;br /&gt;
* erinevate arendusprotsesside ideid.&lt;br /&gt;
&lt;br /&gt;
Kursuse raames ülikoolis kohapeal loenguid ei toimu: kõik loengud on varasemalt salvestatud videosse,&lt;br /&gt;
ja lisatud presentatsioon, vaata siin lehel allpool.&lt;br /&gt;
&lt;br /&gt;
Kohapealne töö (praktikum/konsultatsioon) on mõeldud eeskätt praktilise arenduskogemuse saamiseks, &lt;br /&gt;
eesmärgiga omaenda katsetuste najal tekitada arusaamine, mismoodi praktiline arendusprotsess toimub,&lt;br /&gt;
mida ja  kuidas standardtehnoloogiatega teha saab, mis on keeruline ja mis lihtne. &lt;br /&gt;
&lt;br /&gt;
Kohapealne praktiline töö eeldab varasemat tutvumist osade allpool toodud teemadega.&lt;br /&gt;
&lt;br /&gt;
Esimeseks praktikumiks oleks väga soovitav vaadata/lugeda läbi allpool materjalid teemadel&lt;br /&gt;
* Veebilehed (tingimata)&lt;br /&gt;
* Programmeerimise sissejuhatus Pythonis (soovitav)&lt;br /&gt;
&lt;br /&gt;
== Praktikumi/konsultatsiooni ajad ==&lt;br /&gt;
&lt;br /&gt;
Eri rühmadel neljapäeviti ja reedeti ruumis ICT-501:&lt;br /&gt;
&lt;br /&gt;
B-rühm (IADM20B) neljapäeviti:&lt;br /&gt;
&lt;br /&gt;
* 30.01.2020 kl 16-20.30&lt;br /&gt;
* 13.02.2020 kl 16-20.30&lt;br /&gt;
* 27.02.2020 kl 16-20.30&lt;br /&gt;
* 12.03.2020 kl 16-20.30&lt;br /&gt;
* 26.03.2020 kl 16-20.30 &lt;br /&gt;
&lt;br /&gt;
A-rühm (IADM20A) reedeti:&lt;br /&gt;
&lt;br /&gt;
* 31.01.2020 kl 15-19.30&lt;br /&gt;
* 14.02.2020 kl 15-19.30&lt;br /&gt;
* 28.02.2020 kl 15-19.30&lt;br /&gt;
* 13.03.2020 kl 15-19.30&lt;br /&gt;
* 27.03.2020 kl 15-19.30&lt;br /&gt;
&lt;br /&gt;
== Praktiline ülesanne ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NB! Esimese praktikumi eel on väga soovitav tutvuda allpool klippide ja materjalidega teemadel &amp;quot;veebilehed&amp;quot; (tingimata)&lt;br /&gt;
ja &amp;quot;programmeerimise sissejuhatus Pythonis&amp;quot; (soovitav)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Kursuse kodu-või-praktikumiülesandeks on (a) reaalse rakenduse planeerimine ja ehitamine, mis kuvab kasutajale veebis mõistetavalt ja otsitavalt ja/või sorteeritavalt mingit reaalset andmestikku, mis on soovitavalt teie enda töökohast pärit. Kui sa sobivat andmestikku oma töökohast ei leia, vali mõni töödeldav ja huvitav andmestik [https://opendata.riik.ee/ eesti avaandmete portaalist], (b) edasiarenduse planeerimine hüpoteetiliseks tellimiseks.&lt;br /&gt;
&lt;br /&gt;
Soovitav on tulemus panna üles avalikku pilveserverisse (soovitus: [http://digitalocean.com digitalocean]) ja kood avalikku koodihoidlasse (soovitus: [http://github.com github]). Alternatiiv on panna tulemus dijkstra serverisse Taltechis.&lt;br /&gt;
&lt;br /&gt;
Github on tasuta, digitalocean annab alustajatele ca 100 USD krediiti ja lisaks on olemas Github student pack, mis sisaldab ca 50 USD digitaloceani krediiti. Rangelt kohustuslik avaliku veebiserveri ja githubi kasutamine ei ole: väiksema arvu punkte saab praktikumist ka siis, kui realiseerid kõik lihtsalt oma arvutis ja ei pane kuhugi üles.&lt;br /&gt;
&lt;br /&gt;
=== Praktikumi töökorraldus ===&lt;br /&gt;
&lt;br /&gt;
Ülesannet võib teha üksi või kahekesi. &lt;br /&gt;
&lt;br /&gt;
Kursuse praktikumipäevadel tegeleme teie projekti realiseerimise etappidega, ning iga etapi/praktikumipäeva lõpuks vaatame üle hetkeseisu ja anname esialgsed hinnangud, kui kaugele on jõutud ja mis on edasised sammud, veidi sarnaselt tüüpiliste agiilse arenduse hetkeseisu-koosolekutega.&lt;br /&gt;
&lt;br /&gt;
Selleks peab iga grupp tegema praktikumipäeva lõpus paariminutise ettekande, kus on öeldud:&lt;br /&gt;
* grupi liikmete nimed&lt;br /&gt;
* mida sel päeval üritati teha ja kuhu jõuti&lt;br /&gt;
* mis on plaan järgmise praktikumikorraga saavutada&lt;br /&gt;
&lt;br /&gt;
Praktikumijuhendaja hindab iga päeva progressi.&lt;br /&gt;
&lt;br /&gt;
Lõpp-presentatsioon viimasel päeval peaks olema pikem, ca viisteist minutit.&lt;br /&gt;
&lt;br /&gt;
Praktikumi kogutulemusest on arvestuslikult ca 50% lõpptulemus ja teine ca 50% esimese nelja päeva tulemused.&lt;br /&gt;
&lt;br /&gt;
=== Praktikumi etapid ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jagame töö etapiviisi viiele praktikumi päevale: nende jaoks on eraldi wikileht:&lt;br /&gt;
&lt;br /&gt;
[[tarkvaratehnoloogia praktikumide etapid]].&lt;br /&gt;
&lt;br /&gt;
== Loengud ja materjalid ==&lt;br /&gt;
&lt;br /&gt;
Loengud on salvestatud youtube klippidena, iga loenguga on seotud presentatsioon ja soovitavad täiendavad materjalid ja lingid.&lt;br /&gt;
&lt;br /&gt;
Videoloengute [https://www.youtube.com/playlist?list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO youtube üldlisti] järjekord on suvaline, kasuta pigem allolevaid linke õiges järjekorras.&lt;br /&gt;
&lt;br /&gt;
=== Sissejuhatus ja põhimõisted ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_sissejuhatus.pptx|Sissejuhatus]] ja [https://www.youtube.com/watch?v=y8wMd-Qy26I&amp;amp;index=21&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media:tt_põhimõisted.ppt|Põhimõisted]] ja [https://www.youtube.com/watch?v=PWM2PU4DiYA&amp;amp;index=2&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video].&lt;br /&gt;
&lt;br /&gt;
=== Kuidas arvuti töötab ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_protsessor.ppt|Protsessor]] ja [https://www.youtube.com/watch?v=dMawoey6TCE&amp;amp;index=3&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Eelmise presentatsiooni lõpuosa ja seejärel [http://skilldrick.github.io/easy6502/ reaalne näide protsessori käskudega]: [https://www.youtube.com/watch?v=vid3W9E_z-w&amp;amp;index=4&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Soovitavalt loe veel:&lt;br /&gt;
* [https://blog.codinghorror.com/the-infinite-space-between-words/ The infinite space between words]&lt;br /&gt;
* [https://news.ycombinator.com/ võibolla peamine arendajate üldhuvi-uudistesait]: loe seda iga päev!&lt;br /&gt;
&lt;br /&gt;
=== Interneti funktsioneerimine ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_interneti_funktsioneerimine_1.ppt|Esimene osa]] ja [https://www.youtube.com/watch?v=kwhGs1kxLvY&amp;amp;index=5&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] &lt;br /&gt;
* [[Media:tt_interneti_funktsioneerimine_2.ppt|Teine osa]] ja [https://www.youtube.com/watch?v=WBxr3aTjNzo&amp;amp;index=6&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
=== Programmeerimise sissejuhatus Pythonis ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_programmeerimise_sissejuhatus.pptx|Programmeerimise sissejuhatus]]: [https://www.youtube.com/watch?v=whyQ6Y9pUvY&amp;amp;t=0s&amp;amp;index=11&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Programmeerimine 2: python [https://www.youtube.com/watch?v=KiXcqKc8MMo&amp;amp;t=0s&amp;amp;index=10&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Programmeerimine 3: tingimused, tsüklid, funktsioonid: [https://www.youtube.com/watch?v=-JNGmN_voBA&amp;amp;t=0s&amp;amp;index=20&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] &lt;br /&gt;
* Programmeerimine 4: failitöötlus [https://www.youtube.com/watch?v=fUWTsE9nfXM&amp;amp;t=0s&amp;amp;index=13&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] ja [[failitöötluse näitekood pythonis]]&lt;br /&gt;
* Programmeerimine 5: andmeimport ja andmete seostamine [https://www.youtube.com/watch?v=xBXvsSeNTpk&amp;amp;t=0s&amp;amp;index=14&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Vajalik Pythoni tarkvara:&lt;br /&gt;
&lt;br /&gt;
* [http://python.org Pythoni põhisait]&lt;br /&gt;
* [https://realpython.com/installing-python/ Päris OK installerimise õpetus]&lt;br /&gt;
* Failid [https://www.python.org/downloads/release/python-381/ võta selle lehe allosast]&lt;br /&gt;
&lt;br /&gt;
Head pikemad õpetused:&lt;br /&gt;
&lt;br /&gt;
* Kõige lihtsam: [https://www.w3schools.com/python/default.asp w3schools python] &lt;br /&gt;
* Veidi keerulisem: [https://docs.python.org/3/tutorial/index.html tutorial pythoni lehel]&lt;br /&gt;
* [https://progeopik.cs.ut.ee Eestikeelne õpik]&lt;br /&gt;
&lt;br /&gt;
Tekstiredaktorid:&lt;br /&gt;
&lt;br /&gt;
* päris rikkalik: [https://code.visualstudio.com/ vs code]&lt;br /&gt;
* keskmiselt rikkalik: [https://atom.io/ atom]&lt;br /&gt;
* üpris minimaalne: [https://notepad-plus-plus.org/ notepad++]&lt;br /&gt;
* eriti minimaalne: [https://www.scintilla.org/SciTE.html scite]&lt;br /&gt;
&lt;br /&gt;
=== Veebilehed ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_veeb.pptx|Sissejuhatus teemasse]]&lt;br /&gt;
* Esimene osa,  html: [https://www.youtube.com/watch?v=tXrYZ7hcF2Y&amp;amp;index=7&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Teine osa, css: [https://www.youtube.com/watch?v=6ACCz9wwLCQ&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO&amp;amp;index=8 video]&lt;br /&gt;
* Kolmas osa, javascript: [https://www.youtube.com/watch?v=ub32ImHktu8&amp;amp;t=0s&amp;amp;index=8&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Kõige paremad veebiehituse õpetused algajale on [https://www.w3schools.com/ w3schools saidil]&lt;br /&gt;
&lt;br /&gt;
Üleüldine peamine küsimuste/vastuste sait on [https://stackoverflow.com/ stackoverflow].&lt;br /&gt;
&lt;br /&gt;
=== Server ja veebirakendus ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_server.pptx|Põhipunktid ja koodinäited]]. &lt;br /&gt;
* Esimene osa, server ja veebiteenus: [https://www.youtube.com/watch?v=z51YWLfbv4Y&amp;amp;t=0s&amp;amp;index=15&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Teine osa, veebirakendus: [https://www.youtube.com/watch?v=lq0WeTzye9I&amp;amp;t=0s&amp;amp;index=19&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Flask server:&lt;br /&gt;
&lt;br /&gt;
* Kasutame Pythoni populaarset micro-frameworki [http://flask.pocoo.org Flask]&lt;br /&gt;
* Sul peab olema Windowsil käsurealt käivitatav python ja pip. pip on levinuim Pythoni moodulite installeerimise-programm.&lt;br /&gt;
* Ütle käsurealt: &amp;lt;tt&amp;gt;pip install flask&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Flask veel ise käima ei lähe: loe presentatsioonist edasi.&lt;br /&gt;
* NB! Kui paned oma flaski abil tehtud serveriprogrammi serverisse tööle, siis viimase asjana kirjuta app.run(debug=True, port=5000, host=&#039;0.0.0.0&#039;) kus on näidetega võrreldes lisaks host=... : see lubab väljapoolt serverit ligi pääseda.&lt;br /&gt;
&lt;br /&gt;
=== Andmebaasiga serverirakenduse ehitamine ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_sql.pptx|Andmebaasid]]&lt;br /&gt;
&lt;br /&gt;
* Andmebaasid ja SQL [https://www.youtube.com/watch?v=K8yQrsDy2dc&amp;amp;t=0s&amp;amp;index=18&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Serverirakendus ja SQL 1. osa [https://www.youtube.com/watch?v=4CZ5LuWGQJc&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO&amp;amp;index=16 video]&lt;br /&gt;
* Serverirakendus ja SQL 2. osa [https://www.youtube.com/watch?v=nrazU1aKLzI&amp;amp;t=0s&amp;amp;index=16&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Soovitavalt uuri veidi: [https://www.w3schools.com/sql/sql_intro.asp w3schools SQL tutorial]&lt;br /&gt;
* Näited:&lt;br /&gt;
**[[sql insert-lausete näited andmete sisestamiseks|Tabelite tegemise ja andmete sisestamise näited]]&lt;br /&gt;
** [[sqlite andmebaasi tegemine ja kasutamine Pythonist]]&lt;br /&gt;
** [[blogiprogramm]]&lt;br /&gt;
&lt;br /&gt;
=== Tehisintellekt ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_tehisintellekt.pptx|Tehisintellekt]] ja [https://www.youtube.com/watch?v=USEUHWOwX8Q&amp;amp;t=0s&amp;amp;index=22&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Soovitavalt vaata ja loe lisaks:&lt;br /&gt;
&lt;br /&gt;
* Boston Dynamics [http://www.youtube.com/watch?v=ae06LFa3i38 robot donkey (aka big dog) varane], [http://www.youtube.com/watch?v=BtRnzlO7m_M big dog praegu], [http://www.youtube.com/watch?v=chPanW0QWhA Cheetah], [http://www.youtube.com/watch?v=wE3fmFTtP9g Wildcat],[http://www.youtube.com/watch?v=tFrjrgBV8K0 Petman], [http://www.youtube.com/watch?v=SD6Okylclb8 Atlas]&lt;br /&gt;
&amp;lt;!-- * [https://www.tastehit.com/blog/google-deepmind-alphago-how-it-works/ Kuidas AlphaGo töötab] --&amp;gt;&lt;br /&gt;
* Darpa [http://en.wikipedia.org/wiki/DARPA_Grand_Challenge grand challenge 2005] ja [http://archive.darpa.mil/grandchallenge/ urban challenge]&lt;br /&gt;
* [http://idlewords.com/talks/superintelligence.htm Miks mitte karta super-tehisintellekti]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Rodney_Brooks Rodney Brooksi] väike tehisintellekti-sari [https://rodneybrooks.com/forai-steps-toward-super-intelligence-ii-beyond-the-turing-test/ osa 1], [https://rodneybrooks.com/forai-steps-toward-super-intelligence-ii-beyond-the-turing-test/ osa 2], [https://rodneybrooks.com/forai-steps-toward-super-intelligence-iii-hard-things-today/ osa 3],  [https://rodneybrooks.com/forai-steps-toward-super-intelligence-iv-things-to-work-on-now/ osa 4]&lt;br /&gt;
&amp;lt;!-- õppejõu pikem [https://www.youtube.com/watch?v=ftYrfTo_W2E  tehisintellektiteemaline vestlus] &amp;quot;intrigeeriva pärastlõuna&amp;quot; podcastisarjas. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Arendusvahendid, programmeerimiskeeled ja arhitektuur ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_arendusvahendid.pptx|Arendusvahendid]] [https://www.youtube.com/watch?v=zHGPqdft8yk&amp;amp;t=0s&amp;amp;index=25&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media: tt_programmeerimiskeeled.pptx|Programmeerimiskeeled]] [https://www.youtube.com/watch?v=4INtjYLmQeI&amp;amp;t=0s&amp;amp;index=24&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media:tt_arhitektuur.pptx|Arhitektuur]]: [https://www.youtube.com/watch?v=NOr9mGXOL5c&amp;amp;t=0s&amp;amp;index=27&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video esimene osa] ja [https://www.youtube.com/watch?v=OWnPJ_Xcw1M&amp;amp;t=402s&amp;amp;index=23&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video teine osa]&lt;br /&gt;
&lt;br /&gt;
=== Arendusprotsess ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_arendusprotsess.pptx|Arendusprotsess]] ja [https://www.youtube.com/watch?v=_GERtMiNcX4&amp;amp;t=0s&amp;amp;index=26&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Loe (pikemad sirvi) need arendusprotsessiga seotud artiklid kursuse käigus läbi. Nende kõigi kohta võidakse eksamil küsida lugemiskontrolli-küsimusi.&lt;br /&gt;
&lt;br /&gt;
* Paul Graham [http://paulgraham.com/hp.html Hackers and painters]&lt;br /&gt;
* Paul Graham: [http://www.paulgraham.com/start.html How to start a startup?]&lt;br /&gt;
* Paul Graham: [http://www.paulgraham.com/gh.html Great hackers]&lt;br /&gt;
* Joel Spolsky: [https://www.joelonsoftware.com/2002/02/13/the-iceberg-secret-revealed/ The iceberg secret revealed]&lt;br /&gt;
* Joel Spolsky: [http://www.joelonsoftware.com/articles/fog0000000043.html IT firma töökorraldus: 12 sammu]&lt;br /&gt;
* [https://agilemanifesto.org/ Agiilarenduse manifest] ja [https://agilemanifesto.org/principles.html selle lisapunktid]&lt;br /&gt;
* Paul Reeves: [http://www.developerdotstar.com/mag/articles/reeves_design.html What is software design?] vana artikkel ja [http://www.developerdotstar.com/mag/articles/reeves_13yearslater.html What Is Software Design: 13 Years Later]&lt;br /&gt;
* Gnu manifest [http://www.gnu.org/philosophy/free-sw.html The Free Software Definition] ja [https://www.gnu.org/licenses/license-list.en.html Gnu ülevaade litsentsidest]&lt;br /&gt;
* Fred Brooks 1986: [http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBullet.html No Silver Bullet]&lt;br /&gt;
* [https://zwischenzugs.com/2017/10/15/my-20-year-experience-of-software-development-methodologies/ 20 aastat kogemust tarkvara arendusmeetoditega]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Kursus]]&lt;/div&gt;</summary>
		<author><name>Radu</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogiad&amp;diff=16988</id>
		<title>Tarkvaratehnoloogiad</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogiad&amp;diff=16988"/>
		<updated>2020-03-25T13:55:29Z</updated>

		<summary type="html">&lt;p&gt;Radu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Pilt:matrix.jpg|left|IT]] --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Ainekood: ITO8020&amp;lt;br&amp;gt;&lt;br /&gt;
Link: http://www.lambda.ee/wiki/tarkvaratehnoloogiad&amp;lt;br&amp;gt;&lt;br /&gt;
Link ÕISi https://ois.ttu.ee/aine/ito8020&amp;lt;br&amp;gt;&lt;br /&gt;
Õppejõud: [http://www.facebook.com/tanel.tammet Tanel Tammet]&amp;lt;br&amp;gt;&lt;br /&gt;
Kontakt: tanel.tammet@ttu.ee, 6203457, ICT 426&amp;lt;br&amp;gt;&lt;br /&gt;
Varasemast: [[Tarkvaratehnoloogiad 2019 aasta arhiiv]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Õppetöö piiranguajal&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Viimane praktilise töö sessioon [http://lambda.ee/wiki/Tarkvaratehnoloogia_praktikumide_etapid#5._p.C3.A4ev:_edasiarenduse_planeerimine.2C_vigade_ja_puuduste_parandamine.2C_ettekanne (vaata siit päeva eesmärke)] toimub videokõnena tavalisel planeeritud ajal, kus &lt;br /&gt;
* püüame videosse lülitada korraga võimalikult palju tudengeid: hetkel ei oska öelda, millised tehnilised piirangud võivad tekkida&lt;br /&gt;
* iga grupp teeb ettekande, nagu plaanis&lt;br /&gt;
* saame ettekannet kommenteerida ja arutada, nagu plaanis&lt;br /&gt;
&lt;br /&gt;
Videokõne tehnoloogiaks plaanime kasutada Skype ja paneme siia lehele enne praktilise töö sessiooni liitumiseks lingi. Kui keegi ei ole Skype tükk aega kasutanud, palun uuendage oma Skype ja tehke katseks mõne teise skypekasutajaga videokõne, et heli/pilt käima seadistada.&lt;br /&gt;
&lt;br /&gt;
Enne ettekandeid saab õppejõuga viimase praksi ajal konsulteerida samuti videokõne abil.&lt;br /&gt;
&lt;br /&gt;
Palume grupiliikmetel ühine töö korraldada teile endile mugavamal viisil.&lt;br /&gt;
&lt;br /&gt;
Probleemide korral kirjutage palun tanel.tammet@ttu.ee või radu.prekup@gmail.com.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Eksamid&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Uues olukorras plaanime teha eksamid alles korralisel eksamiperioodil mai teises pooles.&lt;br /&gt;
&lt;br /&gt;
Tehnikaülikool - ja kõik muud ülikoolid - on peatanud kogu kohalkäimisega-seotud õppetegevuse kuni 1. maini. Tudengid ei saa isegi ülikoolihoonetesse sisse.&lt;br /&gt;
&lt;br /&gt;
== Slacki kanal ==&lt;br /&gt;
&lt;br /&gt;
Liituge Slack jututoaga:&lt;br /&gt;
* [https://join.slack.com/t/taltechtarkva-acc6522/shared_invite/zt-d2xnz3hh-LqNTq9V1dwkxp1YNZv9wVg jututoa link]&lt;br /&gt;
&lt;br /&gt;
== Kursuse eesmärk ja põhimõtted ==&lt;br /&gt;
&lt;br /&gt;
Mõista IT-süsteemide tehnoloogilist konstruktsiooni, arendusvahendeid ja arendusprotsesse. &lt;br /&gt;
&lt;br /&gt;
Saada aru riistvara, tarkvara ja kommunikatsiooniprotokollide ehituse põhiideedest. &lt;br /&gt;
&lt;br /&gt;
Mõista&lt;br /&gt;
* tarkvara peamisi arhitektuurivariante, &lt;br /&gt;
* erinevate programmeerimiskeelte olemust, &lt;br /&gt;
* teekide ja raamistike kasutamise üldisi põhimõtteid,&lt;br /&gt;
* erinevate arendusprotsesside ideid.&lt;br /&gt;
&lt;br /&gt;
Kursuse raames ülikoolis kohapeal loenguid ei toimu: kõik loengud on varasemalt salvestatud videosse,&lt;br /&gt;
ja lisatud presentatsioon, vaata siin lehel allpool.&lt;br /&gt;
&lt;br /&gt;
Kohapealne töö (praktikum/konsultatsioon) on mõeldud eeskätt praktilise arenduskogemuse saamiseks, &lt;br /&gt;
eesmärgiga omaenda katsetuste najal tekitada arusaamine, mismoodi praktiline arendusprotsess toimub,&lt;br /&gt;
mida ja  kuidas standardtehnoloogiatega teha saab, mis on keeruline ja mis lihtne. &lt;br /&gt;
&lt;br /&gt;
Kohapealne praktiline töö eeldab varasemat tutvumist osade allpool toodud teemadega.&lt;br /&gt;
&lt;br /&gt;
Esimeseks praktikumiks oleks väga soovitav vaadata/lugeda läbi allpool materjalid teemadel&lt;br /&gt;
* Veebilehed (tingimata)&lt;br /&gt;
* Programmeerimise sissejuhatus Pythonis (soovitav)&lt;br /&gt;
&lt;br /&gt;
== Hindamine ==&lt;br /&gt;
&lt;br /&gt;
Kursus lõpeb eksamiga. Eksam on kirjalik ja selle tegemiseks kulub orienteeruvalt poolteist tundi. Aega eksamiks on kolm tundi.&lt;br /&gt;
&lt;br /&gt;
Hindamisel arvestatakse praktikumide tulemusi kaaluga 40% ja eksamitulemusi kaaluga 60%.&lt;br /&gt;
&lt;br /&gt;
Eksamis ei tule otseseid programmeerimisülesandeid ning vastused tuleb kirjutada paberile: arvutit ja lisamaterjale kasutada ei või. Küsimused tulevad  järgmisest neljast sordist:&lt;br /&gt;
&lt;br /&gt;
* Küsimused mõistete ja põhimõtete ja tehnoloogiate kohta: mis on mis ja milleks kasutatakse. Vastused on siis paarilauselised seletused. Küsimused tulevad ainult kursuse powerpointides ja videoloengutes toodu kohta.&lt;br /&gt;
* Kontrollküsimused eesmärgiga aru saada, kas olete lugenud kursuse lehel arendusprotsesside peatüki lõpus oleva kirjanduse läbi. Iga selline küsimus küsib midagi lühidat teksti mõne põhipunkti või eriti meeldejääva asjaolu kohta: pikemaid vastuseid/referaate ei ole vaja kirjutada.&lt;br /&gt;
* Küsimused väikeste näite-koodi-juppide - python, javascript, html, css - äratundmise ja esmase arusaamise kohta. Kõik need näitejupid võetakse otse kursuse powerpointidest ja videoloengutest ja küsitakse, mis keeles jupp ja mida ta umbes teeb.&lt;br /&gt;
* Küsimused, kus antakse ülesanne pakkuda välja arhitektuuriline ja tehnoloogiline lahendus mingile suhteliselt väikesele tarkvara-loomise probleemile, seda lahendust põhjendada ja tuua välja orienteeruv töömaht lahenduse eri osadele ja võimalikud riski- ning keerukuskohad.&lt;br /&gt;
&lt;br /&gt;
== Praktikumi/konsultatsiooni ajad ==&lt;br /&gt;
&lt;br /&gt;
Eri rühmadel neljapäeviti ja reedeti ruumis ICT-501:&lt;br /&gt;
&lt;br /&gt;
B-rühm (IADM20B) neljapäeviti:&lt;br /&gt;
&lt;br /&gt;
* 30.01.2020 kl 16-20.30&lt;br /&gt;
* 13.02.2020 kl 16-20.30&lt;br /&gt;
* 27.02.2020 kl 16-20.30&lt;br /&gt;
* 12.03.2020 kl 16-20.30&lt;br /&gt;
* 26.03.2020 kl 16-20.30 &lt;br /&gt;
&lt;br /&gt;
A-rühm (IADM20A) reedeti:&lt;br /&gt;
&lt;br /&gt;
* 31.01.2020 kl 15-19.30&lt;br /&gt;
* 14.02.2020 kl 15-19.30&lt;br /&gt;
* 28.02.2020 kl 15-19.30&lt;br /&gt;
* 13.03.2020 kl 15-19.30&lt;br /&gt;
* 27.03.2020 kl 15-19.30&lt;br /&gt;
&lt;br /&gt;
== Praktiline ülesanne ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NB! Esimese praktikumi eel on väga soovitav tutvuda allpool klippide ja materjalidega teemadel &amp;quot;veebilehed&amp;quot; (tingimata)&lt;br /&gt;
ja &amp;quot;programmeerimise sissejuhatus Pythonis&amp;quot; (soovitav)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Kursuse kodu-või-praktikumiülesandeks on (a) reaalse rakenduse planeerimine ja ehitamine, mis kuvab kasutajale veebis mõistetavalt ja otsitavalt ja/või sorteeritavalt mingit reaalset andmestikku, mis on soovitavalt teie enda töökohast pärit. Kui sa sobivat andmestikku oma töökohast ei leia, vali mõni töödeldav ja huvitav andmestik [https://opendata.riik.ee/ eesti avaandmete portaalist], (b) edasiarenduse planeerimine hüpoteetiliseks tellimiseks.&lt;br /&gt;
&lt;br /&gt;
Soovitav on tulemus panna üles avalikku pilveserverisse (soovitus: [http://digitalocean.com digitalocean]) ja kood avalikku koodihoidlasse (soovitus: [http://github.com github]). Alternatiiv on panna tulemus dijkstra serverisse Taltechis.&lt;br /&gt;
&lt;br /&gt;
Github on tasuta, digitalocean annab alustajatele ca 100 USD krediiti ja lisaks on olemas Github student pack, mis sisaldab ca 50 USD digitaloceani krediiti. Rangelt kohustuslik avaliku veebiserveri ja githubi kasutamine ei ole: väiksema arvu punkte saab praktikumist ka siis, kui realiseerid kõik lihtsalt oma arvutis ja ei pane kuhugi üles.&lt;br /&gt;
&lt;br /&gt;
=== Praktikumi töökorraldus ===&lt;br /&gt;
&lt;br /&gt;
Ülesannet võib teha üksi või kahekesi. &lt;br /&gt;
&lt;br /&gt;
Kursuse praktikumipäevadel tegeleme teie projekti realiseerimise etappidega, ning iga etapi/praktikumipäeva lõpuks vaatame üle hetkeseisu ja anname esialgsed hinnangud, kui kaugele on jõutud ja mis on edasised sammud, veidi sarnaselt tüüpiliste agiilse arenduse hetkeseisu-koosolekutega.&lt;br /&gt;
&lt;br /&gt;
Selleks peab iga grupp tegema praktikumipäeva lõpus paariminutise ettekande, kus on öeldud:&lt;br /&gt;
* grupi liikmete nimed&lt;br /&gt;
* mida sel päeval üritati teha ja kuhu jõuti&lt;br /&gt;
* mis on plaan järgmise praktikumikorraga saavutada&lt;br /&gt;
&lt;br /&gt;
Praktikumijuhendaja hindab iga päeva progressi.&lt;br /&gt;
&lt;br /&gt;
Lõpp-presentatsioon viimasel päeval peaks olema pikem, ca viisteist minutit.&lt;br /&gt;
&lt;br /&gt;
Praktikumi kogutulemusest on arvestuslikult ca 50% lõpptulemus ja teine ca 50% esimese nelja päeva tulemused.&lt;br /&gt;
&lt;br /&gt;
=== Praktikumi etapid ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jagame töö etapiviisi viiele praktikumi päevale: nende jaoks on eraldi wikileht:&lt;br /&gt;
&lt;br /&gt;
[[tarkvaratehnoloogia praktikumide etapid]].&lt;br /&gt;
&lt;br /&gt;
== Loengud ja materjalid ==&lt;br /&gt;
&lt;br /&gt;
Loengud on salvestatud youtube klippidena, iga loenguga on seotud presentatsioon ja soovitavad täiendavad materjalid ja lingid.&lt;br /&gt;
&lt;br /&gt;
Videoloengute [https://www.youtube.com/playlist?list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO youtube üldlisti] järjekord on suvaline, kasuta pigem allolevaid linke õiges järjekorras.&lt;br /&gt;
&lt;br /&gt;
=== Sissejuhatus ja põhimõisted ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_sissejuhatus.pptx|Sissejuhatus]] ja [https://www.youtube.com/watch?v=y8wMd-Qy26I&amp;amp;index=21&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media:tt_põhimõisted.ppt|Põhimõisted]] ja [https://www.youtube.com/watch?v=PWM2PU4DiYA&amp;amp;index=2&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video].&lt;br /&gt;
&lt;br /&gt;
=== Kuidas arvuti töötab ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_protsessor.ppt|Protsessor]] ja [https://www.youtube.com/watch?v=dMawoey6TCE&amp;amp;index=3&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Eelmise presentatsiooni lõpuosa ja seejärel [http://skilldrick.github.io/easy6502/ reaalne näide protsessori käskudega]: [https://www.youtube.com/watch?v=vid3W9E_z-w&amp;amp;index=4&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Soovitavalt loe veel:&lt;br /&gt;
* [https://blog.codinghorror.com/the-infinite-space-between-words/ The infinite space between words]&lt;br /&gt;
* [https://news.ycombinator.com/ võibolla peamine arendajate üldhuvi-uudistesait]: loe seda iga päev!&lt;br /&gt;
&lt;br /&gt;
=== Interneti funktsioneerimine ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_interneti_funktsioneerimine_1.ppt|Esimene osa]] ja [https://www.youtube.com/watch?v=kwhGs1kxLvY&amp;amp;index=5&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] &lt;br /&gt;
* [[Media:tt_interneti_funktsioneerimine_2.ppt|Teine osa]] ja [https://www.youtube.com/watch?v=WBxr3aTjNzo&amp;amp;index=6&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
=== Programmeerimise sissejuhatus Pythonis ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_programmeerimise_sissejuhatus.pptx|Programmeerimise sissejuhatus]]: [https://www.youtube.com/watch?v=whyQ6Y9pUvY&amp;amp;t=0s&amp;amp;index=11&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Programmeerimine 2: python [https://www.youtube.com/watch?v=KiXcqKc8MMo&amp;amp;t=0s&amp;amp;index=10&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Programmeerimine 3: tingimused, tsüklid, funktsioonid: [https://www.youtube.com/watch?v=-JNGmN_voBA&amp;amp;t=0s&amp;amp;index=20&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] &lt;br /&gt;
* Programmeerimine 4: failitöötlus [https://www.youtube.com/watch?v=fUWTsE9nfXM&amp;amp;t=0s&amp;amp;index=13&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] ja [[failitöötluse näitekood pythonis]]&lt;br /&gt;
* Programmeerimine 5: andmeimport ja andmete seostamine [https://www.youtube.com/watch?v=xBXvsSeNTpk&amp;amp;t=0s&amp;amp;index=14&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Vajalik Pythoni tarkvara:&lt;br /&gt;
&lt;br /&gt;
* [http://python.org Pythoni põhisait]&lt;br /&gt;
* [https://realpython.com/installing-python/ Päris OK installerimise õpetus]&lt;br /&gt;
* Failid [https://www.python.org/downloads/release/python-381/ võta selle lehe allosast]&lt;br /&gt;
&lt;br /&gt;
Head pikemad õpetused:&lt;br /&gt;
&lt;br /&gt;
* Kõige lihtsam: [https://www.w3schools.com/python/default.asp w3schools python] &lt;br /&gt;
* Veidi keerulisem: [https://docs.python.org/3/tutorial/index.html tutorial pythoni lehel]&lt;br /&gt;
* [https://progeopik.cs.ut.ee Eestikeelne õpik]&lt;br /&gt;
&lt;br /&gt;
Tekstiredaktorid:&lt;br /&gt;
&lt;br /&gt;
* päris rikkalik: [https://code.visualstudio.com/ vs code]&lt;br /&gt;
* keskmiselt rikkalik: [https://atom.io/ atom]&lt;br /&gt;
* üpris minimaalne: [https://notepad-plus-plus.org/ notepad++]&lt;br /&gt;
* eriti minimaalne: [https://www.scintilla.org/SciTE.html scite]&lt;br /&gt;
&lt;br /&gt;
=== Veebilehed ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_veeb.pptx|Sissejuhatus teemasse]]&lt;br /&gt;
* Esimene osa,  html: [https://www.youtube.com/watch?v=tXrYZ7hcF2Y&amp;amp;index=7&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Teine osa, css: [https://www.youtube.com/watch?v=6ACCz9wwLCQ&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO&amp;amp;index=8 video]&lt;br /&gt;
* Kolmas osa, javascript: [https://www.youtube.com/watch?v=ub32ImHktu8&amp;amp;t=0s&amp;amp;index=8&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Kõige paremad veebiehituse õpetused algajale on [https://www.w3schools.com/ w3schools saidil]&lt;br /&gt;
&lt;br /&gt;
Üleüldine peamine küsimuste/vastuste sait on [https://stackoverflow.com/ stackoverflow].&lt;br /&gt;
&lt;br /&gt;
=== Server ja veebirakendus ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_server.pptx|Põhipunktid ja koodinäited]]. &lt;br /&gt;
* Esimene osa, server ja veebiteenus: [https://www.youtube.com/watch?v=z51YWLfbv4Y&amp;amp;t=0s&amp;amp;index=15&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Teine osa, veebirakendus: [https://www.youtube.com/watch?v=lq0WeTzye9I&amp;amp;t=0s&amp;amp;index=19&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Flask server:&lt;br /&gt;
&lt;br /&gt;
* Kasutame Pythoni populaarset micro-frameworki [http://flask.pocoo.org Flask]&lt;br /&gt;
* Sul peab olema Windowsil käsurealt käivitatav python ja pip. pip on levinuim Pythoni moodulite installeerimise-programm.&lt;br /&gt;
* Ütle käsurealt: &amp;lt;tt&amp;gt;pip install flask&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Flask veel ise käima ei lähe: loe presentatsioonist edasi.&lt;br /&gt;
* NB! Kui paned oma flaski abil tehtud serveriprogrammi serverisse tööle, siis viimase asjana kirjuta app.run(debug=True, port=5000, host=&#039;0.0.0.0&#039;) kus on näidetega võrreldes lisaks host=... : see lubab väljapoolt serverit ligi pääseda.&lt;br /&gt;
&lt;br /&gt;
=== Andmebaasiga serverirakenduse ehitamine ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_sql.pptx|Andmebaasid]]&lt;br /&gt;
&lt;br /&gt;
* Andmebaasid ja SQL [https://www.youtube.com/watch?v=K8yQrsDy2dc&amp;amp;t=0s&amp;amp;index=18&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Serverirakendus ja SQL 1. osa [https://www.youtube.com/watch?v=4CZ5LuWGQJc&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO&amp;amp;index=16 video]&lt;br /&gt;
* Serverirakendus ja SQL 2. osa [https://www.youtube.com/watch?v=nrazU1aKLzI&amp;amp;t=0s&amp;amp;index=16&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Soovitavalt uuri veidi: [https://www.w3schools.com/sql/sql_intro.asp w3schools SQL tutorial]&lt;br /&gt;
* Näited:&lt;br /&gt;
**[[sql insert-lausete näited andmete sisestamiseks|Tabelite tegemise ja andmete sisestamise näited]]&lt;br /&gt;
** [[sqlite andmebaasi tegemine ja kasutamine Pythonist]]&lt;br /&gt;
** [[blogiprogramm]]&lt;br /&gt;
&lt;br /&gt;
=== Tehisintellekt ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_tehisintellekt.pptx|Tehisintellekt]] ja [https://www.youtube.com/watch?v=USEUHWOwX8Q&amp;amp;t=0s&amp;amp;index=22&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Soovitavalt vaata ja loe lisaks:&lt;br /&gt;
&lt;br /&gt;
* Boston Dynamics [http://www.youtube.com/watch?v=ae06LFa3i38 robot donkey (aka big dog) varane], [http://www.youtube.com/watch?v=BtRnzlO7m_M big dog praegu], [http://www.youtube.com/watch?v=chPanW0QWhA Cheetah], [http://www.youtube.com/watch?v=wE3fmFTtP9g Wildcat],[http://www.youtube.com/watch?v=tFrjrgBV8K0 Petman], [http://www.youtube.com/watch?v=SD6Okylclb8 Atlas]&lt;br /&gt;
* [https://www.tastehit.com/blog/google-deepmind-alphago-how-it-works/ Kuidas AlphaGo töötab]&lt;br /&gt;
* Darpa [http://en.wikipedia.org/wiki/DARPA_Grand_Challenge grand challenge 2005] ja [http://archive.darpa.mil/grandchallenge/ urban challenge]&lt;br /&gt;
* [http://idlewords.com/talks/superintelligence.htm Miks mitte karta super-tehisintellekti]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Rodney_Brooks Rodney Brooksi] väike tehisintellekti-sari [https://rodneybrooks.com/forai-steps-toward-super-intelligence-ii-beyond-the-turing-test/ osa 1], [https://rodneybrooks.com/forai-steps-toward-super-intelligence-ii-beyond-the-turing-test/ osa 2], [https://rodneybrooks.com/forai-steps-toward-super-intelligence-iii-hard-things-today/ osa 3],  [https://rodneybrooks.com/forai-steps-toward-super-intelligence-iv-things-to-work-on-now/ osa 4]&lt;br /&gt;
&amp;lt;!-- õppejõu pikem [https://www.youtube.com/watch?v=ftYrfTo_W2E  tehisintellektiteemaline vestlus] &amp;quot;intrigeeriva pärastlõuna&amp;quot; podcastisarjas. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Arendusvahendid, programmeerimiskeeled ja arhitektuur ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_arendusvahendid.pptx|Arendusvahendid]] [https://www.youtube.com/watch?v=zHGPqdft8yk&amp;amp;t=0s&amp;amp;index=25&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media: tt_programmeerimiskeeled.pptx|Programmeerimiskeeled]] [https://www.youtube.com/watch?v=4INtjYLmQeI&amp;amp;t=0s&amp;amp;index=24&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media:tt_arhitektuur.pptx|Arhitektuur]]: [https://www.youtube.com/watch?v=NOr9mGXOL5c&amp;amp;t=0s&amp;amp;index=27&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video esimene osa] ja [https://www.youtube.com/watch?v=OWnPJ_Xcw1M&amp;amp;t=402s&amp;amp;index=23&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video teine osa]&lt;br /&gt;
&lt;br /&gt;
=== Arendusprotsess ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_arendusprotsess.pptx|Arendusprotsess]] ja [https://www.youtube.com/watch?v=_GERtMiNcX4&amp;amp;t=0s&amp;amp;index=26&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Loe (pikemad sirvi) need arendusprotsessiga seotud artiklid kursuse käigus läbi. Nende kõigi kohta võidakse eksamil küsida lugemiskontrolli-küsimusi.&lt;br /&gt;
&lt;br /&gt;
* Paul Graham [http://paulgraham.com/hp.html Hackers and painters]&lt;br /&gt;
* Paul Graham: [http://www.paulgraham.com/start.html How to start a startup?]&lt;br /&gt;
* Paul Graham: [http://www.paulgraham.com/gh.html Great hackers]&lt;br /&gt;
* Joel Spolsky: [https://www.joelonsoftware.com/2002/02/13/the-iceberg-secret-revealed/ The iceberg secret revealed]&lt;br /&gt;
* Joel Spolsky: [http://www.joelonsoftware.com/articles/fog0000000043.html IT firma töökorraldus: 12 sammu]&lt;br /&gt;
* [https://agilemanifesto.org/ Agiilarenduse manifest] ja [https://agilemanifesto.org/principles.html selle lisapunktid]&lt;br /&gt;
* Paul Reeves: [http://www.developerdotstar.com/mag/articles/reeves_design.html What is software design?] vana artikkel ja [http://www.developerdotstar.com/mag/articles/reeves_13yearslater.html What Is Software Design: 13 Years Later]&lt;br /&gt;
* Gnu manifest [http://www.gnu.org/philosophy/free-sw.html The Free Software Definition] ja [https://www.gnu.org/licenses/license-list.en.html Gnu ülevaade litsentsidest]&lt;br /&gt;
* Fred Brooks 1986: [http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBullet.html No Silver Bullet]&lt;br /&gt;
* [https://zwischenzugs.com/2017/10/15/my-20-year-experience-of-software-development-methodologies/ 20 aastat kogemust tarkvara arendusmeetoditega]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Kursus]]&lt;/div&gt;</summary>
		<author><name>Radu</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogia_praktikumide_etapid&amp;diff=16769</id>
		<title>Tarkvaratehnoloogia praktikumide etapid</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogia_praktikumide_etapid&amp;diff=16769"/>
		<updated>2020-02-27T11:42:42Z</updated>

		<summary type="html">&lt;p&gt;Radu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Siintoodud etappide sisu töö reaalse töö käigus veidi muutub, kuid on üldjoontes järgmine:&lt;br /&gt;
&lt;br /&gt;
== 1. päev: ülesande valik, soovitud tulemuse kirjeldus, keskkonna ülesseadmine, katse-html lehe tegemine ==&lt;br /&gt;
&lt;br /&gt;
Päeva eesmärk on (a) valida andmestik ja otsustada, mida meie rakendus sellega teeks, &lt;br /&gt;
(b) töövahendite installeerimine ja katsetamine. Neid asju võiks teha sellises  järjekorras:&lt;br /&gt;
&lt;br /&gt;
* Installeeri endale sobiv  tekstiredaktor (rikkalikumast minimaalsemani: [https://code.visualstudio.com/ vs code], [https://atom.io/ atom], [https://notepad-plus-plus.org/ notepad++], [https://www.scintilla.org/SciTE.html scite]), &lt;br /&gt;
* Soovitavalt installeeri ka [http://python.org Python] (kohe algul ei ole meil seda vaja):&lt;br /&gt;
** failid [https://www.python.org/downloads/release/python-381/ võta selle lehe allosast],&lt;br /&gt;
**[https://realpython.com/installing-python/ siin päris OK installeerimise õpetus]) ja [https://docs.python.org/3.7/using/windows.html siin ametlik õpetus] &lt;br /&gt;
** väga detailne [https://www.wikihow.com/Use-Windows-Command-Prompt-to-Run-a-Python-File õpetus] pythoni programmide käivitamiseks: kui cmd aknast python ei käivitu, siis uuri selle õpetuse teist poolt: pathi seadmine.&lt;br /&gt;
** alternatiivne Pythoni installi ja käivitamise õpetus [https://docs.microsoft.com/en-us/windows/python/beginners installi ja käivitamise õpetus] microsoftilt.&lt;br /&gt;
* Kui python installeeritud, siis soovitavalt ka [https://flask.palletsprojects.com/en/1.1.x/ Flask]: see eeldab ja kasutab pythonit. Vaata installiks ja kasutamiseks ka . Jällegi, kohe algul ei ole seda vaja.&lt;br /&gt;
* Otsi andmestik, uuri, kas see on sulle kättesaadav/töödeldav.&lt;br /&gt;
* Otsusta, kuidas seda avalikkusele ilusamini kuvada ja millised filtrid/valikud lasta kasutajatel teha.&lt;br /&gt;
* Kirjuta oma kavadest väike memo [https://guides.github.com/features/mastering-markdown/ markdowni] kasutades.&lt;br /&gt;
* Installeeri endale [https://www.putty.org/ putty] ja [https://winscp.net/ winscp] või analoogilised vajalikud vahendid serverisse sisselogimiseks ja failide kopeerimiseks.&lt;br /&gt;
* Alusta oma rakenduse veebilehe tegemist esmaste html-pisikatsetustega omaenda arvutis.&lt;br /&gt;
* Logi katseks [http://lambda.ee/wiki/ITV0110_1._t%C3%B6%C3%B6:_Html_p%C3%B5hioskused#Dijkstra_server dijkstra serverisse] ja püüa sinna mõni fail veebiserveri alla kopeerida.&lt;br /&gt;
* Tee soovitavalt konto [http://digitalocean.com digitaloceani] serverisse ja [https://github.com githubi] koodihoidlasse, lae viimasesse sinna faile. Digitaloceani kontoga on tööd (mis on soovitav :) lihtsam alternatiiv on kasutada ainult dijkstra serverit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kui Pythonit ja Flaski ei õnnestu enda arvutisse installeerida, siis on kaks järgmist varianti:&lt;br /&gt;
* Püüdke endale installeerida juba Pythonit sisaldav [http://thonny.org thonny]: see võib õnnestuda paremini.&lt;br /&gt;
* Võite üldse loobuda Pythoni installeerimisest oma arvutisse: sellega saab töötada ka üle võrgu otse dijkstra või digitaloceani serveris, kuigi see on veidi ebamugavam.&lt;br /&gt;
&lt;br /&gt;
Päeva lõpuks teeb iga grupp paariminutise ettekande, kus on öeldud (a) grupiliikmete nimed, (b) mis andmekogu&lt;br /&gt;
ja ülesanne valiti, (b) mis töövahendid käima saadi ja kuhu õnnestus sisse logida/andmeid kopeerida, &lt;br /&gt;
(c) kuhu aeg peamiselt kulus ja mis olid ootamatused. (d) mis on plaan järgmiseks korraks.&lt;br /&gt;
&lt;br /&gt;
== 2. päev: andmete töötlemine ja baasi panek, esmase html lehe tegemine serveris ==&lt;br /&gt;
&lt;br /&gt;
Päeva eesmärk on (a) katsetada tehnoloogiaid: python ja flask, sqlite (b) teha oma andmebaas ja laadida andmed oma andmebaasi&lt;br /&gt;
(c) teha katseid päringutega andmebaasist (d) ideaalis realiseerida juba mingi mõttekas osa süsteemist. Päeva lõpuks teeb iga grupp ühe-kahe minutise ettekande, kus on öeldud (a) grupiliikmete nimed, (b) mis käima saadi (c) kuhu aeg peamiselt kulus ja mis olid ootamatused. (d) mis on plaan järgmiseks korraks. Lisaks, palun liituge Slack jututoaga: [https://join.slack.com/t/taltechtarkva-acc6522/shared_invite/enQtOTYwMzk1MDk5MjAwLTAyMjk4NjJiZmIwN2IwZGQzOTUwNmJlMDk2OTE4ZjU2ODFiZGViNmZiZWY2OTMzOWRkN2EwODk0ZjVhYTAzNDM jututoa link] .&lt;br /&gt;
&lt;br /&gt;
See, mis sa päeva lõpuks (ja kuidas) realiseerid, sõltub sellest, mis tehnoloogiad sa käima saad (kas saad flaski ja pythoni ja sqlite käima, kas oled juba saanud sisse logida ja tegutseda jne). Kui sa mingite tehnoloogiatega hätta jääd, vali alternatiivne lahendus, millega asjad välja tulevad.&lt;br /&gt;
&lt;br /&gt;
Kui andmete saamine andmebaasi osutub keeruliseks (sest näiteks sa ei saanud Pythonit ja Flaski ja sqlite oma arvutisse, serverisse ei õnnestu või on keeruline sisse logida vms) siis on OK teha alternatiivselt lihtsamaid ülesandeid ilma andmebaasita:&lt;br /&gt;
&lt;br /&gt;
* Andmete sqlite sisestamise asemel võid panna andmed otse veebilehele või csv faili, nii et neid serveris eraldi ei töödeldagi ja kuvamist ja valikuid teeb javascript otse veebilehel. Loe ja kasuta [[toorandmete lugemine otse javascriptis|õpetust ja näitekoodi]]&lt;br /&gt;
* Html lehe digitalocean serverisse panemise asemel kas paned nad tehnikaülikooli [http://lambda.ee/wiki/ITV0110_1._t%C3%B6%C3%B6:_Html_p%C3%B5hioskused#Dijkstra_server dijkstra serverisse] või jätkad html lehe arendamist oma arvutis failidena, mida brauser siis kuvab.&lt;br /&gt;
&lt;br /&gt;
Andmebaasiga rakenduse tegemise ja reaalse käivitamise jaoks on mitu varianti:&lt;br /&gt;
&lt;br /&gt;
* Arendad ja testid oma arvutis, pärast paned oma serverisse või dijkstrasse (siis peab sinu arvutis ja/või sinu serveris olema installeeritud Python ja Flask ja pead saama pythoni programme käsurealt käivitada)&lt;br /&gt;
* Arendad ja testid otse oma serveris (sinna tuleb installeerida Python (versioon 3) ja Flask)&lt;br /&gt;
* Arendad ja testid otse dijkstras (sinna ei tule midagi installeerida, sinu programm käib otse veebiserveri all).&lt;br /&gt;
&lt;br /&gt;
Kuidas arendada ja testida otse dijkstras:&lt;br /&gt;
* Logi putty programmiga dijkstrasse ja mine oma kataloogi /home/kasutajanimi, kui sa kohe juba sinna ei satu&lt;br /&gt;
* Failide kopeerimiseks kasuta winscp programmi.&lt;br /&gt;
* Saad faile ka otse dijkstras redigeerida winscp sisse-ehitatud redaktori abil: seda saad omakorda konfida, muutes sisse-ehitatud redaktori asemel kasutatavaks hoopis oma mingi redaktori, loe [[[http://lambda.ee/wiki/ITV0110_1._t%C3%B6%C3%B6:_Html_p%C3%B5hioskused#Dijkstra_server siit, kuidas]). VS Code sisse on ehitatud ka spetsiaalne eemalt-serverist-redigeerimise funktsionaalsus.&lt;br /&gt;
&lt;br /&gt;
Kõigis järgmistes näidetes on käsureal linuxis (aga mitte windowsis!):&lt;br /&gt;
* enne programmi käivitamist ütle käsurealt samas kataloogis algul korra chmod a+rx programminimi (näiteks, chmod a+rx makedb.py)&lt;br /&gt;
* oma programmi käivitamiseks vaja tema nime ette kirjutada ./ (näiteks, makedb.py asemel kirjuta ./makedb.py) &lt;br /&gt;
&lt;br /&gt;
Esimese asjana on sul vaja andmebaas teha ja oma andmed sinna sisse saada. Selleks alusta näiteprogrammidest:&lt;br /&gt;
* [[makedb.py]] teeb lihtsalt tühja baasi nimega data.db: makedb.py&lt;br /&gt;
* [[import.py]] impordib andmed csv-st baasifaili data.db, anna sellele csv fail käsurealt niimoodi ette: import.py data.csv&lt;br /&gt;
* csv faili näitena võid kasutada [[data.csv]]&lt;br /&gt;
* [[check.py]] trükib kontrolliks andmebaasi data.db sisu välja: check.py&lt;br /&gt;
&lt;br /&gt;
Teise asjana on sul vaja panna käima veebiteenuse programm, millelt saad brauseriga andmeid küsida. Siin on mitu varianti:&lt;br /&gt;
&lt;br /&gt;
* Oma arvutis Flaski abil kasuta [[servewithflask.py]] ja selle kaivitamiseks linuxis [[runserver]]&lt;br /&gt;
* Dijkstras tee kataloog /home/minukasutaja/public_html/cgi-bin: selleks mine (cd /home/minukasutaja/public_html) ja ütle mkdir cgi-bin&lt;br /&gt;
* Kopeeri programm [[serve.py]] dijkstras kataloogi /home/minukasutaja/public_html/cgi-bin ja ütle seal chmod a+rx serve.py&lt;br /&gt;
* Kopeeri andmebaas data.db samasse kataloogi /home/minukasutaja/public_html/cgi-bin ja ütle seal chmod a+rw data.db&lt;br /&gt;
* Ava katseks url http://dijkstra.cs.ttu.ee/~tammet/cgi-bin/serve.py kus tammet asemel pane oma kasutajanimi&lt;br /&gt;
&lt;br /&gt;
Kolmanda asjana on sul vaja veebileht õigesse kohta kopeerida:&lt;br /&gt;
&lt;br /&gt;
* Oma arvutis Flaski abil tee oma programmide kataloogi alamkataloog static, muuda [[index.html]] sees url dijkstra asemel oma arvuti urliks (koodis on ta olemas, aga välja kommenteeritud) ja kopeeri [[index.html]] sinna, siis ava url http://localhost:5000/static/index.html&lt;br /&gt;
* Dijkstras muuda [[index.html]] sees url-s tammet oma kasutajanimeks ja siis kopeeri fail kataloogi /home/minukasutaja/public_html ja ava ta kui http://dijkstra.cs.ttu.ee/~tammet/ kus tammet asemel pane oma kasutajanimi&lt;br /&gt;
&lt;br /&gt;
== 3. päev: veebilehe kasutajaliidese tegemine ja seostamine andmebaasiga ==&lt;br /&gt;
&lt;br /&gt;
Siit alates on kolm tegevussuunda kursuse lõpuni:&lt;br /&gt;
&lt;br /&gt;
* Brauserist Flaskiga pythoni programmilt andmete küsimine.&lt;br /&gt;
* Andmete arusaadav kuvamine.&lt;br /&gt;
* Kasutajaliidese parandamine.&lt;br /&gt;
&lt;br /&gt;
Kui sinu rakendus veel ei käi serveris (dijkstras või digitaloceanis), siis esimene ülesanne on ta seal reaalselt käima saada, nii et saad oma brauserist rakenduse kuvatavat veebilehte näha. Pane tähele, et nagu eelmise päeva kirjelduses öeldud, on dijkstras soovitav alustada [[serve.py]] näitest ja digitaloceanis hoopis [[servewithflask.py]] näitest: &lt;br /&gt;
* dijkstras annab veebilehti välja seal juba installeeritud apache veebiserver, kes käivitab sinu [[serve.py]] programmi&lt;br /&gt;
* digitaloceanis annab veebilehti välja sinu [[servewithflask.py]] programm otse, ilma apache veebiserverita (kuigi, ka seal saad soovi korral ise installeerida apache veebiserveri, mis nõuab aga ekstra pingutusi).&lt;br /&gt;
&lt;br /&gt;
Kui sa päeva lõpuks rakendust käima ei saagi, siis on alternatiiv minna lihtsama vastupanu teed ja teha rakendus ainult brauseripõhine, ilma serveri osata (selliselt su rakendus keerulisemaid asju teha ja suuri andmekoguseid töödelda ei saa), selleks kasuta seda [[toorandmete lugemine otse javascriptis|õpetust ja näitekoodi]]&lt;br /&gt;
&lt;br /&gt;
Alles siis, kui sinu rakendus juba rahuldavalt käib, on järgmine ülesanne teda täiustada. Konkreetselt, mida peaks täiustama, sõltub sinu andmehulgast ja ülesande valikust ja senisest edukusest. Mõtle see ise läbi ja alusta lihtsamast. Esimesed ideed, mida teha:&lt;br /&gt;
&lt;br /&gt;
* Muuda kujundust ilusamaks. Seda saad teha puhtalt html-i ja css-i täiustades, programme pole vaja muuta.&lt;br /&gt;
* Lisa filter otsinguks. Selleks tee veebilehele input tagi abil sisendikast ja lisa nupp, mis lisab javascriptis päringule filtri. Seda saad teha html-i ja javascripti programmi muutes, serveris muutusi ei ole vaja.&lt;br /&gt;
* Realiseeri sorteerimine mõne tulba järgi. Selleks tee tulp klikitavaks ja klikkimise tulemusena lisa javascriptis päringule sorteeringuparameeter. Selleks on sul lisaks htmli ja javascripti muutmisele lisada päringule sorteerimisparameetrid (väljanimi ja suund) ja muuta serverirakendust, konkreetselt eriti just seda rida tuleb edasi arendada, pannes sinna id ja asc asemele päringus antavad väärtused:  sql = sql + &amp;quot; order by id asc&amp;quot;&lt;br /&gt;
* Kui mõnda tulpa oleks mõttekas summeerida või keskmisi arvutada, siis arvuta lisaks summa/keskmine ja kuva see lehele sobivasse kohta välja. Selle jaoks on sul vaja serveripoolset rakendust keerukamalt täiendada, et ta arvutaks sql päringu abil lisaks summa/keskmise ja annaks selle koos loeteluga sinu javascriptile välja, kes siis saab sealt mõlemad osad kätte ja kuvab neid veebilehel.&lt;br /&gt;
&lt;br /&gt;
Keerukuselt järgmine on seniste ridade muutmine ja uute lisamine. Siin on sul vaja ka serveripoolset rakendust suuremas mahus edasi ehitada.&lt;br /&gt;
&lt;br /&gt;
Serverirakenduse täiustamiseks on hea mõte uurida [https://www.sqlitetutorial.net/sqlite-python/ sqlite tutorialit pythoni jaoks] ja võibolla lisaks ka [https://www.w3schools.com/sql/sql_intro.asp w3schools SQL tutorialit]&lt;br /&gt;
&lt;br /&gt;
== 4. päev: kujunduse parandamine, testimine, arenduse jätk ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 5. päev: edasiarenduse planeerimine, vigade ja puuduste parandamine, ettekanne ==&lt;br /&gt;
&lt;br /&gt;
Päeva põhieesmärk on edasiarenduse planeerimine: mida saaks/tasuks süsteemi juurde teha, kes ja kui palju neid täiendusi kasutaks,&lt;br /&gt;
mis oleks tehnoloogiline/arhitektuuriline plaan edasiarenduse jaoks, mis on ajalise ja rahalised hinnangud, milline oleks&lt;br /&gt;
projektiplaani kondikava. Edasiarenduse kontekstiks oleks selle tellimine, mitte teiepoolne tegelik ehitamine.&lt;br /&gt;
&lt;br /&gt;
Ülejäänud aeg kasuta oma rakenduse täiustamisele: tee need asjad korda, mis jäid puudulikuks.&lt;br /&gt;
&lt;br /&gt;
Kursuse lõpus teevad kõik grupid veidi pikema presentatsiooni, ca 15 minutit:&lt;br /&gt;
* kui kaugele te oma rakendusega jõudsite, sh reaalne demo,&lt;br /&gt;
* mis oli algses plaanis, aga mis tingimata päris lõpp-rakendusse veel ei jõudnud,&lt;br /&gt;
* ettekanne oma edasiarenduse plaanist ja selle lühike arutelu.&lt;/div&gt;</summary>
		<author><name>Radu</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogiad&amp;diff=16768</id>
		<title>Tarkvaratehnoloogiad</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogiad&amp;diff=16768"/>
		<updated>2020-02-27T11:37:09Z</updated>

		<summary type="html">&lt;p&gt;Radu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Pilt:matrix.jpg|left|IT]] --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Ainekood: ITO8020&amp;lt;br&amp;gt;&lt;br /&gt;
Link: http://www.lambda.ee/wiki/tarkvaratehnoloogiad&amp;lt;br&amp;gt;&lt;br /&gt;
Link ÕISi https://ois.ttu.ee/aine/ito8020&amp;lt;br&amp;gt;&lt;br /&gt;
Õppejõud: [http://www.facebook.com/tanel.tammet Tanel Tammet]&amp;lt;br&amp;gt;&lt;br /&gt;
Kontakt: tanel.tammet@ttu.ee, 6203457, ICT 426&amp;lt;br&amp;gt;&lt;br /&gt;
Varasemast: [[Tarkvaratehnoloogiad 2019 aasta arhiiv]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB! Vaatamiseks enne järgmisi praktikume&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Enne järgmist praktikumi palun vaata läbi videod ja tutvu lühidalt lisamaterjalidega selles järjekorras:&lt;br /&gt;
&lt;br /&gt;
* 5.5 Veebilehed&lt;br /&gt;
* 5.4 Programmeerimise sissejuhatus Pythonis&lt;br /&gt;
* 5.6 Server ja veebirakendus&lt;br /&gt;
* 5.7 Andmebaasiga serverirakenduse ehitamine&lt;br /&gt;
&lt;br /&gt;
Liituge Slack jututoaga:&lt;br /&gt;
* [https://join.slack.com/t/taltechtarkva-acc6522/shared_invite/enQtOTYwMzk1MDk5MjAwLTAyMjk4NjJiZmIwN2IwZGQzOTUwNmJlMDk2OTE4ZjU2ODFiZGViNmZiZWY2OTMzOWRkN2EwODk0ZjVhYTAzNDM jututoa link]&lt;br /&gt;
== Kursuse eesmärk ja põhimõtted ==&lt;br /&gt;
&lt;br /&gt;
Mõista IT-süsteemide tehnoloogilist konstruktsiooni, arendusvahendeid ja arendusprotsesse. &lt;br /&gt;
&lt;br /&gt;
Saada aru riistvara, tarkvara ja kommunikatsiooniprotokollide ehituse põhiideedest. &lt;br /&gt;
&lt;br /&gt;
Mõista&lt;br /&gt;
* tarkvara peamisi arhitektuurivariante, &lt;br /&gt;
* erinevate programmeerimiskeelte olemust, &lt;br /&gt;
* teekide ja raamistike kasutamise üldisi põhimõtteid,&lt;br /&gt;
* erinevate arendusprotsesside ideid.&lt;br /&gt;
&lt;br /&gt;
Kursuse raames ülikoolis kohapeal loenguid ei toimu: kõik loengud on varasemalt salvestatud videosse,&lt;br /&gt;
ja lisatud presentatsioon, vaata siin lehel allpool.&lt;br /&gt;
&lt;br /&gt;
Kohapealne töö (praktikum/konsultatsioon) on mõeldud eeskätt praktilise arenduskogemuse saamiseks, &lt;br /&gt;
eesmärgiga omaenda katsetuste najal tekitada arusaamine, mismoodi praktiline arendusprotsess toimub,&lt;br /&gt;
mida ja  kuidas standardtehnoloogiatega teha saab, mis on keeruline ja mis lihtne. &lt;br /&gt;
&lt;br /&gt;
Kohapealne praktiline töö eeldab varasemat tutvumist osade allpool toodud teemadega.&lt;br /&gt;
&lt;br /&gt;
Esimeseks praktikumiks oleks väga soovitav vaadata/lugeda läbi allpool materjalid teemadel&lt;br /&gt;
* Veebilehed (tingimata)&lt;br /&gt;
* Programmeerimise sissejuhatus Pythonis (soovitav)&lt;br /&gt;
&lt;br /&gt;
== Hindamine ==&lt;br /&gt;
&lt;br /&gt;
Kursus lõpeb eksamiga. Eksam on kirjalik ja selle tegemiseks kulub orienteeruvalt poolteist tundi. Aega eksamiks on kolm tundi.&lt;br /&gt;
&lt;br /&gt;
Hindamisel arvestatakse praktikumide tulemusi kaaluga 40% ja eksamitulemusi kaaluga 60%.&lt;br /&gt;
&lt;br /&gt;
Eksamis ei tule otseseid programmeerimisülesandeid ning vastused tuleb kirjutada paberile: arvutit ja lisamaterjale kasutada ei või. Küsimused tulevad  järgmisest neljast sordist:&lt;br /&gt;
&lt;br /&gt;
* Küsimused mõistete ja põhimõtete ja tehnoloogiate kohta: mis on mis ja milleks kasutatakse. Vastused on siis paarilauselised seletused. Küsimused tulevad ainult kursuse powerpointides ja videoloengutes toodu kohta.&lt;br /&gt;
* Kontrollküsimused eesmärgiga aru saada, kas olete lugenud kursuse lehel arendusprotsesside peatüki lõpus oleva kirjanduse läbi. Iga selline küsimus küsib midagi lühidat teksti mõne põhipunkti või eriti meeldejääva asjaolu kohta: pikemaid vastuseid/referaate ei ole vaja kirjutada.&lt;br /&gt;
* Küsimused väikeste näite-koodi-juppide - python, javascript, html, css - äratundmise ja esmase arusaamise kohta. Kõik need näitejupid võetakse otse kursuse powerpointidest ja videoloengutest ja küsitakse, mis keeles jupp ja mida ta umbes teeb.&lt;br /&gt;
* Küsimused, kus antakse ülesanne pakkuda välja arhitektuuriline ja tehnoloogiline lahendus mingile suhteliselt väikesele tarkvara-loomise probleemile, seda lahendust põhjendada ja tuua välja orienteeruv töömaht lahenduse eri osadele ja võimalikud riski- ning keerukuskohad.&lt;br /&gt;
&lt;br /&gt;
== Praktikumi/konsultatsiooni ajad ==&lt;br /&gt;
&lt;br /&gt;
Eri rühmadel neljapäeviti ja reedeti ruumis ICT-501:&lt;br /&gt;
&lt;br /&gt;
B-rühm (IADM20B) neljapäeviti:&lt;br /&gt;
&lt;br /&gt;
* 30.01.2020 kl 16-20.30&lt;br /&gt;
* 13.02.2020 kl 16-20.30&lt;br /&gt;
* 27.02.2020 kl 16-20.30&lt;br /&gt;
* 12.03.2020 kl 16-20.30&lt;br /&gt;
* 26.03.2020 kl 16-20.30 &lt;br /&gt;
&lt;br /&gt;
A-rühm (IADM20A) reedeti:&lt;br /&gt;
&lt;br /&gt;
* 31.01.2020 kl 15-19.30&lt;br /&gt;
* 14.02.2020 kl 15-19.30&lt;br /&gt;
* 28.02.2020 kl 15-19.30&lt;br /&gt;
* 13.03.2020 kl 15-19.30&lt;br /&gt;
* 27.03.2020 kl 15-19.30&lt;br /&gt;
&lt;br /&gt;
== Praktiline ülesanne ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NB! Esimese praktikumi eel on väga soovitav tutvuda allpool klippide ja materjalidega teemadel &amp;quot;veebilehed&amp;quot; (tingimata)&lt;br /&gt;
ja &amp;quot;programmeerimise sissejuhatus Pythonis&amp;quot; (soovitav)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Kursuse kodu-või-praktikumiülesandeks on (a) reaalse rakenduse planeerimine ja ehitamine, mis kuvab kasutajale veebis mõistetavalt ja otsitavalt ja/või sorteeritavalt mingit reaalset andmestikku, mis on soovitavalt teie enda töökohast pärit. Kui sa sobivat andmestikku oma töökohast ei leia, vali mõni töödeldav ja huvitav andmestik [https://opendata.riik.ee/ eesti avaandmete portaalist], (b) edasiarenduse planeerimine hüpoteetiliseks tellimiseks.&lt;br /&gt;
&lt;br /&gt;
Soovitav on tulemus panna üles avalikku pilveserverisse (soovitus: [http://digitalocean.com digitalocean]) ja kood avalikku koodihoidlasse (soovitus: [http://github.com github]). Alternatiiv on panna tulemus dijkstra serverisse Taltechis.&lt;br /&gt;
&lt;br /&gt;
Github on tasuta, digitalocean annab alustajatele ca 100 USD krediiti ja lisaks on olemas Github student pack, mis sisaldab ca 50 USD digitaloceani krediiti. Rangelt kohustuslik avaliku veebiserveri ja githubi kasutamine ei ole: väiksema arvu punkte saab praktikumist ka siis, kui realiseerid kõik lihtsalt oma arvutis ja ei pane kuhugi üles.&lt;br /&gt;
&lt;br /&gt;
=== Praktikumi töökorraldus ===&lt;br /&gt;
&lt;br /&gt;
Ülesannet võib teha üksi või kahekesi. &lt;br /&gt;
&lt;br /&gt;
Kursuse praktikumipäevadel tegeleme teie projekti realiseerimise etappidega, ning iga etapi/praktikumipäeva lõpuks vaatame üle hetkeseisu ja anname esialgsed hinnangud, kui kaugele on jõutud ja mis on edasised sammud, veidi sarnaselt tüüpiliste agiilse arenduse hetkeseisu-koosolekutega.&lt;br /&gt;
&lt;br /&gt;
Selleks peab iga grupp tegema praktikumipäeva lõpus paariminutise ettekande, kus on öeldud:&lt;br /&gt;
* grupi liikmete nimed&lt;br /&gt;
* mida sel päeval üritati teha ja kuhu jõuti&lt;br /&gt;
* mis on plaan järgmise praktikumikorraga saavutada&lt;br /&gt;
&lt;br /&gt;
Praktikumijuhendaja hindab iga päeva progressi.&lt;br /&gt;
&lt;br /&gt;
Lõpp-presentatsioon viimasel päeval peaks olema pikem, ca viisteist minutit.&lt;br /&gt;
&lt;br /&gt;
Praktikumi kogutulemusest on arvestuslikult ca 50% lõpptulemus ja teine ca 50% esimese nelja päeva tulemused.&lt;br /&gt;
&lt;br /&gt;
=== Praktikumi etapid ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jagame töö etapiviisi viiele praktikumi päevale: nende jaoks on eraldi wikileht [[tarkvaratehnoloogia praktikumide etapid]].&lt;br /&gt;
&lt;br /&gt;
== Loengud ja materjalid ==&lt;br /&gt;
&lt;br /&gt;
Loengud on salvestatud youtube klippidena, iga loenguga on seotud presentatsioon ja soovitavad täiendavad materjalid ja lingid.&lt;br /&gt;
&lt;br /&gt;
Videoloengute [https://www.youtube.com/playlist?list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO youtube üldlisti] järjekord on suvaline, kasuta pigem allolevaid linke õiges järjekorras.&lt;br /&gt;
&lt;br /&gt;
=== Sissejuhatus ja põhimõisted ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_sissejuhatus.pptx|Sissejuhatus]] ja [https://www.youtube.com/watch?v=y8wMd-Qy26I&amp;amp;index=21&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media:tt_põhimõisted.ppt|Põhimõisted]] ja [https://www.youtube.com/watch?v=PWM2PU4DiYA&amp;amp;index=2&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video].&lt;br /&gt;
&lt;br /&gt;
=== Kuidas arvuti töötab ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_protsessor.ppt|Protsessor]] ja [https://www.youtube.com/watch?v=dMawoey6TCE&amp;amp;index=3&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Eelmise presentatsiooni lõpuosa ja seejärel [http://skilldrick.github.io/easy6502/ reaalne näide protsessori käskudega]: [https://www.youtube.com/watch?v=vid3W9E_z-w&amp;amp;index=4&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Soovitavalt loe veel:&lt;br /&gt;
* [https://blog.codinghorror.com/the-infinite-space-between-words/ The infinite space between words]&lt;br /&gt;
* [https://news.ycombinator.com/ võibolla peamine arendajate üldhuvi-uudistesait]: loe seda iga päev!&lt;br /&gt;
&lt;br /&gt;
=== Interneti funktsioneerimine ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_interneti_funktsioneerimine_1.ppt|Esimene osa]] ja [https://www.youtube.com/watch?v=kwhGs1kxLvY&amp;amp;index=5&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] &lt;br /&gt;
* [[Media:tt_interneti_funktsioneerimine_2.ppt|Teine osa]] ja [https://www.youtube.com/watch?v=WBxr3aTjNzo&amp;amp;index=6&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
=== Programmeerimise sissejuhatus Pythonis ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_programmeerimise_sissejuhatus.pptx|Programmeerimise sissejuhatus]]: [https://www.youtube.com/watch?v=whyQ6Y9pUvY&amp;amp;t=0s&amp;amp;index=11&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Programmeerimine 2: python [https://www.youtube.com/watch?v=KiXcqKc8MMo&amp;amp;t=0s&amp;amp;index=10&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Programmeerimine 3: tingimused, tsüklid, funktsioonid: [https://www.youtube.com/watch?v=-JNGmN_voBA&amp;amp;t=0s&amp;amp;index=20&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] &lt;br /&gt;
* Programmeerimine 4: failitöötlus [https://www.youtube.com/watch?v=fUWTsE9nfXM&amp;amp;t=0s&amp;amp;index=13&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] ja [[failitöötluse näitekood pythonis]]&lt;br /&gt;
* Programmeerimine 5: andmeimport ja andmete seostamine [https://www.youtube.com/watch?v=xBXvsSeNTpk&amp;amp;t=0s&amp;amp;index=14&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Vajalik Pythoni tarkvara:&lt;br /&gt;
&lt;br /&gt;
* [http://python.org Pythoni põhisait]&lt;br /&gt;
* [https://realpython.com/installing-python/ Päris OK installerimise õpetus]&lt;br /&gt;
* Failid [https://www.python.org/downloads/release/python-381/ võta selle lehe allosast]&lt;br /&gt;
&lt;br /&gt;
Head pikemad õpetused:&lt;br /&gt;
&lt;br /&gt;
* Kõige lihtsam: [https://www.w3schools.com/python/default.asp w3schools python] &lt;br /&gt;
* Veidi keerulisem: [https://docs.python.org/3/tutorial/index.html tutorial pythoni lehel]&lt;br /&gt;
* [https://progeopik.cs.ut.ee Eestikeelne õpik]&lt;br /&gt;
&lt;br /&gt;
Tekstiredaktorid:&lt;br /&gt;
&lt;br /&gt;
* päris rikkalik: [https://code.visualstudio.com/ vs code]&lt;br /&gt;
* keskmiselt rikkalik: [https://atom.io/ atom]&lt;br /&gt;
* üpris minimaalne: [https://notepad-plus-plus.org/ notepad++]&lt;br /&gt;
* eriti minimaalne: [https://www.scintilla.org/SciTE.html scite]&lt;br /&gt;
&lt;br /&gt;
=== Veebilehed ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_veeb.pptx|Sissejuhatus teemasse]]&lt;br /&gt;
* Esimene osa,  html: [https://www.youtube.com/watch?v=tXrYZ7hcF2Y&amp;amp;index=7&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Teine osa, css: [https://www.youtube.com/watch?v=6ACCz9wwLCQ&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO&amp;amp;index=8 video]&lt;br /&gt;
* Kolmas osa, javascript: [https://www.youtube.com/watch?v=ub32ImHktu8&amp;amp;t=0s&amp;amp;index=8&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Kõige paremad veebiehituse õpetused algajale on [https://www.w3schools.com/ w3schools saidil]&lt;br /&gt;
&lt;br /&gt;
Üleüldine peamine küsimuste/vastuste sait on [https://stackoverflow.com/ stackoverflow].&lt;br /&gt;
&lt;br /&gt;
=== Server ja veebirakendus ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_server.pptx|Põhipunktid ja koodinäited]]. &lt;br /&gt;
* Esimene osa, server ja veebiteenus: [https://www.youtube.com/watch?v=z51YWLfbv4Y&amp;amp;t=0s&amp;amp;index=15&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Teine osa, veebirakendus: [https://www.youtube.com/watch?v=lq0WeTzye9I&amp;amp;t=0s&amp;amp;index=19&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Flask server:&lt;br /&gt;
&lt;br /&gt;
* Kasutame Pythoni populaarset micro-frameworki [http://flask.pocoo.org Flask]&lt;br /&gt;
* Sul peab olema Windowsil käsurealt käivitatav python ja pip. pip on levinuim Pythoni moodulite installeerimise-programm.&lt;br /&gt;
* Ütle käsurealt: &amp;lt;tt&amp;gt;pip install flask&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Flask veel ise käima ei lähe: loe presentatsioonist edasi.&lt;br /&gt;
* NB! Kui paned oma flaski abil tehtud serveriprogrammi serverisse tööle, siis viimase asjana kirjuta app.run(debug=True, port=5000, host=&#039;0.0.0.0&#039;) kus on näidetega võrreldes lisaks host=... : see lubab väljapoolt serverit ligi pääseda.&lt;br /&gt;
&lt;br /&gt;
=== Andmebaasiga serverirakenduse ehitamine ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_sql.pptx|Andmebaasid]]&lt;br /&gt;
&lt;br /&gt;
* Andmebaasid ja SQL [https://www.youtube.com/watch?v=K8yQrsDy2dc&amp;amp;t=0s&amp;amp;index=18&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Serverirakendus ja SQL 1. osa [https://www.youtube.com/watch?v=4CZ5LuWGQJc&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO&amp;amp;index=16 video]&lt;br /&gt;
* Serverirakendus ja SQL 2. osa [https://www.youtube.com/watch?v=nrazU1aKLzI&amp;amp;t=0s&amp;amp;index=16&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Soovitavalt uuri veidi: [https://www.w3schools.com/sql/sql_intro.asp w3schools SQL tutorial]&lt;br /&gt;
* Näited:&lt;br /&gt;
**[[sql insert-lausete näited andmete sisestamiseks|Tabelite tegemise ja andmete sisestamise näited]]&lt;br /&gt;
** [[sqlite andmebaasi tegemine ja kasutamine Pythonist]]&lt;br /&gt;
** [[blogiprogramm]]&lt;br /&gt;
&lt;br /&gt;
=== Tehisintellekt ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_tehisintellekt.pptx|Tehisintellekt]] ja [https://www.youtube.com/watch?v=USEUHWOwX8Q&amp;amp;t=0s&amp;amp;index=22&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Soovitavalt vaata ja loe lisaks:&lt;br /&gt;
&lt;br /&gt;
* Boston Dynamics [http://www.youtube.com/watch?v=ae06LFa3i38 robot donkey (aka big dog) varane], [http://www.youtube.com/watch?v=BtRnzlO7m_M big dog praegu], [http://www.youtube.com/watch?v=chPanW0QWhA Cheetah], [http://www.youtube.com/watch?v=wE3fmFTtP9g Wildcat],[http://www.youtube.com/watch?v=tFrjrgBV8K0 Petman], [http://www.youtube.com/watch?v=SD6Okylclb8 Atlas]&lt;br /&gt;
* [https://www.tastehit.com/blog/google-deepmind-alphago-how-it-works/ Kuidas AlphaGo töötab]&lt;br /&gt;
* Darpa [http://en.wikipedia.org/wiki/DARPA_Grand_Challenge grand challenge 2005] ja [http://archive.darpa.mil/grandchallenge/ urban challenge]&lt;br /&gt;
* [http://idlewords.com/talks/superintelligence.htm Miks mitte karta super-tehisintellekti]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Rodney_Brooks Rodney Brooksi] väike tehisintellekti-sari [https://rodneybrooks.com/forai-steps-toward-super-intelligence-ii-beyond-the-turing-test/ osa 1], [https://rodneybrooks.com/forai-steps-toward-super-intelligence-ii-beyond-the-turing-test/ osa 2], [https://rodneybrooks.com/forai-steps-toward-super-intelligence-iii-hard-things-today/ osa 3],  [https://rodneybrooks.com/forai-steps-toward-super-intelligence-iv-things-to-work-on-now/ osa 4]&lt;br /&gt;
&amp;lt;!-- õppejõu pikem [https://www.youtube.com/watch?v=ftYrfTo_W2E  tehisintellektiteemaline vestlus] &amp;quot;intrigeeriva pärastlõuna&amp;quot; podcastisarjas. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Arendusvahendid, programmeerimiskeeled ja arhitektuur ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_arendusvahendid.pptx|Arendusvahendid]] [https://www.youtube.com/watch?v=zHGPqdft8yk&amp;amp;t=0s&amp;amp;index=25&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media: tt_programmeerimiskeeled.pptx|Programmeerimiskeeled]] [https://www.youtube.com/watch?v=4INtjYLmQeI&amp;amp;t=0s&amp;amp;index=24&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media:tt_arhitektuur.pptx|Arhitektuur]]: [https://www.youtube.com/watch?v=NOr9mGXOL5c&amp;amp;t=0s&amp;amp;index=27&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video esimene osa] ja [https://www.youtube.com/watch?v=OWnPJ_Xcw1M&amp;amp;t=402s&amp;amp;index=23&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video teine osa]&lt;br /&gt;
&lt;br /&gt;
=== Arendusprotsess ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_arendusprotsess.pptx|Arendusprotsess]] ja [https://www.youtube.com/watch?v=_GERtMiNcX4&amp;amp;t=0s&amp;amp;index=26&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Loe (pikemad sirvi) need arendusprotsessiga seotud artiklid kursuse käigus läbi. Nende kõigi kohta võidakse eksamil küsida lugemiskontrolli-küsimusi.&lt;br /&gt;
&lt;br /&gt;
* Paul Graham [http://paulgraham.com/hp.html Hackers and painters]&lt;br /&gt;
* Paul Graham: [http://www.paulgraham.com/start.html How to start a startup?]&lt;br /&gt;
* Paul Graham: [http://www.paulgraham.com/gh.html Great hackers]&lt;br /&gt;
* Joel Spolsky: [https://www.joelonsoftware.com/2002/02/13/the-iceberg-secret-revealed/ The iceberg secret revealed]&lt;br /&gt;
* Joel Spolsky: [http://www.joelonsoftware.com/articles/fog0000000043.html IT firma töökorraldus: 12 sammu]&lt;br /&gt;
* [https://agilemanifesto.org/ Agiilarenduse manifest] ja [https://agilemanifesto.org/principles.html selle lisapunktid]&lt;br /&gt;
* Paul Reeves: [http://www.developerdotstar.com/mag/articles/reeves_design.html What is software design?] vana artikkel ja [http://www.developerdotstar.com/mag/articles/reeves_13yearslater.html What Is Software Design: 13 Years Later]&lt;br /&gt;
* Gnu manifest [http://www.gnu.org/philosophy/free-sw.html The Free Software Definition] ja [https://www.gnu.org/licenses/license-list.en.html Gnu ülevaade litsentsidest]&lt;br /&gt;
* Fred Brooks 1986: [http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBullet.html No Silver Bullet]&lt;br /&gt;
* [https://zwischenzugs.com/2017/10/15/my-20-year-experience-of-software-development-methodologies/ 20 aastat kogemust tarkvara arendusmeetoditega]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Kursus]]&lt;/div&gt;</summary>
		<author><name>Radu</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogiad&amp;diff=16767</id>
		<title>Tarkvaratehnoloogiad</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogiad&amp;diff=16767"/>
		<updated>2020-02-27T11:36:37Z</updated>

		<summary type="html">&lt;p&gt;Radu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Pilt:matrix.jpg|left|IT]] --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Ainekood: ITO8020&amp;lt;br&amp;gt;&lt;br /&gt;
Link: http://www.lambda.ee/wiki/tarkvaratehnoloogiad&amp;lt;br&amp;gt;&lt;br /&gt;
Link ÕISi https://ois.ttu.ee/aine/ito8020&amp;lt;br&amp;gt;&lt;br /&gt;
Õppejõud: [http://www.facebook.com/tanel.tammet Tanel Tammet]&amp;lt;br&amp;gt;&lt;br /&gt;
Kontakt: tanel.tammet@ttu.ee, 6203457, ICT 426&amp;lt;br&amp;gt;&lt;br /&gt;
Varasemast: [[Tarkvaratehnoloogiad 2019 aasta arhiiv]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB! Vaatamiseks enne järgmisi praktikume&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Enne järgmist praktikumi palun vaata läbi videod ja tutvu lühidalt lisamaterjalidega selles järjekorras:&lt;br /&gt;
&lt;br /&gt;
* 5.5 Veebilehed&lt;br /&gt;
* 5.4 Programmeerimise sissejuhatus Pythonis&lt;br /&gt;
* 5.6 Server ja veebirakendus&lt;br /&gt;
* 5.7 Andmebaasiga serverirakenduse ehitamine&lt;br /&gt;
&lt;br /&gt;
Liituge Slack jututoaga:&lt;br /&gt;
* [https://join.slack.com/t/taltechtarkva-acc6522/shared_invite/enQtOTYwMzk1MDk5MjAwLTAyMjk4NjJiZmIwN2IwZGQzOTUwNmJlMDk2OTE4ZjU2ODFiZGViNmZiZWY2OTMzOWRkN2EwODk0ZjVhYTAzNDM|jututoa link]&lt;br /&gt;
== Kursuse eesmärk ja põhimõtted ==&lt;br /&gt;
&lt;br /&gt;
Mõista IT-süsteemide tehnoloogilist konstruktsiooni, arendusvahendeid ja arendusprotsesse. &lt;br /&gt;
&lt;br /&gt;
Saada aru riistvara, tarkvara ja kommunikatsiooniprotokollide ehituse põhiideedest. &lt;br /&gt;
&lt;br /&gt;
Mõista&lt;br /&gt;
* tarkvara peamisi arhitektuurivariante, &lt;br /&gt;
* erinevate programmeerimiskeelte olemust, &lt;br /&gt;
* teekide ja raamistike kasutamise üldisi põhimõtteid,&lt;br /&gt;
* erinevate arendusprotsesside ideid.&lt;br /&gt;
&lt;br /&gt;
Kursuse raames ülikoolis kohapeal loenguid ei toimu: kõik loengud on varasemalt salvestatud videosse,&lt;br /&gt;
ja lisatud presentatsioon, vaata siin lehel allpool.&lt;br /&gt;
&lt;br /&gt;
Kohapealne töö (praktikum/konsultatsioon) on mõeldud eeskätt praktilise arenduskogemuse saamiseks, &lt;br /&gt;
eesmärgiga omaenda katsetuste najal tekitada arusaamine, mismoodi praktiline arendusprotsess toimub,&lt;br /&gt;
mida ja  kuidas standardtehnoloogiatega teha saab, mis on keeruline ja mis lihtne. &lt;br /&gt;
&lt;br /&gt;
Kohapealne praktiline töö eeldab varasemat tutvumist osade allpool toodud teemadega.&lt;br /&gt;
&lt;br /&gt;
Esimeseks praktikumiks oleks väga soovitav vaadata/lugeda läbi allpool materjalid teemadel&lt;br /&gt;
* Veebilehed (tingimata)&lt;br /&gt;
* Programmeerimise sissejuhatus Pythonis (soovitav)&lt;br /&gt;
&lt;br /&gt;
== Hindamine ==&lt;br /&gt;
&lt;br /&gt;
Kursus lõpeb eksamiga. Eksam on kirjalik ja selle tegemiseks kulub orienteeruvalt poolteist tundi. Aega eksamiks on kolm tundi.&lt;br /&gt;
&lt;br /&gt;
Hindamisel arvestatakse praktikumide tulemusi kaaluga 40% ja eksamitulemusi kaaluga 60%.&lt;br /&gt;
&lt;br /&gt;
Eksamis ei tule otseseid programmeerimisülesandeid ning vastused tuleb kirjutada paberile: arvutit ja lisamaterjale kasutada ei või. Küsimused tulevad  järgmisest neljast sordist:&lt;br /&gt;
&lt;br /&gt;
* Küsimused mõistete ja põhimõtete ja tehnoloogiate kohta: mis on mis ja milleks kasutatakse. Vastused on siis paarilauselised seletused. Küsimused tulevad ainult kursuse powerpointides ja videoloengutes toodu kohta.&lt;br /&gt;
* Kontrollküsimused eesmärgiga aru saada, kas olete lugenud kursuse lehel arendusprotsesside peatüki lõpus oleva kirjanduse läbi. Iga selline küsimus küsib midagi lühidat teksti mõne põhipunkti või eriti meeldejääva asjaolu kohta: pikemaid vastuseid/referaate ei ole vaja kirjutada.&lt;br /&gt;
* Küsimused väikeste näite-koodi-juppide - python, javascript, html, css - äratundmise ja esmase arusaamise kohta. Kõik need näitejupid võetakse otse kursuse powerpointidest ja videoloengutest ja küsitakse, mis keeles jupp ja mida ta umbes teeb.&lt;br /&gt;
* Küsimused, kus antakse ülesanne pakkuda välja arhitektuuriline ja tehnoloogiline lahendus mingile suhteliselt väikesele tarkvara-loomise probleemile, seda lahendust põhjendada ja tuua välja orienteeruv töömaht lahenduse eri osadele ja võimalikud riski- ning keerukuskohad.&lt;br /&gt;
&lt;br /&gt;
== Praktikumi/konsultatsiooni ajad ==&lt;br /&gt;
&lt;br /&gt;
Eri rühmadel neljapäeviti ja reedeti ruumis ICT-501:&lt;br /&gt;
&lt;br /&gt;
B-rühm (IADM20B) neljapäeviti:&lt;br /&gt;
&lt;br /&gt;
* 30.01.2020 kl 16-20.30&lt;br /&gt;
* 13.02.2020 kl 16-20.30&lt;br /&gt;
* 27.02.2020 kl 16-20.30&lt;br /&gt;
* 12.03.2020 kl 16-20.30&lt;br /&gt;
* 26.03.2020 kl 16-20.30 &lt;br /&gt;
&lt;br /&gt;
A-rühm (IADM20A) reedeti:&lt;br /&gt;
&lt;br /&gt;
* 31.01.2020 kl 15-19.30&lt;br /&gt;
* 14.02.2020 kl 15-19.30&lt;br /&gt;
* 28.02.2020 kl 15-19.30&lt;br /&gt;
* 13.03.2020 kl 15-19.30&lt;br /&gt;
* 27.03.2020 kl 15-19.30&lt;br /&gt;
&lt;br /&gt;
== Praktiline ülesanne ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NB! Esimese praktikumi eel on väga soovitav tutvuda allpool klippide ja materjalidega teemadel &amp;quot;veebilehed&amp;quot; (tingimata)&lt;br /&gt;
ja &amp;quot;programmeerimise sissejuhatus Pythonis&amp;quot; (soovitav)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Kursuse kodu-või-praktikumiülesandeks on (a) reaalse rakenduse planeerimine ja ehitamine, mis kuvab kasutajale veebis mõistetavalt ja otsitavalt ja/või sorteeritavalt mingit reaalset andmestikku, mis on soovitavalt teie enda töökohast pärit. Kui sa sobivat andmestikku oma töökohast ei leia, vali mõni töödeldav ja huvitav andmestik [https://opendata.riik.ee/ eesti avaandmete portaalist], (b) edasiarenduse planeerimine hüpoteetiliseks tellimiseks.&lt;br /&gt;
&lt;br /&gt;
Soovitav on tulemus panna üles avalikku pilveserverisse (soovitus: [http://digitalocean.com digitalocean]) ja kood avalikku koodihoidlasse (soovitus: [http://github.com github]). Alternatiiv on panna tulemus dijkstra serverisse Taltechis.&lt;br /&gt;
&lt;br /&gt;
Github on tasuta, digitalocean annab alustajatele ca 100 USD krediiti ja lisaks on olemas Github student pack, mis sisaldab ca 50 USD digitaloceani krediiti. Rangelt kohustuslik avaliku veebiserveri ja githubi kasutamine ei ole: väiksema arvu punkte saab praktikumist ka siis, kui realiseerid kõik lihtsalt oma arvutis ja ei pane kuhugi üles.&lt;br /&gt;
&lt;br /&gt;
=== Praktikumi töökorraldus ===&lt;br /&gt;
&lt;br /&gt;
Ülesannet võib teha üksi või kahekesi. &lt;br /&gt;
&lt;br /&gt;
Kursuse praktikumipäevadel tegeleme teie projekti realiseerimise etappidega, ning iga etapi/praktikumipäeva lõpuks vaatame üle hetkeseisu ja anname esialgsed hinnangud, kui kaugele on jõutud ja mis on edasised sammud, veidi sarnaselt tüüpiliste agiilse arenduse hetkeseisu-koosolekutega.&lt;br /&gt;
&lt;br /&gt;
Selleks peab iga grupp tegema praktikumipäeva lõpus paariminutise ettekande, kus on öeldud:&lt;br /&gt;
* grupi liikmete nimed&lt;br /&gt;
* mida sel päeval üritati teha ja kuhu jõuti&lt;br /&gt;
* mis on plaan järgmise praktikumikorraga saavutada&lt;br /&gt;
&lt;br /&gt;
Praktikumijuhendaja hindab iga päeva progressi.&lt;br /&gt;
&lt;br /&gt;
Lõpp-presentatsioon viimasel päeval peaks olema pikem, ca viisteist minutit.&lt;br /&gt;
&lt;br /&gt;
Praktikumi kogutulemusest on arvestuslikult ca 50% lõpptulemus ja teine ca 50% esimese nelja päeva tulemused.&lt;br /&gt;
&lt;br /&gt;
=== Praktikumi etapid ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jagame töö etapiviisi viiele praktikumi päevale: nende jaoks on eraldi wikileht [[tarkvaratehnoloogia praktikumide etapid]].&lt;br /&gt;
&lt;br /&gt;
== Loengud ja materjalid ==&lt;br /&gt;
&lt;br /&gt;
Loengud on salvestatud youtube klippidena, iga loenguga on seotud presentatsioon ja soovitavad täiendavad materjalid ja lingid.&lt;br /&gt;
&lt;br /&gt;
Videoloengute [https://www.youtube.com/playlist?list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO youtube üldlisti] järjekord on suvaline, kasuta pigem allolevaid linke õiges järjekorras.&lt;br /&gt;
&lt;br /&gt;
=== Sissejuhatus ja põhimõisted ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_sissejuhatus.pptx|Sissejuhatus]] ja [https://www.youtube.com/watch?v=y8wMd-Qy26I&amp;amp;index=21&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media:tt_põhimõisted.ppt|Põhimõisted]] ja [https://www.youtube.com/watch?v=PWM2PU4DiYA&amp;amp;index=2&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video].&lt;br /&gt;
&lt;br /&gt;
=== Kuidas arvuti töötab ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_protsessor.ppt|Protsessor]] ja [https://www.youtube.com/watch?v=dMawoey6TCE&amp;amp;index=3&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Eelmise presentatsiooni lõpuosa ja seejärel [http://skilldrick.github.io/easy6502/ reaalne näide protsessori käskudega]: [https://www.youtube.com/watch?v=vid3W9E_z-w&amp;amp;index=4&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Soovitavalt loe veel:&lt;br /&gt;
* [https://blog.codinghorror.com/the-infinite-space-between-words/ The infinite space between words]&lt;br /&gt;
* [https://news.ycombinator.com/ võibolla peamine arendajate üldhuvi-uudistesait]: loe seda iga päev!&lt;br /&gt;
&lt;br /&gt;
=== Interneti funktsioneerimine ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_interneti_funktsioneerimine_1.ppt|Esimene osa]] ja [https://www.youtube.com/watch?v=kwhGs1kxLvY&amp;amp;index=5&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] &lt;br /&gt;
* [[Media:tt_interneti_funktsioneerimine_2.ppt|Teine osa]] ja [https://www.youtube.com/watch?v=WBxr3aTjNzo&amp;amp;index=6&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
=== Programmeerimise sissejuhatus Pythonis ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_programmeerimise_sissejuhatus.pptx|Programmeerimise sissejuhatus]]: [https://www.youtube.com/watch?v=whyQ6Y9pUvY&amp;amp;t=0s&amp;amp;index=11&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Programmeerimine 2: python [https://www.youtube.com/watch?v=KiXcqKc8MMo&amp;amp;t=0s&amp;amp;index=10&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Programmeerimine 3: tingimused, tsüklid, funktsioonid: [https://www.youtube.com/watch?v=-JNGmN_voBA&amp;amp;t=0s&amp;amp;index=20&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] &lt;br /&gt;
* Programmeerimine 4: failitöötlus [https://www.youtube.com/watch?v=fUWTsE9nfXM&amp;amp;t=0s&amp;amp;index=13&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] ja [[failitöötluse näitekood pythonis]]&lt;br /&gt;
* Programmeerimine 5: andmeimport ja andmete seostamine [https://www.youtube.com/watch?v=xBXvsSeNTpk&amp;amp;t=0s&amp;amp;index=14&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Vajalik Pythoni tarkvara:&lt;br /&gt;
&lt;br /&gt;
* [http://python.org Pythoni põhisait]&lt;br /&gt;
* [https://realpython.com/installing-python/ Päris OK installerimise õpetus]&lt;br /&gt;
* Failid [https://www.python.org/downloads/release/python-381/ võta selle lehe allosast]&lt;br /&gt;
&lt;br /&gt;
Head pikemad õpetused:&lt;br /&gt;
&lt;br /&gt;
* Kõige lihtsam: [https://www.w3schools.com/python/default.asp w3schools python] &lt;br /&gt;
* Veidi keerulisem: [https://docs.python.org/3/tutorial/index.html tutorial pythoni lehel]&lt;br /&gt;
* [https://progeopik.cs.ut.ee Eestikeelne õpik]&lt;br /&gt;
&lt;br /&gt;
Tekstiredaktorid:&lt;br /&gt;
&lt;br /&gt;
* päris rikkalik: [https://code.visualstudio.com/ vs code]&lt;br /&gt;
* keskmiselt rikkalik: [https://atom.io/ atom]&lt;br /&gt;
* üpris minimaalne: [https://notepad-plus-plus.org/ notepad++]&lt;br /&gt;
* eriti minimaalne: [https://www.scintilla.org/SciTE.html scite]&lt;br /&gt;
&lt;br /&gt;
=== Veebilehed ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_veeb.pptx|Sissejuhatus teemasse]]&lt;br /&gt;
* Esimene osa,  html: [https://www.youtube.com/watch?v=tXrYZ7hcF2Y&amp;amp;index=7&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Teine osa, css: [https://www.youtube.com/watch?v=6ACCz9wwLCQ&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO&amp;amp;index=8 video]&lt;br /&gt;
* Kolmas osa, javascript: [https://www.youtube.com/watch?v=ub32ImHktu8&amp;amp;t=0s&amp;amp;index=8&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Kõige paremad veebiehituse õpetused algajale on [https://www.w3schools.com/ w3schools saidil]&lt;br /&gt;
&lt;br /&gt;
Üleüldine peamine küsimuste/vastuste sait on [https://stackoverflow.com/ stackoverflow].&lt;br /&gt;
&lt;br /&gt;
=== Server ja veebirakendus ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_server.pptx|Põhipunktid ja koodinäited]]. &lt;br /&gt;
* Esimene osa, server ja veebiteenus: [https://www.youtube.com/watch?v=z51YWLfbv4Y&amp;amp;t=0s&amp;amp;index=15&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Teine osa, veebirakendus: [https://www.youtube.com/watch?v=lq0WeTzye9I&amp;amp;t=0s&amp;amp;index=19&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Flask server:&lt;br /&gt;
&lt;br /&gt;
* Kasutame Pythoni populaarset micro-frameworki [http://flask.pocoo.org Flask]&lt;br /&gt;
* Sul peab olema Windowsil käsurealt käivitatav python ja pip. pip on levinuim Pythoni moodulite installeerimise-programm.&lt;br /&gt;
* Ütle käsurealt: &amp;lt;tt&amp;gt;pip install flask&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Flask veel ise käima ei lähe: loe presentatsioonist edasi.&lt;br /&gt;
* NB! Kui paned oma flaski abil tehtud serveriprogrammi serverisse tööle, siis viimase asjana kirjuta app.run(debug=True, port=5000, host=&#039;0.0.0.0&#039;) kus on näidetega võrreldes lisaks host=... : see lubab väljapoolt serverit ligi pääseda.&lt;br /&gt;
&lt;br /&gt;
=== Andmebaasiga serverirakenduse ehitamine ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_sql.pptx|Andmebaasid]]&lt;br /&gt;
&lt;br /&gt;
* Andmebaasid ja SQL [https://www.youtube.com/watch?v=K8yQrsDy2dc&amp;amp;t=0s&amp;amp;index=18&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Serverirakendus ja SQL 1. osa [https://www.youtube.com/watch?v=4CZ5LuWGQJc&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO&amp;amp;index=16 video]&lt;br /&gt;
* Serverirakendus ja SQL 2. osa [https://www.youtube.com/watch?v=nrazU1aKLzI&amp;amp;t=0s&amp;amp;index=16&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Soovitavalt uuri veidi: [https://www.w3schools.com/sql/sql_intro.asp w3schools SQL tutorial]&lt;br /&gt;
* Näited:&lt;br /&gt;
**[[sql insert-lausete näited andmete sisestamiseks|Tabelite tegemise ja andmete sisestamise näited]]&lt;br /&gt;
** [[sqlite andmebaasi tegemine ja kasutamine Pythonist]]&lt;br /&gt;
** [[blogiprogramm]]&lt;br /&gt;
&lt;br /&gt;
=== Tehisintellekt ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_tehisintellekt.pptx|Tehisintellekt]] ja [https://www.youtube.com/watch?v=USEUHWOwX8Q&amp;amp;t=0s&amp;amp;index=22&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Soovitavalt vaata ja loe lisaks:&lt;br /&gt;
&lt;br /&gt;
* Boston Dynamics [http://www.youtube.com/watch?v=ae06LFa3i38 robot donkey (aka big dog) varane], [http://www.youtube.com/watch?v=BtRnzlO7m_M big dog praegu], [http://www.youtube.com/watch?v=chPanW0QWhA Cheetah], [http://www.youtube.com/watch?v=wE3fmFTtP9g Wildcat],[http://www.youtube.com/watch?v=tFrjrgBV8K0 Petman], [http://www.youtube.com/watch?v=SD6Okylclb8 Atlas]&lt;br /&gt;
* [https://www.tastehit.com/blog/google-deepmind-alphago-how-it-works/ Kuidas AlphaGo töötab]&lt;br /&gt;
* Darpa [http://en.wikipedia.org/wiki/DARPA_Grand_Challenge grand challenge 2005] ja [http://archive.darpa.mil/grandchallenge/ urban challenge]&lt;br /&gt;
* [http://idlewords.com/talks/superintelligence.htm Miks mitte karta super-tehisintellekti]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Rodney_Brooks Rodney Brooksi] väike tehisintellekti-sari [https://rodneybrooks.com/forai-steps-toward-super-intelligence-ii-beyond-the-turing-test/ osa 1], [https://rodneybrooks.com/forai-steps-toward-super-intelligence-ii-beyond-the-turing-test/ osa 2], [https://rodneybrooks.com/forai-steps-toward-super-intelligence-iii-hard-things-today/ osa 3],  [https://rodneybrooks.com/forai-steps-toward-super-intelligence-iv-things-to-work-on-now/ osa 4]&lt;br /&gt;
&amp;lt;!-- õppejõu pikem [https://www.youtube.com/watch?v=ftYrfTo_W2E  tehisintellektiteemaline vestlus] &amp;quot;intrigeeriva pärastlõuna&amp;quot; podcastisarjas. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Arendusvahendid, programmeerimiskeeled ja arhitektuur ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_arendusvahendid.pptx|Arendusvahendid]] [https://www.youtube.com/watch?v=zHGPqdft8yk&amp;amp;t=0s&amp;amp;index=25&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media: tt_programmeerimiskeeled.pptx|Programmeerimiskeeled]] [https://www.youtube.com/watch?v=4INtjYLmQeI&amp;amp;t=0s&amp;amp;index=24&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media:tt_arhitektuur.pptx|Arhitektuur]]: [https://www.youtube.com/watch?v=NOr9mGXOL5c&amp;amp;t=0s&amp;amp;index=27&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video esimene osa] ja [https://www.youtube.com/watch?v=OWnPJ_Xcw1M&amp;amp;t=402s&amp;amp;index=23&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video teine osa]&lt;br /&gt;
&lt;br /&gt;
=== Arendusprotsess ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_arendusprotsess.pptx|Arendusprotsess]] ja [https://www.youtube.com/watch?v=_GERtMiNcX4&amp;amp;t=0s&amp;amp;index=26&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Loe (pikemad sirvi) need arendusprotsessiga seotud artiklid kursuse käigus läbi. Nende kõigi kohta võidakse eksamil küsida lugemiskontrolli-küsimusi.&lt;br /&gt;
&lt;br /&gt;
* Paul Graham [http://paulgraham.com/hp.html Hackers and painters]&lt;br /&gt;
* Paul Graham: [http://www.paulgraham.com/start.html How to start a startup?]&lt;br /&gt;
* Paul Graham: [http://www.paulgraham.com/gh.html Great hackers]&lt;br /&gt;
* Joel Spolsky: [https://www.joelonsoftware.com/2002/02/13/the-iceberg-secret-revealed/ The iceberg secret revealed]&lt;br /&gt;
* Joel Spolsky: [http://www.joelonsoftware.com/articles/fog0000000043.html IT firma töökorraldus: 12 sammu]&lt;br /&gt;
* [https://agilemanifesto.org/ Agiilarenduse manifest] ja [https://agilemanifesto.org/principles.html selle lisapunktid]&lt;br /&gt;
* Paul Reeves: [http://www.developerdotstar.com/mag/articles/reeves_design.html What is software design?] vana artikkel ja [http://www.developerdotstar.com/mag/articles/reeves_13yearslater.html What Is Software Design: 13 Years Later]&lt;br /&gt;
* Gnu manifest [http://www.gnu.org/philosophy/free-sw.html The Free Software Definition] ja [https://www.gnu.org/licenses/license-list.en.html Gnu ülevaade litsentsidest]&lt;br /&gt;
* Fred Brooks 1986: [http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBullet.html No Silver Bullet]&lt;br /&gt;
* [https://zwischenzugs.com/2017/10/15/my-20-year-experience-of-software-development-methodologies/ 20 aastat kogemust tarkvara arendusmeetoditega]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Kursus]]&lt;/div&gt;</summary>
		<author><name>Radu</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogiad&amp;diff=16766</id>
		<title>Tarkvaratehnoloogiad</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogiad&amp;diff=16766"/>
		<updated>2020-02-27T11:35:25Z</updated>

		<summary type="html">&lt;p&gt;Radu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Pilt:matrix.jpg|left|IT]] --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Ainekood: ITO8020&amp;lt;br&amp;gt;&lt;br /&gt;
Link: http://www.lambda.ee/wiki/tarkvaratehnoloogiad&amp;lt;br&amp;gt;&lt;br /&gt;
Link ÕISi https://ois.ttu.ee/aine/ito8020&amp;lt;br&amp;gt;&lt;br /&gt;
Õppejõud: [http://www.facebook.com/tanel.tammet Tanel Tammet]&amp;lt;br&amp;gt;&lt;br /&gt;
Kontakt: tanel.tammet@ttu.ee, 6203457, ICT 426&amp;lt;br&amp;gt;&lt;br /&gt;
Varasemast: [[Tarkvaratehnoloogiad 2019 aasta arhiiv]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB! Vaatamiseks enne järgmisi praktikume&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Enne järgmist praktikumi palun vaata läbi videod ja tutvu lühidalt lisamaterjalidega selles järjekorras:&lt;br /&gt;
&lt;br /&gt;
* 5.5 Veebilehed&lt;br /&gt;
* 5.4 Programmeerimise sissejuhatus Pythonis&lt;br /&gt;
* 5.6 Server ja veebirakendus&lt;br /&gt;
* 5.7 Andmebaasiga serverirakenduse ehitamine&lt;br /&gt;
&lt;br /&gt;
Liituge Slack jututoaga:&lt;br /&gt;
* {https://join.slack.com/t/taltechtarkva-acc6522/shared_invite/enQtOTYwMzk1MDk5MjAwLTAyMjk4NjJiZmIwN2IwZGQzOTUwNmJlMDk2OTE4ZjU2ODFiZGViNmZiZWY2OTMzOWRkN2EwODk0ZjVhYTAzNDM|jututoa link}&lt;br /&gt;
== Kursuse eesmärk ja põhimõtted ==&lt;br /&gt;
&lt;br /&gt;
Mõista IT-süsteemide tehnoloogilist konstruktsiooni, arendusvahendeid ja arendusprotsesse. &lt;br /&gt;
&lt;br /&gt;
Saada aru riistvara, tarkvara ja kommunikatsiooniprotokollide ehituse põhiideedest. &lt;br /&gt;
&lt;br /&gt;
Mõista&lt;br /&gt;
* tarkvara peamisi arhitektuurivariante, &lt;br /&gt;
* erinevate programmeerimiskeelte olemust, &lt;br /&gt;
* teekide ja raamistike kasutamise üldisi põhimõtteid,&lt;br /&gt;
* erinevate arendusprotsesside ideid.&lt;br /&gt;
&lt;br /&gt;
Kursuse raames ülikoolis kohapeal loenguid ei toimu: kõik loengud on varasemalt salvestatud videosse,&lt;br /&gt;
ja lisatud presentatsioon, vaata siin lehel allpool.&lt;br /&gt;
&lt;br /&gt;
Kohapealne töö (praktikum/konsultatsioon) on mõeldud eeskätt praktilise arenduskogemuse saamiseks, &lt;br /&gt;
eesmärgiga omaenda katsetuste najal tekitada arusaamine, mismoodi praktiline arendusprotsess toimub,&lt;br /&gt;
mida ja  kuidas standardtehnoloogiatega teha saab, mis on keeruline ja mis lihtne. &lt;br /&gt;
&lt;br /&gt;
Kohapealne praktiline töö eeldab varasemat tutvumist osade allpool toodud teemadega.&lt;br /&gt;
&lt;br /&gt;
Esimeseks praktikumiks oleks väga soovitav vaadata/lugeda läbi allpool materjalid teemadel&lt;br /&gt;
* Veebilehed (tingimata)&lt;br /&gt;
* Programmeerimise sissejuhatus Pythonis (soovitav)&lt;br /&gt;
&lt;br /&gt;
== Hindamine ==&lt;br /&gt;
&lt;br /&gt;
Kursus lõpeb eksamiga. Eksam on kirjalik ja selle tegemiseks kulub orienteeruvalt poolteist tundi. Aega eksamiks on kolm tundi.&lt;br /&gt;
&lt;br /&gt;
Hindamisel arvestatakse praktikumide tulemusi kaaluga 40% ja eksamitulemusi kaaluga 60%.&lt;br /&gt;
&lt;br /&gt;
Eksamis ei tule otseseid programmeerimisülesandeid ning vastused tuleb kirjutada paberile: arvutit ja lisamaterjale kasutada ei või. Küsimused tulevad  järgmisest neljast sordist:&lt;br /&gt;
&lt;br /&gt;
* Küsimused mõistete ja põhimõtete ja tehnoloogiate kohta: mis on mis ja milleks kasutatakse. Vastused on siis paarilauselised seletused. Küsimused tulevad ainult kursuse powerpointides ja videoloengutes toodu kohta.&lt;br /&gt;
* Kontrollküsimused eesmärgiga aru saada, kas olete lugenud kursuse lehel arendusprotsesside peatüki lõpus oleva kirjanduse läbi. Iga selline küsimus küsib midagi lühidat teksti mõne põhipunkti või eriti meeldejääva asjaolu kohta: pikemaid vastuseid/referaate ei ole vaja kirjutada.&lt;br /&gt;
* Küsimused väikeste näite-koodi-juppide - python, javascript, html, css - äratundmise ja esmase arusaamise kohta. Kõik need näitejupid võetakse otse kursuse powerpointidest ja videoloengutest ja küsitakse, mis keeles jupp ja mida ta umbes teeb.&lt;br /&gt;
* Küsimused, kus antakse ülesanne pakkuda välja arhitektuuriline ja tehnoloogiline lahendus mingile suhteliselt väikesele tarkvara-loomise probleemile, seda lahendust põhjendada ja tuua välja orienteeruv töömaht lahenduse eri osadele ja võimalikud riski- ning keerukuskohad.&lt;br /&gt;
&lt;br /&gt;
== Praktikumi/konsultatsiooni ajad ==&lt;br /&gt;
&lt;br /&gt;
Eri rühmadel neljapäeviti ja reedeti ruumis ICT-501:&lt;br /&gt;
&lt;br /&gt;
B-rühm (IADM20B) neljapäeviti:&lt;br /&gt;
&lt;br /&gt;
* 30.01.2020 kl 16-20.30&lt;br /&gt;
* 13.02.2020 kl 16-20.30&lt;br /&gt;
* 27.02.2020 kl 16-20.30&lt;br /&gt;
* 12.03.2020 kl 16-20.30&lt;br /&gt;
* 26.03.2020 kl 16-20.30 &lt;br /&gt;
&lt;br /&gt;
A-rühm (IADM20A) reedeti:&lt;br /&gt;
&lt;br /&gt;
* 31.01.2020 kl 15-19.30&lt;br /&gt;
* 14.02.2020 kl 15-19.30&lt;br /&gt;
* 28.02.2020 kl 15-19.30&lt;br /&gt;
* 13.03.2020 kl 15-19.30&lt;br /&gt;
* 27.03.2020 kl 15-19.30&lt;br /&gt;
&lt;br /&gt;
== Praktiline ülesanne ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NB! Esimese praktikumi eel on väga soovitav tutvuda allpool klippide ja materjalidega teemadel &amp;quot;veebilehed&amp;quot; (tingimata)&lt;br /&gt;
ja &amp;quot;programmeerimise sissejuhatus Pythonis&amp;quot; (soovitav)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Kursuse kodu-või-praktikumiülesandeks on (a) reaalse rakenduse planeerimine ja ehitamine, mis kuvab kasutajale veebis mõistetavalt ja otsitavalt ja/või sorteeritavalt mingit reaalset andmestikku, mis on soovitavalt teie enda töökohast pärit. Kui sa sobivat andmestikku oma töökohast ei leia, vali mõni töödeldav ja huvitav andmestik [https://opendata.riik.ee/ eesti avaandmete portaalist], (b) edasiarenduse planeerimine hüpoteetiliseks tellimiseks.&lt;br /&gt;
&lt;br /&gt;
Soovitav on tulemus panna üles avalikku pilveserverisse (soovitus: [http://digitalocean.com digitalocean]) ja kood avalikku koodihoidlasse (soovitus: [http://github.com github]). Alternatiiv on panna tulemus dijkstra serverisse Taltechis.&lt;br /&gt;
&lt;br /&gt;
Github on tasuta, digitalocean annab alustajatele ca 100 USD krediiti ja lisaks on olemas Github student pack, mis sisaldab ca 50 USD digitaloceani krediiti. Rangelt kohustuslik avaliku veebiserveri ja githubi kasutamine ei ole: väiksema arvu punkte saab praktikumist ka siis, kui realiseerid kõik lihtsalt oma arvutis ja ei pane kuhugi üles.&lt;br /&gt;
&lt;br /&gt;
=== Praktikumi töökorraldus ===&lt;br /&gt;
&lt;br /&gt;
Ülesannet võib teha üksi või kahekesi. &lt;br /&gt;
&lt;br /&gt;
Kursuse praktikumipäevadel tegeleme teie projekti realiseerimise etappidega, ning iga etapi/praktikumipäeva lõpuks vaatame üle hetkeseisu ja anname esialgsed hinnangud, kui kaugele on jõutud ja mis on edasised sammud, veidi sarnaselt tüüpiliste agiilse arenduse hetkeseisu-koosolekutega.&lt;br /&gt;
&lt;br /&gt;
Selleks peab iga grupp tegema praktikumipäeva lõpus paariminutise ettekande, kus on öeldud:&lt;br /&gt;
* grupi liikmete nimed&lt;br /&gt;
* mida sel päeval üritati teha ja kuhu jõuti&lt;br /&gt;
* mis on plaan järgmise praktikumikorraga saavutada&lt;br /&gt;
&lt;br /&gt;
Praktikumijuhendaja hindab iga päeva progressi.&lt;br /&gt;
&lt;br /&gt;
Lõpp-presentatsioon viimasel päeval peaks olema pikem, ca viisteist minutit.&lt;br /&gt;
&lt;br /&gt;
Praktikumi kogutulemusest on arvestuslikult ca 50% lõpptulemus ja teine ca 50% esimese nelja päeva tulemused.&lt;br /&gt;
&lt;br /&gt;
=== Praktikumi etapid ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jagame töö etapiviisi viiele praktikumi päevale: nende jaoks on eraldi wikileht [[tarkvaratehnoloogia praktikumide etapid]].&lt;br /&gt;
&lt;br /&gt;
== Loengud ja materjalid ==&lt;br /&gt;
&lt;br /&gt;
Loengud on salvestatud youtube klippidena, iga loenguga on seotud presentatsioon ja soovitavad täiendavad materjalid ja lingid.&lt;br /&gt;
&lt;br /&gt;
Videoloengute [https://www.youtube.com/playlist?list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO youtube üldlisti] järjekord on suvaline, kasuta pigem allolevaid linke õiges järjekorras.&lt;br /&gt;
&lt;br /&gt;
=== Sissejuhatus ja põhimõisted ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_sissejuhatus.pptx|Sissejuhatus]] ja [https://www.youtube.com/watch?v=y8wMd-Qy26I&amp;amp;index=21&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media:tt_põhimõisted.ppt|Põhimõisted]] ja [https://www.youtube.com/watch?v=PWM2PU4DiYA&amp;amp;index=2&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video].&lt;br /&gt;
&lt;br /&gt;
=== Kuidas arvuti töötab ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_protsessor.ppt|Protsessor]] ja [https://www.youtube.com/watch?v=dMawoey6TCE&amp;amp;index=3&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Eelmise presentatsiooni lõpuosa ja seejärel [http://skilldrick.github.io/easy6502/ reaalne näide protsessori käskudega]: [https://www.youtube.com/watch?v=vid3W9E_z-w&amp;amp;index=4&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Soovitavalt loe veel:&lt;br /&gt;
* [https://blog.codinghorror.com/the-infinite-space-between-words/ The infinite space between words]&lt;br /&gt;
* [https://news.ycombinator.com/ võibolla peamine arendajate üldhuvi-uudistesait]: loe seda iga päev!&lt;br /&gt;
&lt;br /&gt;
=== Interneti funktsioneerimine ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_interneti_funktsioneerimine_1.ppt|Esimene osa]] ja [https://www.youtube.com/watch?v=kwhGs1kxLvY&amp;amp;index=5&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] &lt;br /&gt;
* [[Media:tt_interneti_funktsioneerimine_2.ppt|Teine osa]] ja [https://www.youtube.com/watch?v=WBxr3aTjNzo&amp;amp;index=6&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
=== Programmeerimise sissejuhatus Pythonis ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_programmeerimise_sissejuhatus.pptx|Programmeerimise sissejuhatus]]: [https://www.youtube.com/watch?v=whyQ6Y9pUvY&amp;amp;t=0s&amp;amp;index=11&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Programmeerimine 2: python [https://www.youtube.com/watch?v=KiXcqKc8MMo&amp;amp;t=0s&amp;amp;index=10&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Programmeerimine 3: tingimused, tsüklid, funktsioonid: [https://www.youtube.com/watch?v=-JNGmN_voBA&amp;amp;t=0s&amp;amp;index=20&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] &lt;br /&gt;
* Programmeerimine 4: failitöötlus [https://www.youtube.com/watch?v=fUWTsE9nfXM&amp;amp;t=0s&amp;amp;index=13&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video] ja [[failitöötluse näitekood pythonis]]&lt;br /&gt;
* Programmeerimine 5: andmeimport ja andmete seostamine [https://www.youtube.com/watch?v=xBXvsSeNTpk&amp;amp;t=0s&amp;amp;index=14&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Vajalik Pythoni tarkvara:&lt;br /&gt;
&lt;br /&gt;
* [http://python.org Pythoni põhisait]&lt;br /&gt;
* [https://realpython.com/installing-python/ Päris OK installerimise õpetus]&lt;br /&gt;
* Failid [https://www.python.org/downloads/release/python-381/ võta selle lehe allosast]&lt;br /&gt;
&lt;br /&gt;
Head pikemad õpetused:&lt;br /&gt;
&lt;br /&gt;
* Kõige lihtsam: [https://www.w3schools.com/python/default.asp w3schools python] &lt;br /&gt;
* Veidi keerulisem: [https://docs.python.org/3/tutorial/index.html tutorial pythoni lehel]&lt;br /&gt;
* [https://progeopik.cs.ut.ee Eestikeelne õpik]&lt;br /&gt;
&lt;br /&gt;
Tekstiredaktorid:&lt;br /&gt;
&lt;br /&gt;
* päris rikkalik: [https://code.visualstudio.com/ vs code]&lt;br /&gt;
* keskmiselt rikkalik: [https://atom.io/ atom]&lt;br /&gt;
* üpris minimaalne: [https://notepad-plus-plus.org/ notepad++]&lt;br /&gt;
* eriti minimaalne: [https://www.scintilla.org/SciTE.html scite]&lt;br /&gt;
&lt;br /&gt;
=== Veebilehed ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_veeb.pptx|Sissejuhatus teemasse]]&lt;br /&gt;
* Esimene osa,  html: [https://www.youtube.com/watch?v=tXrYZ7hcF2Y&amp;amp;index=7&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Teine osa, css: [https://www.youtube.com/watch?v=6ACCz9wwLCQ&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO&amp;amp;index=8 video]&lt;br /&gt;
* Kolmas osa, javascript: [https://www.youtube.com/watch?v=ub32ImHktu8&amp;amp;t=0s&amp;amp;index=8&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Kõige paremad veebiehituse õpetused algajale on [https://www.w3schools.com/ w3schools saidil]&lt;br /&gt;
&lt;br /&gt;
Üleüldine peamine küsimuste/vastuste sait on [https://stackoverflow.com/ stackoverflow].&lt;br /&gt;
&lt;br /&gt;
=== Server ja veebirakendus ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_server.pptx|Põhipunktid ja koodinäited]]. &lt;br /&gt;
* Esimene osa, server ja veebiteenus: [https://www.youtube.com/watch?v=z51YWLfbv4Y&amp;amp;t=0s&amp;amp;index=15&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Teine osa, veebirakendus: [https://www.youtube.com/watch?v=lq0WeTzye9I&amp;amp;t=0s&amp;amp;index=19&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Flask server:&lt;br /&gt;
&lt;br /&gt;
* Kasutame Pythoni populaarset micro-frameworki [http://flask.pocoo.org Flask]&lt;br /&gt;
* Sul peab olema Windowsil käsurealt käivitatav python ja pip. pip on levinuim Pythoni moodulite installeerimise-programm.&lt;br /&gt;
* Ütle käsurealt: &amp;lt;tt&amp;gt;pip install flask&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Flask veel ise käima ei lähe: loe presentatsioonist edasi.&lt;br /&gt;
* NB! Kui paned oma flaski abil tehtud serveriprogrammi serverisse tööle, siis viimase asjana kirjuta app.run(debug=True, port=5000, host=&#039;0.0.0.0&#039;) kus on näidetega võrreldes lisaks host=... : see lubab väljapoolt serverit ligi pääseda.&lt;br /&gt;
&lt;br /&gt;
=== Andmebaasiga serverirakenduse ehitamine ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_sql.pptx|Andmebaasid]]&lt;br /&gt;
&lt;br /&gt;
* Andmebaasid ja SQL [https://www.youtube.com/watch?v=K8yQrsDy2dc&amp;amp;t=0s&amp;amp;index=18&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Serverirakendus ja SQL 1. osa [https://www.youtube.com/watch?v=4CZ5LuWGQJc&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO&amp;amp;index=16 video]&lt;br /&gt;
* Serverirakendus ja SQL 2. osa [https://www.youtube.com/watch?v=nrazU1aKLzI&amp;amp;t=0s&amp;amp;index=16&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* Soovitavalt uuri veidi: [https://www.w3schools.com/sql/sql_intro.asp w3schools SQL tutorial]&lt;br /&gt;
* Näited:&lt;br /&gt;
**[[sql insert-lausete näited andmete sisestamiseks|Tabelite tegemise ja andmete sisestamise näited]]&lt;br /&gt;
** [[sqlite andmebaasi tegemine ja kasutamine Pythonist]]&lt;br /&gt;
** [[blogiprogramm]]&lt;br /&gt;
&lt;br /&gt;
=== Tehisintellekt ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_tehisintellekt.pptx|Tehisintellekt]] ja [https://www.youtube.com/watch?v=USEUHWOwX8Q&amp;amp;t=0s&amp;amp;index=22&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Soovitavalt vaata ja loe lisaks:&lt;br /&gt;
&lt;br /&gt;
* Boston Dynamics [http://www.youtube.com/watch?v=ae06LFa3i38 robot donkey (aka big dog) varane], [http://www.youtube.com/watch?v=BtRnzlO7m_M big dog praegu], [http://www.youtube.com/watch?v=chPanW0QWhA Cheetah], [http://www.youtube.com/watch?v=wE3fmFTtP9g Wildcat],[http://www.youtube.com/watch?v=tFrjrgBV8K0 Petman], [http://www.youtube.com/watch?v=SD6Okylclb8 Atlas]&lt;br /&gt;
* [https://www.tastehit.com/blog/google-deepmind-alphago-how-it-works/ Kuidas AlphaGo töötab]&lt;br /&gt;
* Darpa [http://en.wikipedia.org/wiki/DARPA_Grand_Challenge grand challenge 2005] ja [http://archive.darpa.mil/grandchallenge/ urban challenge]&lt;br /&gt;
* [http://idlewords.com/talks/superintelligence.htm Miks mitte karta super-tehisintellekti]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Rodney_Brooks Rodney Brooksi] väike tehisintellekti-sari [https://rodneybrooks.com/forai-steps-toward-super-intelligence-ii-beyond-the-turing-test/ osa 1], [https://rodneybrooks.com/forai-steps-toward-super-intelligence-ii-beyond-the-turing-test/ osa 2], [https://rodneybrooks.com/forai-steps-toward-super-intelligence-iii-hard-things-today/ osa 3],  [https://rodneybrooks.com/forai-steps-toward-super-intelligence-iv-things-to-work-on-now/ osa 4]&lt;br /&gt;
&amp;lt;!-- õppejõu pikem [https://www.youtube.com/watch?v=ftYrfTo_W2E  tehisintellektiteemaline vestlus] &amp;quot;intrigeeriva pärastlõuna&amp;quot; podcastisarjas. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Arendusvahendid, programmeerimiskeeled ja arhitektuur ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_arendusvahendid.pptx|Arendusvahendid]] [https://www.youtube.com/watch?v=zHGPqdft8yk&amp;amp;t=0s&amp;amp;index=25&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media: tt_programmeerimiskeeled.pptx|Programmeerimiskeeled]] [https://www.youtube.com/watch?v=4INtjYLmQeI&amp;amp;t=0s&amp;amp;index=24&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
* [[Media:tt_arhitektuur.pptx|Arhitektuur]]: [https://www.youtube.com/watch?v=NOr9mGXOL5c&amp;amp;t=0s&amp;amp;index=27&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video esimene osa] ja [https://www.youtube.com/watch?v=OWnPJ_Xcw1M&amp;amp;t=402s&amp;amp;index=23&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video teine osa]&lt;br /&gt;
&lt;br /&gt;
=== Arendusprotsess ===&lt;br /&gt;
&lt;br /&gt;
* [[Media:tt_arendusprotsess.pptx|Arendusprotsess]] ja [https://www.youtube.com/watch?v=_GERtMiNcX4&amp;amp;t=0s&amp;amp;index=26&amp;amp;list=PLZeidq-Hdjf4vhaZUuE0BwrYDaJTKWKBO video]&lt;br /&gt;
&lt;br /&gt;
Loe (pikemad sirvi) need arendusprotsessiga seotud artiklid kursuse käigus läbi. Nende kõigi kohta võidakse eksamil küsida lugemiskontrolli-küsimusi.&lt;br /&gt;
&lt;br /&gt;
* Paul Graham [http://paulgraham.com/hp.html Hackers and painters]&lt;br /&gt;
* Paul Graham: [http://www.paulgraham.com/start.html How to start a startup?]&lt;br /&gt;
* Paul Graham: [http://www.paulgraham.com/gh.html Great hackers]&lt;br /&gt;
* Joel Spolsky: [https://www.joelonsoftware.com/2002/02/13/the-iceberg-secret-revealed/ The iceberg secret revealed]&lt;br /&gt;
* Joel Spolsky: [http://www.joelonsoftware.com/articles/fog0000000043.html IT firma töökorraldus: 12 sammu]&lt;br /&gt;
* [https://agilemanifesto.org/ Agiilarenduse manifest] ja [https://agilemanifesto.org/principles.html selle lisapunktid]&lt;br /&gt;
* Paul Reeves: [http://www.developerdotstar.com/mag/articles/reeves_design.html What is software design?] vana artikkel ja [http://www.developerdotstar.com/mag/articles/reeves_13yearslater.html What Is Software Design: 13 Years Later]&lt;br /&gt;
* Gnu manifest [http://www.gnu.org/philosophy/free-sw.html The Free Software Definition] ja [https://www.gnu.org/licenses/license-list.en.html Gnu ülevaade litsentsidest]&lt;br /&gt;
* Fred Brooks 1986: [http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBullet.html No Silver Bullet]&lt;br /&gt;
* [https://zwischenzugs.com/2017/10/15/my-20-year-experience-of-software-development-methodologies/ 20 aastat kogemust tarkvara arendusmeetoditega]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Kursus]]&lt;/div&gt;</summary>
		<author><name>Radu</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogia_praktikumide_etapid&amp;diff=16725</id>
		<title>Tarkvaratehnoloogia praktikumide etapid</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Tarkvaratehnoloogia_praktikumide_etapid&amp;diff=16725"/>
		<updated>2020-02-15T13:50:48Z</updated>

		<summary type="html">&lt;p&gt;Radu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Siintoodud etappide sisu töö reaalse töö käigus veidi muutub, kuid on üldjoontes järgmine:&lt;br /&gt;
&lt;br /&gt;
== 1. päev: ülesande valik, soovitud tulemuse kirjeldus, keskkonna ülesseadmine, katse-html lehe tegemine ==&lt;br /&gt;
&lt;br /&gt;
Päeva eesmärk on (a) valida andmestik ja otsustada, mida meie rakendus sellega teeks, &lt;br /&gt;
(b) töövahendite installeerimine ja katsetamine. Neid asju võiks teha sellises  järjekorras:&lt;br /&gt;
&lt;br /&gt;
* Installeeri endale sobiv  tekstiredaktor (rikkalikumast minimaalsemani: [https://code.visualstudio.com/ vs code], [https://atom.io/ atom], [https://notepad-plus-plus.org/ notepad++], [https://www.scintilla.org/SciTE.html scite]), &lt;br /&gt;
* Soovitavalt installeeri ka [http://python.org Python] (kohe algul ei ole meil seda vaja):&lt;br /&gt;
** failid [https://www.python.org/downloads/release/python-381/ võta selle lehe allosast],&lt;br /&gt;
**[https://realpython.com/installing-python/ siin päris OK installeerimise õpetus]) ja [https://docs.python.org/3.7/using/windows.html siin ametlik õpetus] &lt;br /&gt;
** väga detailne [https://www.wikihow.com/Use-Windows-Command-Prompt-to-Run-a-Python-File õpetus] pythoni programmide käivitamiseks: kui cmd aknast python ei käivitu, siis uuri selle õpetuse teist poolt: pathi seadmine.&lt;br /&gt;
** alternatiivne Pythoni installi ja käivitamise õpetus [https://docs.microsoft.com/en-us/windows/python/beginners installi ja käivitamise õpetus] microsoftilt.&lt;br /&gt;
* Kui python installeeritud, siis soovitavalt ka [https://flask.palletsprojects.com/en/1.1.x/ Flask]: see eeldab ja kasutab pythonit. Vaata installiks ja kasutamiseks ka . Jällegi, kohe algul ei ole seda vaja.&lt;br /&gt;
* Otsi andmestik, uuri, kas see on sulle kättesaadav/töödeldav.&lt;br /&gt;
* Otsusta, kuidas seda avalikkusele ilusamini kuvada ja millised filtrid/valikud lasta kasutajatel teha.&lt;br /&gt;
* Kirjuta oma kavadest väike memo [https://guides.github.com/features/mastering-markdown/ markdowni] kasutades.&lt;br /&gt;
* Installeeri endale [https://www.putty.org/ putty] ja [https://winscp.net/ winscp] või analoogilised vajalikud vahendid serverisse sisselogimiseks ja failide kopeerimiseks.&lt;br /&gt;
* Alusta oma rakenduse veebilehe tegemist esmaste html-pisikatsetustega omaenda arvutis.&lt;br /&gt;
* Logi katseks [http://lambda.ee/wiki/ITV0110_1._t%C3%B6%C3%B6:_Html_p%C3%B5hioskused#Dijkstra_server dijkstra serverisse] ja püüa sinna mõni fail veebiserveri alla kopeerida.&lt;br /&gt;
* Tee soovitavalt konto [http://digitalocean.com digitaloceani] serverisse ja [https://github.com githubi] koodihoidlasse, lae viimasesse sinna faile. Digitaloceani kontoga on tööd (mis on soovitav :) lihtsam alternatiiv on kasutada ainult dijkstra serverit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kui Pythonit ja Flaski ei õnnestu enda arvutisse installeerida, siis on kaks järgmist varianti:&lt;br /&gt;
* Püüdke endale installeerida juba Pythonit sisaldav [http://thonny.org thonny]: see võib õnnestuda paremini.&lt;br /&gt;
* Võite üldse loobuda Pythoni installeerimisest oma arvutisse: sellega saab töötada ka üle võrgu otse dijkstra või digitaloceani serveris, kuigi see on veidi ebamugavam.&lt;br /&gt;
&lt;br /&gt;
Päeva lõpuks teeb iga grupp paariminutise ettekande, kus on öeldud (a) grupiliikmete nimed, (b) mis andmekogu&lt;br /&gt;
ja ülesanne valiti, (b) mis töövahendid käima saadi ja kuhu õnnestus sisse logida/andmeid kopeerida, &lt;br /&gt;
(c) kuhu aeg peamiselt kulus ja mis olid ootamatused. (d) mis on plaan järgmiseks korraks.&lt;br /&gt;
&lt;br /&gt;
== 2. päev: andmete töötlemine ja baasi panek, esmase html lehe tegemine serveris ==&lt;br /&gt;
&lt;br /&gt;
Päeva eesmärk on (a) katsetada tehnoloogiaid: python ja flask, sqlite (b) teha oma andmebaas ja laadida andmed oma andmebaasi&lt;br /&gt;
(c) teha katseid päringutega andmebaasist (d) ideaalis realiseerida juba mingi mõttekas osa süsteemist. Päeva lõpuks teeb iga grupp ühe-kahe minutise ettekande, kus on öeldud (a) grupiliikmete nimed, (b) mis käima saadi (c) kuhu aeg peamiselt kulus ja mis olid ootamatused. (d) mis on plaan järgmiseks korraks.&lt;br /&gt;
&lt;br /&gt;
See, mis sa päeva lõpuks (ja kuidas) realiseerid, sõltub sellest, mis tehnoloogiad sa käima saad (kas saad flaski ja pythoni ja sqlite käima, kas oled juba saanud sisse logida ja tegutseda jne). Kui sa mingite tehnoloogiatega hätta jääd, vali alternatiivne lahendus, millega asjad välja tulevad.&lt;br /&gt;
&lt;br /&gt;
Kui andmete saamine andmebaasi osutub keeruliseks (sest näiteks sa ei saanud Pythonit ja Flaski ja sqlite oma arvutisse, serverisse ei õnnestu või on keeruline sisse logida vms) siis on OK teha alternatiivselt lihtsamaid ülesandeid ilma andmebaasita:&lt;br /&gt;
&lt;br /&gt;
* Andmete sqlite sisestamise asemel võid panna andmed otse veebilehele või csv faili, nii et neid serveris eraldi ei töödeldagi ja kuvamist ja valikuid teeb javascript otse veebilehel. Loe ja kasuta [[toorandmete lugemine otse javascriptis|õpetust ja näitekoodi]]&lt;br /&gt;
* Html lehe digitalocean serverisse panemise asemel kas paned nad tehnikaülikooli [http://lambda.ee/wiki/ITV0110_1._t%C3%B6%C3%B6:_Html_p%C3%B5hioskused#Dijkstra_server dijkstra serverisse] või jätkad html lehe arendamist oma arvutis failidena, mida brauser siis kuvab.&lt;br /&gt;
&lt;br /&gt;
Andmebaasiga rakenduse tegemise ja reaalse käivitamise jaoks on mitu varianti:&lt;br /&gt;
&lt;br /&gt;
* Arendad ja testid oma arvutis, pärast paned oma serverisse või dijkstrasse (siis peab sinu arvutis ja/või sinu serveris olema installeeritud Python ja Flask ja pead saama pythoni programme käsurealt käivitada)&lt;br /&gt;
* Arendad ja testid otse oma serveris (sinna tuleb installeerida Python (versioon 3) ja Flask)&lt;br /&gt;
* Arendad ja testid otse dijkstras (sinna ei tule midagi installeerida, sinu programm käib otse veebiserveri all).&lt;br /&gt;
&lt;br /&gt;
Kuidas arendada ja testida otse dijkstras:&lt;br /&gt;
* Logi putty programmiga dijkstrasse ja mine oma kataloogi /home/kasutajanimi, kui sa kohe juba sinna ei satu&lt;br /&gt;
* Failide kopeerimiseks kasuta winscp programmi.&lt;br /&gt;
* Saad faile ka otse dijkstras redigeerida winscp sisse-ehitatud redaktori abil: seda saad omakorda konfida, muutes sisse-ehitatud redaktori asemel kasutatavaks hoopis oma mingi redaktori, loe [[[http://lambda.ee/wiki/ITV0110_1._t%C3%B6%C3%B6:_Html_p%C3%B5hioskused#Dijkstra_server siit, kuidas]). VS Code sisse on ehitatud ka spetsiaalne eemalt-serverist-redigeerimise funktsionaalsus.&lt;br /&gt;
&lt;br /&gt;
Kõigis järgmistes näidetes on käsureal linuxis (aga mitte windowsis!):&lt;br /&gt;
* enne programmi käivitamist ütle käsurealt samas kataloogis algul korra chmod a+rx programminimi (näiteks, chmod a+rx makedb.py)&lt;br /&gt;
* oma programmi käivitamiseks vaja tema nime ette kirjutada ./ (näiteks, makedb.py asemel kirjuta ./makedb.py) &lt;br /&gt;
&lt;br /&gt;
Esimese asjana on sul vaja andmebaas teha ja oma andmed sinna sisse saada. Selleks alusta näiteprogrammidest:&lt;br /&gt;
* [[makedb.py]] teeb lihtsalt tühja baasi nimega data.db: makedb.py&lt;br /&gt;
* [[import.py]] impordib andmed csv-st baasifaili data.db, anna sellele csv fail käsurealt niimoodi ette: import.py data.csv&lt;br /&gt;
* csv faili näitena võid kasutada [[data.csv]]&lt;br /&gt;
* [[check.py]] trükib kontrolliks andmebaasi data.db sisu välja: check.py&lt;br /&gt;
&lt;br /&gt;
Teise asjana on sul vaja panna käima veebiteenuse programm, millelt saad brauseriga andmeid küsida. Siin on mitu varianti:&lt;br /&gt;
&lt;br /&gt;
* Oma arvutis Flaski abil kasuta [[servewithflask.py]] ja selle kaivitamiseks linuxis [[runserver]]&lt;br /&gt;
* Dijkstras tee kataloog /home/minukasutaja/public_html/cgi-bin: selleks mine (cd /home/minukasutaja/public_html) ja ütle mkdir cgi-bin&lt;br /&gt;
* Kopeeri programm [[serve.py]] dijkstras kataloogi /home/minukasutaja/public_html/cgi-bin ja ütle seal chmod a+rx serve.py&lt;br /&gt;
* Kopeeri andmebaas data.db samasse kataloogi /home/minukasutaja/public_html/cgi-bin ja ütle seal chmod a+rw data.db&lt;br /&gt;
* Ava katseks url http://dijkstra.cs.ttu.ee/~tammet/cgi-bin/serve.py kus tammet asemel pane oma kasutajanimi&lt;br /&gt;
&lt;br /&gt;
Kolmanda asjana on sul vaja veebileht õigesse kohta kopeerida:&lt;br /&gt;
&lt;br /&gt;
* Oma arvutis Flaski abil tee oma programmide kataloogi alamkataloog static, muuda [[index.html]] sees url dijkstra asemel oma arvuti urliks (koodis on ta olemas, aga välja kommenteeritud) ja kopeeri [[index.html]] sinna, siis ava url http://localhost:5000/static/index.html&lt;br /&gt;
* Dijkstras muuda [[index.html]] sees url-s tammet oma kasutajanimeks ja siis kopeeri fail kataloogi /home/minukasutaja/public_html ja ava ta kui http://dijkstra.cs.ttu.ee/~tammet/ kus tammet asemel pane oma kasutajanimi&lt;br /&gt;
&lt;br /&gt;
== 3. päev: veebilehe kasutajaliidese tegemine ja seostamine andmebaasiga ==&lt;br /&gt;
&lt;br /&gt;
Siit alates on kolm tegevussuunda kursuse lõpuni:&lt;br /&gt;
&lt;br /&gt;
* Brauserist Flaskiga pythoni programmilt andmete küsimine.&lt;br /&gt;
* Andmete arusaadav kuvamine.&lt;br /&gt;
* Kasutajaliidese parandamine.&lt;br /&gt;
&lt;br /&gt;
== 4. päev: kujunduse parandamine, testimine, arenduse jätk ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 5. päev: edasiarenduse planeerimine, vigade ja puuduste parandamine, ettekanne ==&lt;br /&gt;
&lt;br /&gt;
Päeva põhieesmärk on edasiarenduse planeerimine: mida saaks/tasuks süsteemi juurde teha, kes ja kui palju neid täiendusi kasutaks,&lt;br /&gt;
mis oleks tehnoloogiline/arhitektuuriline plaan edasiarenduse jaoks, mis on ajalise ja rahalised hinnangud, milline oleks&lt;br /&gt;
projektiplaani kondikava. Edasiarenduse kontekstiks oleks selle tellimine, mitte teiepoolne tegelik ehitamine.&lt;br /&gt;
&lt;br /&gt;
Ülejäänud aeg kasuta oma rakenduse täiustamisele: tee need asjad korda, mis jäid puudulikuks.&lt;br /&gt;
&lt;br /&gt;
Kursuse lõpus teevad kõik grupid veidi pikema presentatsiooni, ca 15 minutit:&lt;br /&gt;
* kui kaugele te oma rakendusega jõudsite, sh reaalne demo,&lt;br /&gt;
* mis oli algses plaanis, aga mis tingimata päris lõpp-rakendusse veel ei jõudnud,&lt;br /&gt;
* ettekanne oma edasiarenduse plaanist ja selle lühike arutelu.&lt;/div&gt;</summary>
		<author><name>Radu</name></author>
	</entry>
</feed>