Juhend: Kodutöö aines "Programmeerimine CSharp keeles" (2014)
Kodutöö aines "Programmeerimine C# keeles"
Eesmärk
Saada praktiline arenduskogemus .NET keskkonnas ning arendada meeskonnatöö kogemust ja analüüsivõimet. Kasutada arendusprotsessis koodihoidlat.
Reeglid
Ühte projektimeeskonda kuulub 3-5 tudengit(Soovituslik meeskonna suurus on 3-4). Ühel teemal võib teostada projekti üks või mitu meeskonda.Töö käiku kajastatakse https://wiki.itcollege.ee keskkonnas või soovi korral võib seda teha ka ajaveebis(blogis). Ajaveebi pidamise eesmärke on kaks: nii on võimalik kirja panna kõik mõtted ja ideed (ning nendest jääb jälg ja dokumentatsioon) ning õppejõul on hiljem võimalik saada ülevaade iga projektimeeskonna liikme panusest. Ajaveebi loob ja ajaveebi haldab projektimeeskond vabalt valitud (avalikus) keskkonnas.
Projekti loomine ja arendamine Projekt lisatakse versioonihaldusesse, kasutades selleks [Team Foundation Service'it http://tfs.visualstudio.com/] ning õppejõule antakse ligipääs. Õppejõu live id: maitposka ät hotmail.com . Projekt peab olema alates algfaasist lisatud TFSi ning kogu tööprotsess toimub versioonihaldust kasutades
Tööde esitamine (prototüüb ja lõpptoode) Töö esitamisel pakitakse see kokku ning lisatakse wiki leheküljele link lähtekoodile. Kui töö lähtekoodi ei soovita mingil põhjusel avalikustata, tuleb õppejõuga selle jaoks sõlmida eraldi kokkulepe. Lähtekood on vajalik, et tööd oleks võimalik hinnata nii õppejõul kui kaastudengitel selle kohta retsensiooni kirjutada.
Team Foundation Service kasutamine (tänasel päeval Visual Studio online) Step-by-Step juhend
NB! Siia tuleb õppejõu poolt lihtne screencast ka, kuid ideeliselt ei tohiks selle kasutamine olla väga keeruline.
Tähtaegadest kinnipidamine
Projekt jaguneb alamosadeks, millele on määratud tähtajad. Tähtaegade ületamisel võimalike punkte ei kaotata. Kui töö aga on esitatud tähtajaks, siis on võimalik selle eest teenida boonuspunkte (enamasti 0-10% võimalikust maksimumist boonust). Enne tähtaega esitatud töö ei tähenda automaatselt maksimumpunkte, kui see ei ole sooritatud korralikult.
Hindamine
Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud. Maksimumtulemuse saavutamiseks peab projekt olema teostatud tehniliselt veatult ning varustatud dokumentatsiooniga, milles sisaldub arendusprotsessi kirjeldus (peab selguma ka iga rühmaliikme panus projekti teostamisel), kasutajajuhend ning lahenduse kirjeldus. Tehnilisi ja vormistuslike puudujääke on võimalik korvata lisavõimaluste realiseerimisega.Üldjuhul tuleb loodud lahendust ka praktikumides või loengutes teistele tudengitele tutvustada (ca 10 min). Nagu eelpool mainitud, koosneb projekt erinevatest osadest. Punktide arvu määramisel arvestatakse ka tähtajast kinni pidamist, mille toimimisloogika on kirjeldatud eespool.
Meeskonna kokkupanek ja idee
25.10.2014 (2p)
Tekitatakse meeskonna wiki lehekülg. Meeskonnal peab olema nimi ning see koosneb kolmest kuni viiest liikmest. Määratakse projektijuht. Juhul kui hakatakse blogi pidama kuskil mujal keskkonnas ilmub selle kohta link. Lühidalt peaks kirjeldama idee olemust nii, et selle üldine suund oleks arusaadav. Samuti peab olema märgitud tehnoloogia, milles hakatakse rakendust looma. Meeskond on loonud TFSi konto ning on saatnud õppejõule kutse.
Analüüs
01.11.2014 (6p) Analüütilise osa eesmärgiks on arendada tudengite analüüsioskust, mida on vaja ka päris tarkvaraarenduse protsessi juures.NB! Miinimum sõnade arv 700 Selle osa käigus peab valmima loodava rakenduse analüüs, mis sisaldab muu hulgas ka:
- Analüüs rakendusele. (Mida see endas sisaldab? Mis on selle eesmärk? Mida tavakasutaja sellega teha saaks? Milliste osade realiseerimine võib osutuda problemaatiliseks?) Kui on tööjaotus paigas, siis tuua ka see välja.
- Tuua välja nimekiri funktsionaalsusest, mida plaanitakse kindlasti teostada(Must have)
- Nimekiri funktsionaalsustest, mis võiks olla, aga mida ei pruugita ajapuuduse tõttu realiseerida.(Nice to have)
Retsensioon 8.11.2014 (3p)
Prototüüp
29.11.2014(10p)
Valmib projekti esmane realisatsioon. Laias laastus on peafunktsionaalsused realiseeritud(Nimekiri funktsionaalsusest, mida plaanitakse teostada). Programmis võib esineda üksikuid, kuid mitte väga suuri vigu.
Retsensioon 06.12.2014(5p)
Lõpptoode
22.12.2014(20p) Selleks faasiks peab projekt maksimumpuntkide saavutamiseks olema teostatud tehniliselt veatult ning varustatud dokumentatsiooniga, milles sisaldub arendusprotsessi kirjeldus (peab selguma ka iga rühmaliikme panus projekti teostamisel), kasutajajuhend ning lahenduse kirjeldus.
Retsensioon 05.01.2014(5p)
Esitlus/Kaitsmine
Toimub loengutes/praktikumides või kokkulepitud ajal enne eksamit (4p) Esitlusel kaitstakse projekti. Tutvustatakse tehnoloogiat, mida kasutati rakenduse realiseerimiseks. Lühidalt räägitakse tööjaotusest ning probleemidest, mis tekkisid projekti realiseerimisel. Näidatakse lähtekoodi ja demonstreeritakse oma rakendust teistele tudengitele, kes võivad selle kohta küsimusi küsida. Kestvus ~20min.
Kaitsmise ajad
Siia ilmuvad kaitsmise ajad
Teemad 2014 sügis
Kodutööna tuleb luua:
Nõuded rakendusele
Loodav rakendus peab:
- Peab kasutama andmebaasi (erikokkuleppel ka XML formaadis andmeallikat)
- Andmebaasis peab olema vähemalt 6 andmebaasi tabelit
- Peab võimaldama tegevuste kohta registri pidamist (logi)
- Rakenduses tehtavad tegevused salvestatakse
- Kasutama kasutajaliidesena ühte järgmistest: Windows Presentation Foundation, Windows Phone 8, Windows 8 Store App või ASP.Net
- Kood on kommenteeritud ning rakendus on varustatud dokumentatsiooniga
- Maksimumpunktide jaoks kasutatakse vastavalt valitud tehnoloogiale soovitatud arendusmustreid
- Kood on kirjutatud C# programmeerimiskeeles
- Kuna aine nimi on "Programmeerimine C# keeles" ei tohi esitada rakendust, mis on loodud Javas, PHPs vms keeles
- Rakendus on jaotatud kihtidesse
Loodav rakendus peab olema loodud objektorienteeritud lähenemist kasutades! Klassid, klassid, klassid
Lisapunkte annab:
- Silmailu
- Kood on kirjutatud häid praktikaid järgides ja on veatu(testimine, testimine, testimine)
- Orginaalsed ideed ja hea äriidee
Kodune raamatukogu
Kodudes on tihti erinevaid raamatuid (filme, muud nänni) ja sõbrad tahavad neid vahel laenutada. Loo rakendus, mis
- Võimaldaks sisestada kodused raamatud
- Võimaldaks luua laenutajate profiile
- Raamatuid välja laenutada (tähtajaliselt)
- Laseks koostada erinevaid aruandeid (kodusolevad raamatud, väljalaenutatud raamatud, tähtaja ületanud laenutused jne)
Lisavõimalused
- Kui laenutaja profiilis on e-mail, siis saada automaatselt e-kiri „kallis sõber see ja see, Sinu käes on minu raamat, kas tood tagasi ka?”
- Kuva hoiatused, kui laenutaja laenutuste ajalugu on vilets või kui mõni raamat on tagastamata.
- Lase lisada raamatutele pilt
- Loo lihtne veebiliides (et sõbrad saaksid veebist vaadata, mis raamatud kasutajal kodus veel alles on)
Või
CRM
Oma klientidest peab olema ülevaade. Loo rakendus, mis võimaldab:
- Kliente ning nende kontaktisikuid sisestada, muuta ning kustutada
- Võimalda sisestada kliendikontakte
- Koostada hinnapakkumisi klientidele, kusjuures hinnapakkumine lisatakse süsteemi ka kui kliendikontakt ning saadetakse samast süsteemist kliendile.
- Kliendi andmete vaatamisel kuvatakse ka kliendikontaktid
Lisavõimalused
- Loo võimalus, kus kontaktisiku sünnipäeva saabumisel saadetakse automaatselt inimesele meil õnnesoovidega
- Õnnitlusmeilide template’sid võiks olla mitu
- Loo võimalus kliendi huvide (huvialade) kajastamiseks süsteemis
Mäng(Unity või XNA)
Loodav mäng peab sisaldama:
- Erinevaid tasemeid
- Punktiarvestust
- XBox puldi tuge
- Klaviatuurilt juhtimise tuge
Loodav mäng peab olema loodud objektorienteeritud lähenemist kasutades! Klassid, klassid, klassid
Lisapunkte annab:
- Silmailu
- Kood on kirjutatud häid praktikaid järgides ja on veatu(testimine, testimine, testimine)
- Orginaalsed ideed ja hea story
Meeskonnad 2014
Siia sektsiooni tuleb meeskonna nimi ning selle liikmed. Samuti kui on lisatud mõni koduse töö osa, siis otselink sellele(sh retsensioonid). Eraldi sektsioonidesse jaotuvad päevaõppe ja kaugõppe tudengid, kuid lubatud on üksteise töid retsenseerida ja vaadata. (Võib-olla isegi soovituslik)
Päevaõppe meeskonnad
Meeskond CSharpTest
Liikmed:
- Mait Poska
- Aita-Leida Kuusepuu
Meeskonna koduleht: Meeskond:CSharpTest Meeskonna koduleht versioon 2: Meeskonna koduleht
Retsensioonid
Analüüsi retsensioon meeskonnale CSharpTest asub siin
Meeskond Rods
Liikmed:
- Rain Mäsak
- Oliver Armväärt
- Den-Daniel Dobrus
- Sten Saliste
Meeskonna koduleht: Meeskond:Rods
Retsensioonid
-
Meeskond Lillelapsed
Liikmed:
- Rene Ott
- Alari Talvar
- Villu Viirsalu
- Daniil Slobodin
Meeskonna koduleht: Meeskond:Lillelapsed
Retsensioonid
Meeskond SuperPenguin
Liikmed:
- Tauri Busch
- Erika Ehmann
Meeskonna koduleht: Meeskond:SuperPenguin
Retsensioonid
Meeskond Raggakana
Liikmed:
- Aap Kaur Suvi
- Indrek Jõgi
- Murdho Savila
- Sandra Niinepuu
Meeskonna koduleht: Meeskond:Raggakana
Retsensioonid
Meeskond Vaiksed
Liikmed:
- Martin Mägi
- Martin Betlem
Meeskonna koduleht: Meeskond:Vaiksed
Retsensioonid
-
Meeskond BoxMania
Liikmed:
- Maanus Indov
- Mait Roosvalt
- Märt Lõhmus
- Kaarel Kelk
- Eleri Mölder
Meeskonna koduleht: Meeskond:BoxMania
Meeskond Taandarendajad
Liikmed:
- Priit Üksküla
- Meelis Talvis
- Kaido Henrik Elias
Meeskonna koduleht: Meeskond:Taandarendajad
Retsensioonid
Meeskond DropDead
Liikmed:
- Urmas Hoogma
Meeskonna koduleht: Meeskond:DropDead
Retsensioonid
Meeskond Error404
Liikmed:
- Mihkel Kivisild - projektijuht
- Andre Kaur
- Priidik Soon
- Tiit Tallermaa
Meeskonna koduleht: Meeskond:Error404
Retsensioonid
Meeskond "Aida alla"
Liikmed:
- Liisa Kunnus
- Johannes Vatsfeldt
- Tanel Pääro
Meeskonna koduleht: Aida_alla
Retsensioonid
(Soon)
Meeskond Qwerty
Liikmed:
- Kristjan Kivisild
- Daniil Kulagin
- Andrei Tverskoi
Meeskonna koduleht: Meeskond:Qwerty
Retsensioonid
Meeskond iCook
Liikmed:
- Timmo Tõnts
- Triin Õige
- Ralf Sitska
Meeskonna koduleht: Meeskond:iCook
Retsensioonid
Meeskond Luxus
Liikmed:
- Anni Klammer
- Tõnis Suurkaev
- Sten Luhtoja
Meeskonna koduleht: Meeskond:Luksus
Retsensioonid
Meeskond Hubris
Liikmed:
- Sander Maasikamäe
- Allan Paalo
Meeskonna koduleht: Meeskond:Hubris
Retsensioonid
Meeskond Vertigo
Liikmed:
- Meri-Kris Jaama
- Liisi Kitsapea
- Teele Liblik (projektijuht)
- Tanel Peet
Meeskonna koduleht: Meeskond:Vertigo
Retsensioonid
Meeskond Pizzafy
Liikmed:
- Rene Mändel
- Mikk Pürg
- Argo Ind
- Arvo Paomees
Meeskonna koduleht: Meeskond:Pizzafy
Retsensioonid
-
Meeskond Gateway
Liikmed:
- Ilja Andrejev
- Silvia Bärlin
- Kaisa Järvpõld
Meeskonna koduleht: Meeskond:Gateway
Retsensioonid
Meeskond VariableMoods
Liikmed:
- Mihkel Künnapas
- Krister Kamla
- Berit Veidemann
Meeskonna ajaveeb: Meeskond:VariableMoods
Retsensioonid
Meeskond LustjaLillepidu
Liikmed:
- Madis Männik
- Jekaterina Jakimets
- Kristjan Tõnismäe
Meeskonna koduleht: Meeskond:LustjaLillepidu
Retsensioonid
Meeskond Viable
Liikmed:
- Kert Lillepea
- Kert Siiner
Meeskonna koduleht: Meeskond:Viable
Retsensioonid
Kaugeõppe meeskonnad
Meeskond RemindEm
Liikmed:
- Kait Vader
- Triin Soosalu
- Imre Padonik
- Mikk Visnap(projektijuht)
Meeskonna koduleht: Meeskond:RemindEm
Retsensioonid Retsensioonid meeskonnale RemindEm asuvad siin
Meeskond DreamTeam
Liikmed:
- Marju Niinemaa
- Martin Vohla
- Irina Doroš (projektijuht)
Meeskonna koduleht: DreamTeam project
Retsensioonid
Meeskond E-rent
Liikmed:
- Viivi Tammar
- Alex Kaska
- Vladimir Nitsenko
- Maarja Vesi (projektijuht)
Meeskonna koduleht: E-rent
Retsensioonid
Meeskond SimpleGeo
Liikmed:
- Toomas Juhkov
- Tiit Kuuskmäe
- Silver Lumi (projektijuht)
Meeskonna koduleht: SimpleGeo
Retsensioonid
Retsensioonid tekivad siia.
Logi
Logi peame blogis.
Meeskond CRM/WPF tehnoloogial
Liikmed:
- Andres Mets
- Robert Kullamaa
- Juri Nikitin
Meeskond EasyRent
Liikmed:
- Hardi Antsov
- Ahti Jõgi (projektijuht)
- Andres Kaljo
Meeskonna koduleht: Meeskond:EasyRent
Retsensioonid
Meeskond NimetuRühmitus
Liikmed:
- Ragne Auling
- Kaidi Parman
- Margit Ool (projektijuht)
Meeskonna koduleht: Meeskond:NimetuRühmitus
Retsensioonid
Meeskond DamageReport
Liikmed:
- Tiina Pukk
- Lea Tuberik (projektijuht)
- Ülari Kalamees
Meeskonna koduleht: DamageReport
Retsensioonid
Meeskond LifePlanner
Liikmed:
- Kaire Toom
- Alina Loitšenko
- Maria Andreitšuk(Projektijuht)
Meeskonna koduleht: LifePlanner
Retsensioonid
Meeskond DustBusters
Liikmed:
- Indrek Maask (projektijuht)
Meeskonna koduleht: DustBusters
Retsensioonid
Mõned näidistööd
NB! Õppejõud ei ole unustanud siia näiteid lisada, vaid varasemate aastate tööd on tudengid üldjoontes eemaldanud ning neile ei ole võimalik enam kätte saada. Proovin esimesel võimalusel siiski mõned näited leida, millest eeskuju võtta.