Fundamentals of Programming
BASIC DATA
course listing
A - main register
course code
ICS0004
course title in Estonian
Programmeerimise alused
course title in English
Fundamentals of Programming
course volume CP
-
ECTS credits
6.00
to be declared
yes
assessment form
Examination
teaching semester
autumn
language of instruction
Estonian
English
The course is a prerequisite
Algorithms and Data Structures (I707)
Algorithms and Data Structures (ICS0005)
Automated Testing (ICS0024)
Fundamentals of Ruby (ICS0013)
Study programmes that contain the course
code of the study programme version
course compulsory
IVSB17/21
yes
IVSB17/25
yes
Structural units teaching the course
IC - IT College
Course description link
Timetable link
View the timetable
Version:
VERSION SPECIFIC DATA
course aims in Estonian
- Tutvustada tarkvara arendamisega seotud põhilisi mõisteid, töövahendeid ja probleeme.
- Õpetada algoritmide koostamise ja programmikoodi kirjutamise aluseid C-keele baasil.
- Harjutamise kaudu omandavad üliõpilased teatud praktlise programmeerimise oskuse.
course aims in English
- Introduce the software development terms, tools and problems.
- Teach the basics of design of algorithms and their implementation using the C programming language.
- Throw practice the students acquire some practical experience in programming.
learning outcomes in the course in Est.
Kursuse lõpetanu:
- tunneb programmeerimisega soetud termineid;
- teab kuidas arvuti salvestab informatsiooni ja täidab programmi;
- teab C-keele põhilisi reegleid;
- oskab praktiliselt koostada lihtsamaid C-keelseid programme alates algoritmi koostamisest kuni koodi veavabaks silumiseni;
- omab ettekujutust kaasaegse tarkvara arendusega seotud probleemidest ja töövahenditest.
learning outcomes in the course in Eng.
After successfully completing this course the student:
- knows the software development terms;
- knows how a computer is operating and storing information;
- knows the main rules of C programming;
- is able to write simple programs in C starting from designing the algorithm and ending with debugging and testing the code;
- is informed about modern software development tools and problems.
brief description of the course in Estonian
- Programmeerimise algmõisted: algoritm, voogdiagramm, lähtekood, kompilaator, linkur, teek, mälu ja andmete salvestamine, positsioonilised arvusüsteemid, ASCII tabel, protsessor, registrid, jne.
- C-keele alused: koodi kirjutamise üldised reeglid, funktsioon, andmetüübid, muutujate deklareerimine, lihtsamad andmete sisestamise ja väljastamise vahendid, konstandid, aritmeetikatehted, võrdlustehted, loogikatehted, massiivid, valikulaused if ja if else, korduslaused while ja for, tsükli katkestus break, eelprotsessor.
- C-keel süvendatumalt: avaldised eritüübiliste operandidega, tüübi pööramine, tehete järjekord, inkrement, valikulause switch, märgendid, korduslause do while, suunamislaused continue ja goto, muutujate nähtavus ja eluiga, static muutujad ja funktsioonid.
- Viidad: viida tähendus, dünaamiline mälujaotus, viitade aritmeetika, viitade kasutamine, stringid ja operatsioonid nendega.
- Lühiülevaade C-keele täiendavatest võimalustest: struct kirjed, töö failidega jt.
- Tarkvara arenduse tänapäevased meetodid ja probleemid: tarkvara elutsükkel, struktuuriline ja objekt-orienteeritud projekteerimine, enimkasutatud programmeerimiskeeled C++, C#, Python ning Java. .NET keskkond ja virtuaalne masin. Versioonide haldamine. Testimine ja selle tähtsus.
brief description of the course in English
- Basic terms: algorithm, flowchart, source code, compiler, linker, library, memory, data storing, numeral systems, ASCII table, processor, registers, etc.
- C programming basics: general rules for code writing; functions; data types; declaration of variables; simple input and output; constants; arithmetical, logical and relational operators; arrays; branching statements (if and if else); looping statements (while, for and break); preprocessor.
- Deeping into C-programming: expressions with operands of different types; casting; precedence of operators; incrementing; multiple choice statement (switch); labels and jump statements (goto and continue); variables visibility and lifetime; static variables and functions.
- Pointers: what they are, their usage, operations with pointers, dynamical memory allocation, tools for text processing.
- Further look into C: short overview about records (struct); file handling, etc.
- Modern tools and problems of software development: software life cycle; structured and object oriented design; most used programming languages C++, C#, Python, Java; virtual machine and .NET environment; version control; testing and its importance.
type of assessment in Estonian
Eksamieeldusi ja eraldi kontrolltöid ei ole. Praktiline programmide koostamine toimub arvutiklassis pärast iga teema läbivõtmist, kuid ilma eraldi hindamiseta. Eksamil tuleb 4 tunni jooksul etteantud spetsifikatsiooni põhjal koostada algoritm ning sellele vastav C-keelne kood ja testida saadud programm.
type of assessment in English
There are neither prerequisites for examination nor evaluated tests during the lessons. There are programming exercises in the classroom after finishing each topic but they are not assessed. At the examination each student gets a specification presenting a problem and has to design the algorithm and implement it in C programming language.
independent study in Estonian
Koduseid töid eraldis ei ole, kuid need, kes ei jõua harjutusi arvutiklassis lõpetada või ei osale tunnis, peavad need lõpetama / tegema kodus.
independent study in English
There are no homework but the students who were not able to finish the exercices in the classroom or did not attend the lesson should finish / perform them at home.
study literature
All the textbooks dealing with programming in C (or even C++) for beginners are applicable but the must not be older than 15 years. The slides used in lectures (http://www.tud.ttu.ee/im/Viktor.Leppikson/) cover all the topics.
study forms and load
daytime study: weekly hours
4.0
session-based study work load (in a semester):
lectures
2.0
lectures
-
practices
2.0
practices
-
exercises
0.0
exercises
-
lecturer in charge
-
LECTURER SYLLABUS INFO
semester of studies
teaching lecturer / unit
language of instruction
Extended syllabus or link to Moodle or to home page
2025/2026 autumn
Anna Kyselova, IC - IT College
English
    display more
    2024/2025 autumn
    Anna Kyselova, IC - IT College
    English
      2023/2024 autumn
      Viktor Leppikson, IA - Department of Computer Systems
      English
        2022/2023 autumn
        Viktor Leppikson, IA - Department of Computer Systems
        English
          2021/2022 autumn
          Viktor Leppikson, IA - Department of Computer Systems
          English
            ICS0004_assessment_criteria.pdf 
            2020/2021 autumn
            Viktor Leppikson, IA - Department of Computer Systems
            English
              ICS0004_assessment_criteria.pdf 
              2019/2020 autumn
              Viktor Leppikson, IA - Department of Computer Systems
              English
                ICS0004_assessment_criteria.pdf 
                Course description in Estonian
                Course description in English