Programmeerimise alused

From Wikiversity

Tagasi koolituspakkumiste lehele

Üldinfo[edit]

Kursuse toimumise aeg:

Kursuse koostaja ja läbiviija: Inga Petuhhov, TLÜ informaatika instituudi õpetaja

Õppeained: e-kursuse sisule vastavad TLÜ-s õpetatav "Programmeerimise alused", ainekood IFI6074, maht 4 EAP ning TLÜ Haapsalu Kolležis õpetatav "Programmeerimise alused", ainekood HKI5025, maht 5 EAP (sisaldab rohkem ülesannete lahendamist)

Kursus toimub päevaõppele statsionaarses vormis, kuid materjalid avaldatakse siin ja edaspidi peaks saama kursust läbida ka e-õppe vormis (nt Haapsalu Kolledži üliõpilased, aga ka teised uvilised ja informaatikute 1. kursus). Sel juhul toimuvad kontakttunnid semestri alguses, keskel ja lõpus ning lisaks saab suhelda õppejõuga e-vahendite abil. Kontakttundide arvelt toimub kontrolltöö, kaitstakse kodutööd ning sooritatakse eksamitöö

Käesolev e-kursus on valminud ESF programmi BeST raames.

Toetajad:

Euroopa Liidu Sotsiaalfond

Eesti Tuleviku Heaks

(Märkus: Kursuse toetajate logosid ei ole lisatud, sest Wikipedias ja sellest tulenevalt ka vikiülikoolis on igasugune reklaam, sh toetajate logod, keelatud. Vaata täpsemalt wikipeedia reeglitest.

Kursuse info[edit]

Kursuse kõige üldisemaks eesmärgiks on eelduste loomine programmeerimise A ja B mõistmiseks, vastava sõnavara ning tüüpiliste keelelausete ning esmase algoritmimisoskuse omandamiseks.

Sihtgrupp[edit]

Kursus on mõeldud ennekõike toetama TLÜ ja Haapsalu Kolledži informaatika üliõpilaste vastava aine omandamist. Kuid kursus võiks sobida ka teistele, kellel on huvi programmeerimisega tutvust teha. Programmeerimisalaseid eelteadmisi kursuslastelt ei eeldata, kuid elementaarse arvuti kasutamisega tuleks siiski toime tulla.

Õpiväljundid[edit]

Kursuse edukalt läbinud üliõpilane

  1. Tunneb protseduurse programmeerimisega seonduvaid põhimõtteid, mõisteid ja keelt ning programmeerimise olemust.
  2. Analüüsib lihtsamaid probleeme ning koostab nende lahendamiseks algoritme, kasutades sealjuures tüüpalgoritme.
  3. Esitab algoritme tegevusskeemi abil ning „tõlgib“ algoritmi programmeerimiskeelde, jälgides kodeerimise reegleid ja häid tavasid.
  4. Oskab programmikoodi töötlemiseks kasutada sobivat keskkonda, programmikoodi siluda ja testida.

Töövahendid[edit]

Programmeerimiskeskkonnaks on Python'i interpretaator ja töökeskkond IDLE, mille leiad allalaadimiseks veebist aadressil http://www.python.org/download/

Python'i paigaldusjuhend

Algoritme saab üleskirjutada tegevusskeemi abil. Selleks kasutame programmi ArgoUML, mille veebiaadress on http://argouml.tigris.org/

ArgoUML'i paigaldusjuhend

Suhtlusvahendid küsimuste esitamiseks, probleemide lahendamiseks ja arutlemiseks on Skype ja e-mail.

Soovitused ellujäämiseks[edit]

  • See kursus ei ole Python-keele õpetus. See on programmeerimise algõpetus. Seetõttu ei tutvu me paljude spetsiifiliste keele võimalustega, vaid pigem keele tuumaga, millel kõige rohkem ühisjooni teiste keeletega, et need teadmised järgmistesse programmeerimisekursustesse kaasa võtta. Väga oluline on põhimõistete omandamine, sest nende abil pead ka edaspidi suhtlema. Samal põhjusel võin seada ka piiranguid keele võimaluste kasutamise osas.
  • Lahenda igal nädalal ülesanded, mis sellesse nädalasse kuuluvad. Kui jääd hätta, küsi abi. Ka minult. Lisaks e-suhtlusele võib ka otse vastuvõtuaja kokkuleppida. E-kohtumistel (mis on avatud mitmele) kehtib reegel, et arutusele tulevad just selle nädala ülesanded ja probleemid. Seda selleks, et vältida aedadest ja aiaaukudest rääkimist.
  • Kui ei jõua kohe lahendada, siis tee puudujääkk tasa nii ruttu kui võimalik. Kindasti tasub nõu ka eelmiste teemade osas küsida, aga selleks ei sobi reeglina üldised Skype'i ajad.
  • Arvesta sellega, et programmeerimist õppides kasvab üks teadmine teise otsa ja kui kuhugi auk sisse jääb, kipub ta iga nädalaga kasvama. Seega mida kiiremini augu kinni lapid, seda kergem on.
  • Kui uurid näiteprogramme või mõne kursusekaaslase töid, siis on sellest kasu ainult siis, kui enda jaoks programmi iga lause ja ka lause osa tähenduse selgeks mõtled + selle, miks see lause just selles programmis ja sellel kohal seisab.
  • Enne esimese koodirea kirjutamist saa aru ülesandest ehk mida on vaja leida. Seejärel mõtle läbi sammud, kuidas tulemuseni jõuda, st koosta algoritm. Kõige parem, kui selle ka üles joonistad. Ning alles siis kui põhiidee selge, alusta programmi kirjutamist.
  • Ehkki pea pole prügikast, proovi siiski olulisemad keele laused meelde jätta, sest kui iga lause õigekirja materjalist taga otsida, siis muutub programmi kirjutamine väga piinarikkaks.

Üldine õpijuhis[edit]

Iganädalane tegevusplaan on ligikaudu järgmine, mis siiski vastavalt läbitavatele teemadele varieerub.

  1. Uue teema kohta materjali lugemine. Uueks teemaks võib olla mõne tüüpalgoritmi kirjeldus, seni tundmatu andmetüüp, uued keelevahendid / keelelaused, kuid ka materjal üldisematel teemadel.
  2. Näidete uurimine, mis peaks aitama materjalist paremini aru saada.
  3. Ülesannete - probleemide lahendamine, mis on uue teadmise kinnistamiseks abiks. Ülesanded tuleb kindlasti ära teha.
  4. Ülesande lahendamisel:
    • Loe ülesanne läbi ja seda senikaua, kuni saad täpselt aru, mida programm tegema peab.
    • Mõtle läbi ja pane kirja lahendusalgoritm: millised sammud tuleb teha probleemi lahendamiseks (eestikeelsete lausetena, tegevusskeemina).
    • Kirjuta programmi kood, loe see läbi, otsi vigu. Sea eesmärgiks, et programmis ei oleks käivitamisel ühtegi süntaksiviga ehk õigekirjaviga. Millele pöörata tähelepanu
    • Silu programmi koodi, kõrvaldades kõigepealt süntaksivead ja seejärel töötavat programmi testides. Testimiseks on vaja teste. Enamasti tuleb nad ise koostada. Teste võite ka üksteisega jagada, et testimist efektiivsemaks muuta.
    • Pane kirja, kuidas ülesande lahendamine sujus, mis peavalu valmistas ja mis osas targemaks said.

Kui selles tegevuses tekivad mured, tuleks minuga / õppejõuga kontakti otsida.

Lähtudes aine mahust tuleb nädalas arvestada 7..9 tunni tööga. Väikese eelneva programmeerimiskogemuse olemasolul saab kiiremini hakkama, kuid aega võib kuluda ka rohkem.

Teated[edit]

Siia tulevad olulised teated

Ajakava[edit]

Sissejuhatus. Algoritm (1. nädal)[edit]

Lugemiseks

Probleemi lahendamine ja algoritm

Tegevusskeem

Tegevusskeemi joonistamine ArgoUML-iga

1. nädala õpijuhis

Esimesed programmid (2. nädal)[edit]

Lugemiseks

Üldist Pythonist

Kompileerimine ja interpreteerimine

Sisend ja väljund

Töökeskkonna IDLE kasutamine

Lihtandmetüübid ja muutujad

2. nädala õpijuhis

Valik algoritmis ja tegevusskeemil (3. nädal)[edit]

Lugemiseks

Võrdlustehted ja loogikatehted

Valik ja IF-lause

Vead ja erinditöötlus

3. nädala õpijuhis

Tsükkel algoritmis ja tegevusskeemil (4. nädal)[edit]

Lugemiseks

Tsükkel programmis: while-lause

Testimise alused

4. nädala õpijuhis

Kindla kordustearvuga tsükkel (FOR-lause) (5. nädal)[edit]

Lugemiseks

Tsükkel programmis: for-lause

Positsioonilised arvusüsteemid ja andmed arvuti mälus

5. nädala õpijuhis

Struktuursed andmetüübid (6. nädal)[edit]

Lugemiseks

Massiivid üldiselt

Pythoni string, jada ja ennik

6. nädala õpijuhis

Harjutamine ja paar uut algoritmi (7. nädal)[edit]

Lugemiseks

Suurim ja vähim väärtus

7. nädala õpijuhis

Kontrolltöö (8. nädal)[edit]

8. nädala õpijuhis

Kahemõõtmeline massiiv (9. nädal)[edit]

Lugemiseks

Kahemõõtmelise massiivi töötlemine

9. nädala õpijuhis

Alamprogrammid (10. nädal)[edit]

Lugemiseks

Alamprogrammidest üldiselt

Funktsioonid Pythonis

10. nädala õpijuhis

Tekstifailid (11. nädal)[edit]

Lugemiseks

Tekstifailid, andmete lugemine ja kirjutamine

11. nädala õpijuhis

Sõnastik (12. nädal)[edit]

Lugemiseks

Sõnastik

12. nädala õpijuhis

Kodutööde kaitsmine (13. nädal)[edit]

13. nädala õpijuhis

Eksam ja kursuse lõpetamine (14. nädal)[edit]

14. nädala õpijuhis