Kursinis darbas ‐ Savo programos kūrimas - MantsSk/CA_PTUA14 GitHub Wiki

Dėl datų ir terminų dar patikslinsim:

Tikslas – savarankiškai sukurti norimą programą, kuri kurso pabaigoje būtų visiems pristatyta. Svarbiausia – kad programa patiems būtų įdomi ir aktuali :)

Ką galima suprogramuoti:

  • Programą (svetainę) su Flask karkasu.
  • Programą (svetainę) su Django karkasu.
  • REST API programą (pvz. su klientu) su bet kuriuo iš anksčiau aprašytų karkasų.
  • Žaidimą (pvz. su PyGame, Kivy)
  • Panaudoti biblioteką kaip MoviePy video montavimo automatizavimui (tik vieną iš idėjų ir pavyzdinė blioteka, galima naudoti ir kitas)
  • Duomenų ištraukimo ir/ar apdorojimo, analizės programą (panaudojant kažką iš Numpy, Pandas, API, Web Scraping, Machine Learning, Matplotlib, Seaborn).

Programoje rekomenduojama naudoti šiame kurse išmoktą medžiagą (bent dalis). Bet gali būti panaudota ir tai, ko nesimokėme. Svarbu, kad būtų Python.

Geriau jau sukurti paprastesnę, galbūt neišbaigtą programą, bet suprasti kaip ji veikia. Kopijuoti kodą ar žiurėti tutorialus tikrai galima, bet reikėtų suprasti ką darote. Tas pats galioja ir su CHAT GPT :)

Programų idėjos:

  • Svetainė (su Flask, Django). Galima sukurti norimą svetainę su statiniu turiniu, taip pat galimybe vartotojui prisijungti ir matyti jam skirtą turinį. Pavyzdžiui, įmonės svetainę, žinių portalą, e-parduotuvę, kažkokių paslaugų užsakymą ir valdymą, t.t.
  • Verslo valdymo sistemą (su Flask, Django). Galima sukurti vidinę, darbuotojams skirtą sistemą, skirtą konkrečiam verslui valdyti. Galima tiesiog pasirinkti norimą verslo sritį ir parašyti jai programą, kuri padarytų įmonės darbą efektyvesniu. Pavyzdžiui, banko, parduotuvių tinklo, mokymo, kažkokių paslaugų teikimo.
  • Duomenų ištraukimo ir apdorojimo (su Pandas, API, Web Scraping, Machine Learning). Galima ištraukti kažkokius duomenis (per API ar Scraping) iš interneto ir juos išsaugoti (duomenų bazėje), apdoroti (su Pandas, Machine Learning), atvaizduoti (su Matplotlib, Seaborn, kitais įrankiais). Pavyzdžiui, ištraukti ir apdoroti kažkokias produktų ar paslaugų kainas, valiutų ar vertybinių popierių kursus, įvairią statistinę informaciją, sporto statistiką ir panašiai.

Programos pristatymas:

Sukurtą programą reikės pristatyti numatytoje šio kurso paskaitoje. Joje dalyvaus visi kurso studentai, galbūt kažkas iš CodeAcademy administracijos, vertins kurso dėstytojai. Pristatymas vyksta prisijungus savo kompiuterį ir pasidalinant ekrano vaizdu. Nereikia ilgo pristatymo (paprastai jis užtrunka iki 5/7 minučių). Pristatymo metu dėstytojas, dalyvaujantys CodeAcademy darbuotojai, kolegos studentai gali klausti klausimų apie programą.

Klausimai, kuriuos reikėtų atsakyti pristatant programą:

  • Kodėl pasirinkote kurti būtent šią programą?
  • Kuo naudinga ši programa?
  • Įdomiausio/sudėtingiausio kodo demonstracija

Vertinimo kriterijai:

Aktualumas:. Idealiu atveju, programa turi būti kažkuo naudinga sau ir/arba kitiems žmonėms.

Išbaigtumas:. Viskas, kas programoje numatyta, turi būti įgyvendinta ir veikti be klaidų. Kita vertus, jei dalis funkcionalumo įgyvendimo (pvz. dėl laiko stokos) buvo atidėtas - viskas gerai. Svarbu nepalikti kažko su klaidomis.

Kodo kokybė: Pristatymo metu prašoma šiek tiek pademonstruoti kodo. Jei ten betvarkė, sudėtinga suprasti kas kur, įvertinimas gali būti sumažintas.

Kodo supratimas: Kodą kurį naudojate programoje (nesvarbu ar rašote patys ar nusižiurėjote iš kažkur) reikia suprasti. Programuotojai dažnai remiasi "Stack Overflow" ar kitais įrankiais, tad visiškai nieko blogo yra kažkokią kodo dalį nusižiurėti. Tačiau reikėtų suprasti kaip tas kodas veikia. Pvz - jei jums ChatGPT sugeneravo Flask login kodą, tai turite savais žodžiais mokėti paaiškinti kaip jūsų kodas veikia. Techninių terminų mokytis nereikia, užtenka savais žodžiais parodyti kaip tai suveikia.

Sudėtingumas:

  • Jei dirbama su mūsų išmoktomis technologijomis (pvz Flask ar Django), tai reikėtų panaudoti didžiaja dalį mūsų išmoktų dalykų. Pvz - prisijungimas, registracija, įrašai, profilis ir t.t. Taip pat pridėti kažką nuo saves. Pvz mes nepadarėme "Slaptažodžio keitimo" funkcionalumo Profilio puslapyje Flask programoje arba nepadarėme, kad registruojantis būtų siunčiamas patvirtinimo laiškas į el.paštą. Jūsų darbas gali tai turėti ir tai jau yra didelis privalumas ir parodymas, kad patys mokate pridėti dalykus prie savo darbų.

  • Jei dirbama su nesimokyta technologija. Pvz PyGame, stenktis pabaigti jau naudojamus funkcionalumus. Pvz jei jau nusprendėte įdėti "priešus" į žaidimą, tai kad jie ir galėtų sunaikinti jūsų pagrindinį veikėja :) Užbaigtumo reikalavimai mažesni, nes dirbate su nauja technologija. Galite tikėtis šiek tiek daugiau klausimų, nes naturalu, kad mes patys nežinosim technologijos ir plius norėsim įsitikinti, kad jūs darėte.

UI/UX dizainas (naudojimo patogumas, aiškumas). Svetainės dizainas (išvaizda) nevertinamas, nes tai nėra šio kurso akcentas. Tačiau vertinamas programos naudojimo patogumas ir aiškumas. Vartotojas turi nesunkiai suprasti, kaip dirbti programa.

Vertinimas

Į kiekvieną vertinimą ateiname su noru studentui rašyti 10. Pažymys gali būti mažinamas tokiu atveju jeigu:

  • Programoje yra neveikiančių dalykų, nepaaiškintų klaidų. Jei neveikia, reikia paaiškinti kodėl, kokios iškilo problemos.
  • Nesugebama paaiškinti esamo kodo
  • Programoje trūksta daug elementaraus funkcionalumo, kurio buvo mokomasi kurse. Pvz jei darote svetainę, tai būtų gerai, kad būtų prisijungimas/registracija. Jei jūsų atveju tai netinka, parašykite. Padiskutuosim.
  • Kodas parašytas labai netvarkingai, išmėtytai. Nesilaikoma PEP standartų kurių mokėmės ir t.t.

Ir svarbiausia. Programa neturėtų būti kurso metu darytų dalykų kopija. Beabejo tai nereiškia, kad negalite išmoktais dalykais remtis. Tai net rekomenduotina. Svarbiausia, kad tai nebūtų visiška kopija.