Juhend: Kodutöö aines "Programmeerimine CSharp keeles" (2014)

From ICO wiki
Jump to navigationJump to search

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

Tere, iga aja taha kirjutada meeskonna nimi, kes tuleb oma tööd kaitsma. Aegu palun täita võimaluse korral järjest.

Ideaalne esitlus, sisaldab endas ka powerpointi, kus on

  • väljatoodud meeskonna nimi ja liikmed
  • idee
  • realiseerimine
  • mis oli keerukas?
  • mida uut õpiti?
  • mõnede keerulisemate probleemide lahendamine
  • meeskonnaliikmete panus

Kaitsmise käigus vaadatakse üle ka kood.

Esmaspäev

  • 16:00
  • 16:15
  • 16:30
  • 16:45
  • 17:00
  • 17:15
  • 17:30

Neljapäev

  • 08:15 - VariableMoods
  • 08:30
  • 08:45 - Error404
  • 09:00
  • 09:15
  • 09:30 -

--

  • 10:00 - Viable
  • 10:15 - Pizzafy
  • 10:30 - Lillelapsed
  • 10:45 - iCook
  • 11:00 - Hubris
  • 11:15 - Raggakana

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

Analüüsi retsensioon meeskonnale SuperPenguin asub siin

Prototüübi retsensioon meeskonnale SuperPenguin asub siin

Meeskond Lillelapsed

Liikmed:

  • Rene Ott
  • Alari Talvar
  • Villu Viirsalu
  • Daniil Slobodin

Meeskonna koduleht: Meeskond:Lillelapsed

Retsensioonid

  1. Analüüsi retsensioon meeskonnale Qwerty asub siin
  2. Prototüübi retsensioon meeskonnale DropDead asub siin

Meeskond SuperPenguin

Liikmed:

  • Tauri Busch
  • Erika Ehmann

Meeskonna koduleht: Meeskond:SuperPenguin

Retsensioonid

Prototüübi retsensioon Raggakanale asub siin

Meeskond Raggakana

Liikmed:

  • Aap Kaur Suvi
  • Indrek Jõgi
  • Murdho Savila
  • Sandra Niinepuu

Meeskonna koduleht: Meeskond:Raggakana

Retsensioonid

Analüüsi retsensioon meeskonnale Hubris asub siin

Prototüübi retsensioon meeskonnale VariableMoods asub siin

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

Retsensioonid

Analüüsi retsensioon meeskonnale Pizzafy asub siin

Meeskond Taandarendajad

Liikmed:

  • Priit Üksküla
  • Meelis Talvis
  • Kaido Henrik Elias

Meeskonna koduleht: Meeskond:Taandarendajad

Retsensioonid

Meeskonna Taandarendajad retsensioonid asuvad siin

Meie tehtud analüüsi retsensioon Meeskonnale Pizzafy asub siin

Meie tehtud prototüübi retsensioon Meeskonnale LustJaLillepidu asub siin

Prototüüp

Meie prototüüp asub meeskonna wikis: otselink

Meeskond DropDead

Liikmed:

  • Urmas Hoogma

Meeskonna koduleht: Meeskond:DropDead

Retsensioonid

  1. Analüüsi retsensioon meeskonnalt Drop Dead meeskonnale Aida alla
  2. Prototüübi retsensioon meeskonnalt Drop Dead meeskonnale Vertigo

Meeskond Error404

Liikmed:

  • Mihkel Kivisild - projektijuht
  • Andre Kaur
  • Priidik Soon
  • Tiit Tallermaa

Meeskonna koduleht: Meeskond:Error404

Retsensioonid

  • Meeskonna Error404 retsensioon meeskond LustjaLillepidu analüüsi kohta asub siin (7.11.2014)

Meeskond Aida alla

Liikmed:

  • Johannes Vatsfeldt
  • Tanel Pääro

Meeskonna koduleht: Meeskond Aida alla
Prototüüp: → Aida alla prototüüp

1. Analüüsi retsensioon meeskonnale VariableMoods
2. Prototüübi retsensioon meeskonnale VariableMoods

Meeskond Qwerty

Liikmed:

  • Kristjan Kivisild
  • Daniil Kulagin
  • Andrei Tverskoi (Projekti juht)

Meeskonna koduleht: Meeskond:Qwerty

Retsensioonid
Analüüsi retsensioon meeskonnale BoxMania asub siin
Prototüübi retsensioon meeskonnale SuperPenguin asub siin

Meeskond iCook

Liikmed:

  • Timmo Tõnts
  • Triin Õige
  • Ralf Sitska

Meeskonna koduleht: Meeskond:iCook

Retsensioonid

Analüüsi retsensioon meeskonnale Vertigo asub siin

Prototüübi retsensioon meeskonnale Viable asub siin siin

Meeskond Luxus

Liikmed:

  • Anni Klammer
  • Tõnis Suurkaev
  • Sten Luhtoja

Meeskonna koduleht: Meeskond:Luksus

Retsensioonid

Meeskonna Luxus retsensioonid asuvad siin

Meie tehtud retsensioon meeskonnale MinuRaamat asub siin

Meeskond Hubris

Liikmed:

  • Sander Maasikamäe
  • Allan Paalo
  • Madis Rääk

Meeskonna koduleht: Meeskond:Hubris

Retsensioonid

Meeskond Vertigo

Liikmed:

  • Meri-Kris Jaama
  • Liisi Kitsapea
  • Teele Liblik (projektijuht)
  • Tanel Peet

Meeskonna koduleht: Meeskond:Vertigo

Prototüüp: Meeskond:Vertigo#Prototüüp

Retsensioonid

Analüüsi retensioon meeskonnale Meeskond:Luksus asub siin

Prototüübi retsensioon meeskonnale Meeskond:VariableMoods asub siin

Meeskond Pizzafy

Liikmed:

  • Rene Mändel
  • Mikk Pürg
  • Argo Ind
  • Arvo Paomees

Meeskonna koduleht: Meeskond:Pizzafy

Retsensioonid

Analüüsi retsensioon meeskonnale iCook asub siin

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

Prototüüp: Meeskond:VariableMoods#Prototüüp

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

Meeskond MinuRaamat

Liikmed:

  • Erkko Kebbinau


Meeskonna koduleht: Meeskond:MinuRaamat

Retsensioonid

Analüüsi retsensioon meeskonnale Vertigo asub siin

Meeskond Projekt1

Liikmed:

  • Oliver Vahenõmm

Meeskonna koduleht: Meeskond:Projekt1


Meeskond Me&MyWorkout

Liikmed:

  • Triin Oja
  • Johanna Kammiste
  • Julia Kraam


Meeskonna koduleht: Meeskond:Me&MyWorkout

Retsensioonid

Analüüsi retsensioon meeskonnale Viable asub siin


Meeskond Tyhjus

Liikmed:

  • Talis Tammearu

Meeskonna koduleht: Meeskond:Tyhjus

Kaugeõppe meeskonnad

Meeskond DigiRiiul

Liikmed:

  • Jaan Elken
  • Martin Orgusaar
  • Henri Põld
  • Morris Mänd
  • Riho Uusjärv

Meeskonna koduleht: Meeskond "DigiRiiul"

Retsensioonid tekivad siia:

Meeskond RemindEm

Liikmed:

  • Kait Vader
  • Triin Soosalu
  • Imre Padonik
  • Mikk Visnap(projektijuht)

Meeskonna koduleht: Meeskond:RemindEm

Retsensioonid

Meie meeskonnale kirjutatud retsentsioonid asuvad siin

Meie poolt kirjutatud retsensioonid

Analüüsi retsentsioon meeskonnale SimpleGeo asub siin


Prototüüp

Projekti prototüübile leiab lingi meie meeskonna lehelt siin.

Meeskond DreamTeam

Liikmed:

  • Marju Niinemaa
  • Martin Vohla
  • Irina Doroš (projektijuht)

Meeskonna koduleht: DreamTeam project

Retsensioonid

Analüüsi retsensioon meeskonnale DreamTeam asub siin

Meeskond E-rent

Liikmed:

  • Viivi Tammar
  • Alex Kaska
  • Vladimir Nitsenko
  • Maarja Vesi (projektijuht)

Meeskonna koduleht: E-rent

Retsensioonid

Analüüsi retsensioon meeskonnale E-Rent asub siin

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

Meeskonna koduleht: Meeskond:CRM/WPF tehnoloogial
Prototüüp:link prototüübile

Retsensioonid

Prototüübi retsensioon meeskonnale CRM/WPF tehnoloogial asub siin

Meeskond EasyRent

Liikmed:

  • Hardi Antsov
  • Ahti Jõgi (projektijuht)
  • Andres Kaljo

Meeskonna koduleht: Meeskond:EasyRent

Meeskond retsenseeris NimetuRühmitus analüüsi

Retsensioonid

Analüüsi retsensioon meeskonnale EasyRent asub siin

Meeskond NimetuRühmitus

Liikmed:

  • Kaidi Parman
  • Margit Ool (projektijuht)
  • Kalmer Kallas

Meeskonna koduleht: Meeskond:NimetuRühmitus

Analüüsi retsensioon meeskonnale Error404 asub siin

Retsensioonid

Analüüsi retsensioon meeskonnale NimetuRühmitus asub siin

Meeskond DamageReport

Liikmed:

  • Tiina Pukk
  • Lea Tuberik (projektijuht)
  • Ülari Kalamees

Meeskonna koduleht: DamageReport

Retsensioonid

Analüüsi retsensioon meeskonnale DamageReport asub siin

Meeskond LifePlanner

Liikmed:

  • Kaire Toom
  • Alina Loitšenko
  • Maria Andreitšuk(Projektijuht)

Meeskonna koduleht: LifePlanner

Retsensioonid

Retsensioonid meeskonnale LifePlanner asuvad siin

Meeskond DustBusters

Liikmed:

  • Indrek Maask (projektijuht)

Meeskonna koduleht: DustBusters

Retsensioonid

Meeskond ATeam

Liikmed:

  • Aleksander Semjonov

Meeskonna koduleht: ATeam

Retsensioonid

Meeskond:NimetuRühmitus (Laenaja abimees): NimetuRühmitus

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.