I253 Informatika eelkursus

From EIK wiki

Ü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 ja lsusb -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õi ip 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 sisu cat ~/.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 sissekande git commit abil ning lükkad muudatused GitHubi serverisse git 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õi git 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