course aims in Estonian
Infosüsteemide arendamise alaste oskuste omandamine tasemel, kust on võimalik jätkata iseseisva õppimisega.
course aims in English
Acquiring the skills for information systems development at a level from where the students are able to continue with independent studies.
learning outcomes in the course in Est.
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.
learning outcomes in the course in Eng.
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.
brief description of the course in Estonian
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.
brief description of the course in English
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.
type of assessment in Estonian
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).
type of assessment in English
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)
independent study in Estonian
2* 16 tundi loenguid + 6*16 harjutustundi (sisaldab individuaalseid konsultatsioone) + 184 tundi iseseisvat (sisaldab projekti) tööd = 312 tundi
independent study in English
Lectures 2* 16 h + 6*16 h practical work (includes individual consultations) + 184 h independent work (includes an independent project) = 312 h
study literature
[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
study forms and load
daytime study: weekly hours
8.0
session-based study work load (in a semester):