õppeaine eesmärgid eesti k
Infosüsteemide arendamise alaste oskuste omandamine tasemel, kust on võimalik jätkata iseseisva õppimisega.
õppeaine eesmärgid inglise k
Acquiring the skills for information systems development at a level from where the students are able to continue with independent studies.
õppeaine õpiväljundid eesti k.
Kursuse läbinud üliõpilased.
1. omavad praktiliselt tunnetatud arusaamist tarkvaraarenduse kõikidest etappidest, nende etappide vajadustest ja etappidevahelistest seostest; tunnevad refaktoorimise, ühiktestimise, isedokumenteeruva, valideeritud ja evolutsioneeruva koodi mõisteid;
2. oskavad kavandada lihtsaid rakendusi;
3. oskavad lihtsaid rakendusi arendada;
4. teavad mis on refaktoorimine ja oskavad refaktoorimist rakendada puhta isedokumenteeruva koodi kirjutamisel;
5. teavad mis on testidel tuginev tarkvaraarendus ning oskavad ühikteste rakendada valideeritud ja evolutsioneeruva koodi kirjutamisel;
6. tunnevad personaalse tarkvaraprotsessi aluseid ja oskavad neid baastasemel ka rakendada.
õppeaine õpiväljundid ingl k.
After completing the course, the students:
1. have acquired the practical knowledge of all the software development stages, their needs and of the relationships between these stages; understand the concepts of refactoring, unit testing, self-documenting as well as validated and evolutionary code;
2. are able to design simple applications;
3. are able to implement simple applications;
4. know what refactoring is and are able to write clean and self-documented code using it;
5. know what Test Driven Development is and are able to write validated and evolutionary code using unit tests;
6. know what Personal Software process is and are able use this in software development.
õppeaine sisu lühikirjeldus eesti k
Kursuse käigus õpitakse infosüsteemide praktilist arendamist (nõuded, kavandamine, realiseerimine, testimine, dokumenteerimine, paigaldamine) kasutades integreeritud arenduskeskkonda (IDE) ning Extreme Programming, Test Driven Development, Quality First ja Clean Code metoodikaid.
Kursuse peamised teemad on:
1. IDE ja selle võimalused; versiooni haldus; infosüsteemide mitmetasemeline arhitektuur;
2. programmeerimise baasteadmised: keel ja selle elemendid (väljad, muutujad, meetodid, funktsioonid) ning konstruktsioonid (peamised andmetüübid, hargnemised, tsüklid);
3. objekt-orienteeritud programmeerimine (klassid, objektid, kapseldamine, pärlilikkus, polümorfism);
4. tarkvaratehnika (ühiktestid ja TDD, refaktoorimine, dokumenteerimine, tarkvara personaalne arendusprotsess, arendusmetoodika, tarkvara kvaliteet, Clean Code);
5. personaalse tarkvaraprotsessi alusteadmised ja oskused.
õppeaine sisu lühikirjeldus ingl k
The course deals with the practical development (requirements, design, implementation, testing, documentation and deployment) of information systems using an integrated development environment (IDE) and the Extreme Programming, Test Driven Development, Quality First and Clean Code development methodologies.
The main topics of the course are:
1. IDE and its basic options, version control, layered architecture of information systems;
2. Programming fundamentals: language and its elements (fields, variables, methods, functions) and constructs (main data types, branches, cycles);
3. Object-oriented programming principles (classes, objects, encapsulation, heredity, polymorphism);
4. Software engineering principles (unit tests and Test Driven Development, refactoring, documenting and self-documented code, software development process, software development methodologies, software quality, Clean Code);
5. Personal Software Process (PSP) principles and skills.
hindamisviis eesti k
eksam
Valdab käsitletavat materjali põhjalikult ja oskab seda iseseisvalt ka rakendada (hinne 5); vajab mõningast juhendamist ja suunamist (hinne 4); tunneb aines käsitletud materjali (hinne 3); enam vähem tunneb aines käsitletud materjali (hinne 2); omab mõningaid teadmisi aines käsitletud materjali kohta (hinne 1).
hindamisviis ingl k
exam
Has excellent knowledge of the covered material and knows how to apply it independently (excellent, 5); needs some minor guidance on how to apply their knowledge (very good, 4); has knowledge but is not able to apply it (good, 3); more or less knows the covered topics (satisfactory, 2); has some knowledge of the covered material (passed 1)
iseseisev töö eesti k
2* 16 tundi loenguid + 6*16 harjutustundi (sisaldab individuaalseid konsultatsioone) + 184 tundi iseseisvat (sisaldab projekti) tööd = 312 tundi
iseseisev töö ingl k
Lectures 2* 16 h + 6*16 h practical work (includes individual consultations) + 184 h independent work (includes an independent project) = 312 h
õppekirjandus
[1] Programming language textbook ( e.g., one from "Head First" series);
[2] Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship;
[3] K. Beck, Test-Driven Development: By Example;
[4] W.S.Humphrey, Introduction to the Personal Software Process
Additional textbooks
[5] A. Hunt & D.Thomas, The Pragmatic Programmer
[6] B. Myer, Touch o Class, Learning to Program Well with Objects and Contracts
õppevormid ja mahud
päevaõpe: nädalatunnid
8.0
sessioonõppe töömahud (semestris):