I253 Informatika eelkursus: Difference between revisions
(6 intermediate revisions by 2 users not shown) | |||
Line 43: | Line 43: | ||
* Sättida üles oma arvutis SSH võtmetega autentimine nii et kooli serveritesse (enos, doris) saad sisse paroolita (failivahetus ja käsurida). | * Sättida üles oma arvutis SSH võtmetega autentimine nii et kooli serveritesse (enos, doris) saad sisse paroolita (failivahetus ja käsurida). | ||
* Sättida üles oma arvutis teiste kursuste läbimiseks vajalik tarkvara, nii et see ei veniks semestri lõpupoole: Java 8, Intellij, Eclipse, PuTTY, Git Bash, notepad++, Atom.io, Sublime, Ubuntu, veebiserver vms | * Sättida üles oma arvutis teiste kursuste läbimiseks vajalik tarkvara, nii et see ei veniks semestri lõpupoole: Java 8, Intellij, Eclipse, PuTTY, Git Bash, notepad++, Atom.io, Sublime, Ubuntu, veebiserver vms | ||
* Sooritada test veebis, päevaõppe testi aeg 14:00 14. oktoober 2016, õhtuõpe 16:00 18. oktoober 2016 | * Sooritada test veebis, päevaõppe testi aeg 14:00 14. oktoober 2016, õhtuõpe 16:00 18. oktoober 2016, kaugõpe hiljem kui loengud/praksid tehtud | ||
[http://enos.itcollege.ee/~lvosandi/check.html Hindamise bot] käib kord tunnis vaatamas teie progressi. | [http://enos.itcollege.ee/~lvosandi/check.html Hindamise bot] käib kord tunnis vaatamas teie progressi. | ||
Line 260: | Line 260: | ||
Igapäevane arendusprotsess edaspidi näeb välja järgnev: | Igapäevane arendusprotsess edaspidi näeb välja järgnev: | ||
* Oma arendusmasinas redigeerid faile, märgid muudatused Gitile meelde jätmiseks <code>git add failinimi</code> abil, teed sissekande <code>git commit | * Oma arendusmasinas redigeerid faile, märgid muudatused Gitile meelde jätmiseks <code>git add failinimi</code> abil, teed sissekande <code>git commit</code> abil ning lükkad muudatused GitHubi serverisse <code>git push</code> | ||
* Oma serveris rakendad muudatused lihtsalt <code>git pull</code> abil | * Oma serveris rakendad muudatused lihtsalt <code>git pull</code> abil | ||
Line 286: | Line 286: | ||
*.o | *.o | ||
</source> | </source> | ||
Pärast neid seadistamisi on muutuste üleslaadimine juba lihtne: | |||
* <code>'''git add .'''</code> | |||
* <code>'''git commit -m "muudetud: ..."'''</code> | |||
* <code>'''git push</code> või <code>git pull'''</code> | |||
---- | |||
===Viies teema: veel virtuaalmasinatega majandamist=== | ===Viies teema: veel virtuaalmasinatega majandamist=== |
Latest revision as of 23:02, 17 January 2017
Üldinfo
Kübersõjardid võivad seda kursust läbida ka inglise keeles.
Ainepunkte: 2 ECTS
Hindamisviis: Test + kodutööd
Õppejõud: Lauri Võsandi koos tuutoritega Arti Zirk, Marvin Martinson, Kristjan Peterson
Videosalvestised:
https://echo360.e-ope.ee/ess/portal/section/fbde1292-f109-46fe-88de-33d0257c0e19 https://echo360.e-ope.ee/ess/portal/section/6435daaf-a9c9-4edf-b257-6dfe17590a0d
Eeldused ja sihtgrupp
Kursus on mõeldud esmakursuslastele, et neid ette valmistada sügissemestril õpetatavate ainete jaoks ning kurssi viia IT Kolledži taristuga. Power userid ilmselt on võimelised jooksvalt selgeks tegema vajalikud asjad ning võivad oma valikainete punktid täis saada muudest ainetest.
Eesmärk ja sisu
Teemad pole ilmtingimata õiges järjekorras aga selleks et ainepunktid kätte saada peaks olema selgeks tehtud:
- ITK tehnilised juhendid [1], et saaks hakkama printimisega, e-posti edasi suunamisega ning kooli veebiserveri kasutamisega
- Arvuti riistvara põhitõed, et tudeng oskaks töö jaoks sobivat arvutit hankida
- Kiirklahvid Windowsis, Ubuntus - kui Alt-Tab puusalt ei tule ja klikitakse hiirega nagu metslane on päris piinlik ikka küll
- Failidega majandamine Windowsis, Ubuntus. Oskab kopeerida, liigutada, kustutada faile. Eristab kataloogi failist. Oskab sisse lülitada faililaiendite ning peidetud failide näitamise.
- Tekstiredaktori Notepad++ Windowsis, Gedit Ubuntu kasutamine. Oskab seadistada treppimist, reavahetusi ning kooditabelit (UTF-8)
- SSH kaudu serveritega majandamine, käsureale ligi pääsemiseks PuTTY ning failidega majandamiseks WinSCP
- On oma isiklikus seadistanud meelepärase tarkvara teiste kursuste läbimiseks: Java 8, Intellij, Eclipse, PuTTY, Git Bash, notepad++, Atom.io, Sublime, Ubuntu, web server vms.
- Versioonihaldusega tutvumine, saab aru mis vahe on tarkvaral Git ning teenusel GitHub. Oskab faile lisada versioonihaldusesse ning avaldada oma koodi GitHubis.
- Virtualiseerimisega tutvumine, on praktikumis paigaldanud virtuaalmasinasse Windowsi ja Ubuntu ning saab hakkama paigaldusega oma arvutil. On aimu palju ressursse jagada virtuaalmasinatele.
Hindamine
Aine läbimiseks on vaja:
- Sättida üles koduleht kooli veebiserveris
- Panna oma kodulehe failid Git lähtekoodivaramusse Githubis
- Sättida üles SSH võtmetega autentimine GitHubi
- Sättida üles oma arvutis SSH võtmetega autentimine nii et kooli serveritesse (enos, doris) saad sisse paroolita (failivahetus ja käsurida).
- Sättida üles oma arvutis teiste kursuste läbimiseks vajalik tarkvara, nii et see ei veniks semestri lõpupoole: Java 8, Intellij, Eclipse, PuTTY, Git Bash, notepad++, Atom.io, Sublime, Ubuntu, veebiserver vms
- Sooritada test veebis, päevaõppe testi aeg 14:00 14. oktoober 2016, õhtuõpe 16:00 18. oktoober 2016, kaugõpe hiljem kui loengud/praksid tehtud
Hindamise bot käib kord tunnis vaatamas teie progressi.
Kodused ülesanded
Läbi teha CodeAcademys:
Loengud/praktikumid
Esimene teema: Windowsiga tutvumine ja kodulehe personaliseerimine
Windowsis saad sisse logida kasutajaga 'kylaline' ja parooliga 'kylaline'. Logi sisse kasutades ID-kaarti Internet Exploreri, Chrome või Firefoxiga ja lähtesta oma kasutaja parool ÕIS-is. ID-kaart ei tööta veebilehitsejas Edge! Märgi üles oma IT Kolledži kasutajanimi mille leiad 'Minu andmed' alt. Seejärel logi välja külalise kontost ning püüa sisse logida arvutisse oma kontoga. Kontrolli üle et saad ka vikis sisse logida. Seejärel kontrolli ka et saad sisse e-posti serverisse. E-posti serveris kasutajanimi on kasutajanimi@itcollege.ee kujul. Kõik vajalikud lingid leiad IT Kolledži kodulehe ülevalt nurgast.
Windowsi 'This PC' all peaks olema neli ketast:
- C: - See on SSD peal olev Windows paigaldus, seal on vähe ruumi aga see-eest kiire
- D: - See on tavaline kõvaketas, palju ruumi aga aeglasem, sinna pane virtuaalmasinad tulevikus
- H: - See on kodukataloog enos.itcollege.ee serveris, seal on public_html kataloog mis paistab ka veebis välja aadressil http://enos.itcollege.ee/~kasutajanimi/
- W: - See on Avalik kataloog mille kaudu saate omavahel faile vahetada
Tekita H: kettal oleva public_html kausta fail nimega index.html mis tutvustaks kes sa oled ja kust sa tuled. Lisa ka pilt. Näite leiab siit. Faili index.html loomiseks sikuta omale mõni pädev tekstiredaktor a'la Notepad++, valige veebilehelt portable versioon .zip failis kuna teil pole õigust süsteemselt paigaldada tarkvara. MS Word on tekstitöötluseks (word processing), MS Word EI OLE tekstiredaktor (text editor). Notepad++ saab arvutitesse vast paigaldatud järgmise nädala jooksul. Kui HTML-i veel ei tunne siis ära muretse, sellest räägitakse kevadsemestril pikalt ja laialt. Praegu võte piirduda lihtsa tutvustava lehega:
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<p>Tere mina olen Lauri metsast</p>
<!-- Need kaks on cloudfront serverist -->
<img src="https://d1qb2nb5cznatu.cloudfront.net/users/18344-large?1405448591"/>
<img src="//d1qb2nb5cznatu.cloudfront.net/users/18344-large?1405448591"/>
<!-- Need neli on enose serverist -->
<img src="http://enos.itcollege.ee/~lvosandi/pics/lauri.jpeg"/>
<img src="//enos.itcollege.ee/~lvosandi/pics/lauri.jpeg"/>
<img src="/~lvosandi/pics/lauri.jpeg"/>
<img src="pics/lauri.jpeg"/>
<!-- Variandid mis kindlasti ei tööta -->
<img src="/home/lvosandi/public_html/pics/lauri.jpeg"/>
<img src="H:\public_html\pics\lauri.jpeg"/>
<img src="pics\lauri.jpeg"/>
</body>
</html>
Kui kõik tehtud on proovi FileZillaga ligi saada oma kodukataloogile, FileZilla on juba paigaldatud Windowsisse. Isiklikku arvutisse võid ka selle paigaldada või siis hoopis WinSCP-d kasutada. Mac OS peal töötab FileZilla või Cyberduck ning sshfs abil saad haakida võrguketta ka suvalisse kausta. FileZillaga ühendudes hostname on enos.itcollege.ee, kasutajanimi/parool sama mis ÕIS-is ning port on 22, ehk SSH protokoll. Veendu et saad ligi kataloogile ning proovi faile üles/alla laadida.
Teine teema: Ubuntuga tutvumine ja virtuaalmasinate loomine
Käivita arvutis Ubuntu, kui arvuti on juba Windowsis vali peamenüüst restart/taaskäivitus. Ubuntus peaksid saama sisse logida sama kasutajanime ning parooliga, häda korral võid kasutada kasutajanime student ning parooli student. Sellisel juhul muidugi võrguketast külge ei haagita.
Ubuntus on sinu kohalik kodukataloog /home/kasutajanimi. Ubuntus ei ole kettaid C:, D: või H: vaid need ressursid on haagitud kataloogidesse. Windowsist tuttav H: ketas on Ubuntus kättesaadav /home/kasutajanimi/Dokumendid kataloogis ning W: ketas /home/kasutajanimi/Avalik kataloogis ja D: ketas on haagitud /shared alla. Isiklikust Ubuntu masinast saad ligi kui vajutad failibrauseris Ctrl-L ning tipid aadressiribale sftp://kasutajanimi@enos.itcollege.ee/home/kasutajanimi Vajuta Ctrl-D et lisada järjehoidja.
Terminali avamiseks vajuta Ctrl-Alt-T Nopped eelmise aasta I600 kursusest mida terminalis proovida peale eile enoses kasutatud käskude:
- Kasuta
lsb_release -a
käsku, et kuvada operatsioonisüsteemi täpne nimi ja versioon - Kasuta
uname -sr
käsku, et uurida välja mis tuuma (kernel) versiooni hetkel käitatakse - Kasuta
cat /proc/cpuinfo
käsku protsessori info kuvamiseks. Mis mudeliga tegu on ja mitu tuuma sellel on? - Kasuta
arch
käsku et kuvada hetkel kasutatav protsessori arhitektuur, kas see on 32-bitine või 64-bitine? - Kasuta
cat /proc/meminfo
käsku mälu info kuvamiseks. Palju selles arvutis mälu on? - Kasuta
lspci -t -v -nn
käsku ühendatud PCI ja PCI Express seadmete nimekirja kuvamiseks. Püüa tuvastada, mis on mis. - Kasuta
lsusb
jalsusb -t
käske, et kuvada USB seadmete nimekiri, jällegi püüa tuvastada, mis on mis. - Kasuta
lsblk
käsku et kuvada plokkseadmete nimekiri, kui suured kõvakettad/SSD-d on selles arvutis? - Kasuta
xrandr
käsku et kuvada videoväljundid. Mis resolutsioonid on saadaval ning milline neist on hetkel kasutusel? - Kasuta
cat /proc/asound/cards
käsku et kuvada heliseadmete nimekiri. - Kasuta
dmidecode
et saada veel rohkem informatisiooni arvuti kohta, näiteks mis taktsagedusega mälud arvutis on ning mis tüüpi pesa nad kasutavad? Selleks et teada missuguseid mälumooduleid minna poest ostma. - Kasuta
ifconfig -a
võiip addr list
käske et kuvada võrguseadmete seaded. - Kasuta
htop
käsku protsessitabeli kuvamiseks
Laadi alla Windows 10 ISO ning paigalda see VirtualBox abil loodud virtuaalmasinasse. Eralda virtuaalmasina jaoks 8GB mälu ning 100GB kettapinda mis on paigutatud /shared alla, vastasel korral võib SSD kõristsaadik täis saada. Laadi alla Ubuntu MATE 16.04 ISO ning paigalda samasse virtuaalmasinasse ka Ubuntu, paigaldusel vali "Install alongside Windows". Kui seda valikut ei kuvatud siis pole virtuaalmasinas Windows korrektselt kinni pandud. Kui Ubuntu peaks alglaadimisel hanguda proovi lisada virtuaalmasinale protsessori tuumasid juurde, seda protsessorimudelit lihtsalt ei eksisteeri ühetuumalisena.
Kolmas teema: Tere maailm erinevates programmeerimiskeeltes
Proovi läbi teha tere maailm erinevates programmeerimiskeeltes Ubuntu all. Proovi täiendada programme, lisa nime küsimine ning lase programmil tervitada kasutajat nimepidi. Miks on programmi käivitamine niivõrd erinev erinevates keeltes? Mis on iga keele tugevused/nõrkused/omapärad? Tee taaskäivitus Windowsisse ning proovi sama asja teha Visual Studio abil C# keeles.
Python
Ava gedit
tekstiredaktor, ning salvesta järgnev sisu faili hello.py
.
#!/usr/bin/env python
print "Tere maailm"
Ava käsurida Ctrl-Alt-T abil ning käivita äsja salvestatud fail:
python hello.py # Käivita Python interpreedi abil hello.py
Ruby
Loo fail nimega hello.rb
:
#!/usr/bin/env ruby
puts "Tere maailm"
Käivita programm käsureal:
ruby hello.rb # Käivita Ruby interpreedi abil hello.rb
Bash
Loo fail nimega hello.sh
:
#!/bin/bash
echo "Tere maailm"
Käivita programm käsureal:
bash hello.sh
C
Loo fail nimega hello.c
:
#include <stdio.h>
void main() {
printf("Tere maailm\n");
}
Kompileeri programm käsureal:
gcc hello.c -o hello
Käivita programm failis hello
./hello # Käivita hello nimeline binaar praeguses kataloogis
Java
Loo fail nimega HelloWorld.java
:
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Kompileeri programm käsureal:
javac HelloWorld.java
Käivita Java baitkood failis HelloWorld.class
java HelloWorld
Neljas teema: Git ja SSH võtmed
Seekord vaatame kuidas toimib Git versioonihaldussüsteem ning kuidas sättida üles mugav autentimine oma isikliku arvuti, GitHubi ning enose vahel.
Tee oma arvutis läbi arenduse osa (development) kodulehest:
- Paigalda oma Ubuntusse Git:
apt install git tig gitg
- Registreeri GitHubis konto
- Loo GitHubi lähtekoodivaramu (repository) oma kodulehe jaoks
- Säti üles SSH võtmetega autentimine oma arvuti ja GitHubi serveri vahel
ssh-keygen -t ecdsa -P ""
, kuva avaliku võtme sisucat ~/.ssh/id_ecdsa.pub
abil ning kopeeri see GitHubi veebilehele (Settings -> SSH and GPG keys), täpsem juhend on siin - Klooni varamu oma arvutisse
git clone git@github.com:kasutaja/repo.git
,cd repo
- Lisa failid äsja tekkinud kataloogi, nt index.html ja mõni pilt
- Ütle Gitile et ta silma peal hoiaks nendel failidel
git add index.html
- Seadista Giti sissekannete jaoks oma täispikk nimi:
git config --global user.name "Eesnimi Perenimi"
- Seadista Giti sissekannete jaoks ka oma e-post:
git config --global user.email eesnimi.perenimi@domeen.tld
- Tee sissekanne (commit)
git commit
abil, Git küsib sissekande jaoks kirjeldust, see peaks vastama küsimusele mida tehti/lisati/muudeti - Avalikusta oma muudatused
git push
abil
Seejärel tee administraatori osa (deployment) enos.itcollege.ee serveris sättides üles oma kodulehe nii et see on seostatud GitHubis oleva koodiga:
- Säti üles SSH võtmetega autentimine oma arvuti ja enose vahel, selle jaoks kõige sobivam juhend on [puust ja punaseks siin]
- Säti üles SSH võtmetega autentimise oma kontoga enoses ning GitHubi serveri vahel, samamoodi nagu oma arvutigi puhul
- Liiguta olemasolev veebileht eest ära:
mv ~/public_html ~/kodulehe_backup
- Klooni varamu enosesse:
git clone git@github.com:kasutaja/repo.git ~/public_html
- Kontrolli et su koduleht oleks töökorras minnes veebilehitsejaga aadressile http://enos.itcollege.ee/~kooli-kasutajanimi
Igapäevane arendusprotsess edaspidi näeb välja järgnev:
- Oma arendusmasinas redigeerid faile, märgid muudatused Gitile meelde jätmiseks
git add failinimi
abil, teed sissekandegit commit
abil ning lükkad muudatused GitHubi serverissegit push
- Oma serveris rakendad muudatused lihtsalt
git pull
abil
Siin ka video kuidas Eclipse's Giti kasutada, selleks et Java kodutöö üles laadida. Vii ennast kurssi kuidas Gitiga toimetada, manuaal väga ei aita kuna terminoloogia on võõras, seepärast proovi järgida mõnda Git for newbies juhendit.
Git peaks jälgima *ainult* lähtekoodi faile, igasugused ajutised, kompileeritud, genereeritud mudru ei kuulu Giti reposse. Kasuta .gitignore
faili selleks et Git ignoreeriks neid faile:
# Tekstiredaktorite mudru
*~
*.swp
*.bak
*.tmp
# Java projekti jaoks:
build/
*.class
# Python projekti jaoks:
*.pyc
# C/C++ programmi jaoks:
*.so
*.o
Pärast neid seadistamisi on muutuste üleslaadimine juba lihtne:
git add .
git commit -m "muudetud: ..."
git push
võigit pull
Viies teema: veel virtuaalmasinatega majandamist
Kellel veel SSH harjutamist vajab võib proovida läbi teha virtuaalmasina importimist VirtualBoxis.
Kuues teema: kiirklahvid
Kiirklahvid on eraldi lehel Keyboard shortcuts