Category:Skriptimiskeeled: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
Line 14: Line 14:


===Hinde kujunemine===
===Hinde kujunemine===
Arvestuse tulemus kujuneb semestri jooksul tehtud töö baasil. Hindamisele kuuluvad iseseisva töö aruanded ehk skriptid koos dokumentatsiooniga (30% ulatuses) ning praktilised kontrolltööd (40% ulatuses). Kontrolltööd koosnevad praktilistest arvuti abil lahendatavatest skriptimisülesannetest. Arvestustööd saab teha semestri jooksul (kui kodutööd/kontrolltööd on tehtud) või arvestuse päeval.
Iseseisev töö koosneb kahest hinnatavast plokist:  
Iseseisev töö koosneb kahest hinnatavast plokist:  


Line 21: Line 19:
* Python
* Python


Mõlemas plokis tuleb õppijal koostada aruanne, mis koosneb juhendist ja enda loodud skriptist. Iseseisva tööna tuleb teha kokku kaks aruannet.
Arvestuse saamiseks tuleb kummaski plokis edukalt esitada järgnevad tööd:
# Kodutöö (töötav skript koos sinna juurde kuuluva dokumentatsiooniga)
# Hinnangud vähemalt kolmele (3) oma grupi kaastudengite esitatud skriptile, lähtudes 1. loengus kujunenud gruppidest
# Kontrolltöö (kontakttunnis kohapeal, sisaldab mõne kaastudengi töö täiendamist vastavalt õppejõu antud ülesandele)
 
'''Hea skript (vastavalt 1. loengus kokkulepitule):'''
# Töötab (ja on testitud)
# Annab kasutajale tagasisidet (nii kasutaja eksimuste kui ka enda tegemiste kohta)
# Logib oma tegevust
# On hallatav (kommenteeritud ja korrektselt vormindatud, sh adekvaatselt trepitud)
# Küsib vajalikke õigusi (mitte rohkem, mitte vähem)
# Ei lõhu ümbritsevat keskkonda (välja arvatud juhul, kui see ongi eesmärk)
# Ei eelda, vaid kontrollib (nt failide olemasolu, kirjutamisõigust jne)
# On võimalikult lihtne
# Säästab süsteemi ressursse (ketas, mälu, protsessor, võrk)
# On kiire
 
Lisaks võiks hea skript olla ka skriptitav, st tagastada väljumiskoodi (exit code) ja mitte vajada tingimata kasutajapoolset interaktiivset sekkumist (võrdle nt parameetrite saamist käsurealt kasutajalt küsimisega pärast käivitamist).
 
===Tähtajad===
 
Bash kodutöö: 6.11.2016
Bash kodutööde hindamine: 20.11.2016 (2 nädalat pärast tööde esitamise tähtaega)
Bash kontrolltöö: 26.11.2016


'''Hea skript (vastavalt 1. loengu lõpus kokku lepitule):'''
Python kodutöö: 26.11.2016
# Teeb AINULT seda, mida vaja
Python kodutööde hindamine: 10.12.2016
# Kasutab muutujaid
Python kontrolltöö: 17.12.2016
# Teeb oma ülesande ära nii lihtsalt, kui võimalik (KISS)
# On kommenteeritud ja dokumenteeritud
# Teavitab kasutajat tekkivatest probleemidest
# Logib oma tegevust ja probleeme
# Ei eelda, kontrollib (nt kas Apache on paigaldatud)
# Küsib luba, kui järgnev toiming on pöördumatu (failide kustutamine, ülekirjutamine jms)
# On skriptitav
## Vajadusel käivitatav nii, et skript töötaks ilma kasutajapoolse sekkumiseta
## Veasituatsiooniga lõpetades tagastab väljumiskoodi (exit code)
# On korralikult vormindatud


Viimane võimalus emba-kumba kontrolltööd teha (osavamad jõuavad teha ka mõlemaid) on arvestuse ajal 07.01.2017. Soovitan siiski mitte venitada ja teha varem. Kui on soov kontrolltöid teha ülalmainitud kuupäevadest varem, võta õppejõuga kindlasti ühendust paar päeva enne vastavat kontakttundi.


==Üldist==
==Üldist==


[https://echo360.e-ope.ee/ess/portal/section/09168a38-d745-4775-be15-dd8083bf633f Loengusalvestised kevad 2016 (päevaõpe)]
[https://echo360.e-ope.ee/ess/portal/section/2c03d65b-1b99-46be-a0b5-f6226df8d252 Loengusalvestised sügis 2016 (kaugõpe)]


===Anna teada, mida aines paremaks võiks teha (keelatud pole ka lihtsalt soovitused/kiitused/laitused===
===Anna teada, mida aines paremaks võiks teha (keelatud pole ka lihtsalt soovitused/kiitused/laitused===
Line 48: Line 60:
===Tööde esitamine===
===Tööde esitamine===


Kõik tööd tuleb esitada [https://www.atlassian.com/git/tutorials/ GIT] repositooriumi kaudu, kas [https://bitbucket.org/ Bitbucket], [https://github.com/ GitHub] või mõni muu.
Kõik tööd tuleb esitada [https://www.atlassian.com/git/tutorials/ GIT] repositooriumi kaudu. Konkreetsest repositooriumist, kuhu tööd esitada, räägime teies kontakttunnis. Lisaks räägime seal ka Giti kasutamisest üldisemalt.


Esitamiseks saada õppejõule e-kiri:
Esitamiseks saada õppejõule e-kiri:
Line 81: Line 93:
[http://tldp.org/LDP/abs/html/ Materjal, mille läbitöötamine asendab Bash loengutes kaasatöötamist]
[http://tldp.org/LDP/abs/html/ Materjal, mille läbitöötamine asendab Bash loengutes kaasatöötamist]


Tunnis lahendatud näited leiab siit - [[Bash näited 2013]]
===Kodutööd (vali üks)===
 
Kiiruse peale lahendatavad ülesanded. Punkte saab esimene töötav lahendus [[Bash quests 2014]]
 
Bash arvestuse saamiseks tuleb teha kodutöö, mis koosneb kahest osast (vaata loengumaterjali) ja sooritada arvestustöö kas tunnis või arvestuse päeval. Arvestustöö tegemise eelduseks on esitatud kodutöö.
 
===Tunnis antud ülesanded===


====Bash Kodutöö 1 - failiteenus====
====Bash Kodutöö 1 - failiteenus====

Revision as of 22:42, 16 October 2016

Skriptimiskeeled ainekaart

Eesmärk

Õppeaine eesmärk on tutvustada õppijatele skriptimiskeelte vajalikkust korduvate haldustegevuste automatiseerimisel ning arendada õppijate oskuseid serverite ja tööjaamade haldamiseks.

Lühitutvustus

Õppeaines käsitletakse skriptimiskeeli kui ühte töövahendit, mille abil on võimalik süsteemide haldamiseks vajalikke tegevusi efektiivselt ning otstarbekalt sooritada ja automatiseerida. Pikemalt tutvustatakse Bash kooriku programmeerimisvõimalusi ning skriptimiskeelt Python. Põgusalt viidatakse ka teistele skriptimiskeeltele, nt Ruby ja PowerShell. Õppija omandab aine läbimise käigus enamlevinud srkiptimisvahendite esmase kasutusoskuse ja ülevaate tänapäeval kasutatavatest skriptimisvahenditest.

Õpiväljundid

  • Õppija mõistab skriptimise kui töövõtte vajadust ning kasutusvaldkondi.
  • Õppija teab ja tunneb enimkasutatavaid skriptimiskeeli ja nende kasutamisvõimalusi.
  • Õppija oskab kasutada skriptimiskeeli lihtsamate haldustegevuste automatiseerimiseks.
  • Õppija oskab koostada keerulisemaid skripte kasutades selleks erialast kirjandust ja sotsiaalseid keskkondi.

Hinde kujunemine

Iseseisev töö koosneb kahest hinnatavast plokist:

  • Bash
  • Python

Arvestuse saamiseks tuleb kummaski plokis edukalt esitada järgnevad tööd:

  1. Kodutöö (töötav skript koos sinna juurde kuuluva dokumentatsiooniga)
  2. Hinnangud vähemalt kolmele (3) oma grupi kaastudengite esitatud skriptile, lähtudes 1. loengus kujunenud gruppidest
  3. Kontrolltöö (kontakttunnis kohapeal, sisaldab mõne kaastudengi töö täiendamist vastavalt õppejõu antud ülesandele)

Hea skript (vastavalt 1. loengus kokkulepitule):

  1. Töötab (ja on testitud)
  2. Annab kasutajale tagasisidet (nii kasutaja eksimuste kui ka enda tegemiste kohta)
  3. Logib oma tegevust
  4. On hallatav (kommenteeritud ja korrektselt vormindatud, sh adekvaatselt trepitud)
  5. Küsib vajalikke õigusi (mitte rohkem, mitte vähem)
  6. Ei lõhu ümbritsevat keskkonda (välja arvatud juhul, kui see ongi eesmärk)
  7. Ei eelda, vaid kontrollib (nt failide olemasolu, kirjutamisõigust jne)
  8. On võimalikult lihtne
  9. Säästab süsteemi ressursse (ketas, mälu, protsessor, võrk)
  10. On kiire

Lisaks võiks hea skript olla ka skriptitav, st tagastada väljumiskoodi (exit code) ja mitte vajada tingimata kasutajapoolset interaktiivset sekkumist (võrdle nt parameetrite saamist käsurealt kasutajalt küsimisega pärast käivitamist).

Tähtajad

Bash kodutöö: 6.11.2016 Bash kodutööde hindamine: 20.11.2016 (2 nädalat pärast tööde esitamise tähtaega) Bash kontrolltöö: 26.11.2016

Python kodutöö: 26.11.2016 Python kodutööde hindamine: 10.12.2016 Python kontrolltöö: 17.12.2016

Viimane võimalus emba-kumba kontrolltööd teha (osavamad jõuavad teha ka mõlemaid) on arvestuse ajal 07.01.2017. Soovitan siiski mitte venitada ja teha varem. Kui on soov kontrolltöid teha ülalmainitud kuupäevadest varem, võta õppejõuga kindlasti ühendust paar päeva enne vastavat kontakttundi.

Üldist

Loengusalvestised sügis 2016 (kaugõpe)

Anna teada, mida aines paremaks võiks teha (keelatud pole ka lihtsalt soovitused/kiitused/laitused

Skriptimiskeeled aine muudatuste ideed

Tööde esitamine

Kõik tööd tuleb esitada GIT repositooriumi kaudu. Konkreetsest repositooriumist, kuhu tööd esitada, räägime teies kontakttunnis. Lisaks räägime seal ka Giti kasutamisest üldisemalt.

Esitamiseks saada õppejõule e-kiri:

To: kristjan.karmo [at] itcollege.ee
Subject: Skriptimiskeeled: [töö nimetus, nt bash 1. kodutöö, Python kontrolltöö vms]

Sisusse kirjuta kogu vajalik taustainfo, nt milliste andmetega skripti on testitud. Ära unusta repositooriumi linki (võimalikult täpselt õige faili õige versioon).

Näide:

To: kristjan.karmo [at] itcollege.ee
Subject: Skriptimiskeeled: bash 1. kodutöö

Tere

Saadan bashi 1. kodutöö. Skript töötab korrektselt, kui kasutaja käsurealt ühtegi parameetrit ei sisesta.
Link koodile: https://wiki.itcollege.ee/index.php/Bash_n%C3%A4ide

Parimat
Toomas Tester
AK99

Bash

Bash loengumaterjal

Loengute videod 2015 kevad Enesetest aine Bash osa eelduse kontrolliks

Materjal, mille läbitöötamine asendab Bash loengutes kaasatöötamist

Kodutööd (vali üks)

Bash Kodutöö 1 - failiteenus

Looge skript, mis jagaks etteantud grupile uue kausta

[sudo] ./jaga.sh KAUST GRUPP <JAGATUD KAUST>

Skript teeb järgnevat:

  • paigaldab samba (kui vaja)
  • loob kausta KAUST (kui vaja)
  • loob grupi GRUPP (kui vaja)
  • lisab grupile sobivad read smb.conf faili ja teeb failiserveri teenusele reload'i

Failiserveri loeng

Veebiserveri loeng

Mõistlik on konfiguratsioonist eelnevalt koopia teha ja muudatused koopiasse sisse viia. Koopiat testitakse testparm korraldusega ja kopeeritakse alles seejäral fail üle.

Tunnis antud näide

Bash kodutöö 2 - veebihosting/veebiteenus

Looge skript, mis looks uue veebkodu

Kasutaja sisestab:

[sudo] ./loo-kodu.sh www.minuveebisait.ee
  • Skript paigaldab apache2 serveri, kui see puudub
  • Loob nimelahenduse (lihtsalt /etc/hosts failis)
  • Kopeerib vaikimisi veebisaidi ja modifitseerib index.html faili sisu vastavalt loodavale lehele
  • Abimaterjal Virtualhost apache2 näitel Veebiserveri labor v.2


The only way to really learn scripting is to write scripts

Praktika

  • Esimeses praktikumis saavad kõik endale ELab-keskkonna kasutajatunnused ja õigused vastavasse laborisse.


Python

Loengumaterjal ODP vormingus

Lisamaterjal (algajad saavad siit abi isegi siis, kui programmeerimise algõpe jäi puudulikuks)


Python kodutöö

Soovituslik on oma kodutöö teema ise välja mõelda. Kui ühtegi mõtet ei tule, võib võtta järgmise skripti:

Skript loeb esimese parameetrina antud failist sisse URL-id ja nende järel olevad stringid. String ja URL eraldatakse, seejärel tehakse päring vastava URLi pihta. Vastuse lähtekoodist otsitakse URLi järel olnud stringi. Teise parameetrina antud faili kirjutatakse uuesti URL, otsitav string ja "JAH/EI" vastavalt sellele, kas otsitav string leiti või mitte.

Skriptimiskeelte varasem materjal

Category:Skriptimiskeeled (arhiiv)

Pages in category "Skriptimiskeeled"

The following 39 pages are in this category, out of 39 total.