Course code InfT4037

Credit points 3

Advanced Programming

Total Hours in Course81

Number of hours for lectures16

Number of hours for laboratory classes16

Independent study hours49

Date of course confirmation17.11.2022

Responsible UnitInstitute of Computer Systems and Data Science

Course developer

author lect.

Ingus Šmits

Mg. sc. ing.

Prior knowledge

DatZ1009, Introduction to Programming I

DatZ1010, Introduction to Programming II

InfT2033, Windows Programming

Course abstract

The aim of the study course is to introduce students to modern programming technologies. In the practical part of the course, students acquire skills in using queries included in the programming language, saving object state information, using parallel control flows, working with tasks and asynchronous functions.

Learning outcomes and their assessment

As a result of the study course students:
• know about computer program creation methods and technologies (tests, exam);
• know how to code and debug programs, use good programming style, implement user interfaces, apply design schemes and diagrams, measure software performance (practical tasks, control tasks);
• able to independently code and debug programs for performing simple calculations and data processing tasks, implement user interfaces using database management systems, parallel programming principles, technologies for developing mobile and feature-rich Web applications (tests, exam).

Course Content(Calendar)

1. Generic classes (2h)
2. C# language extensions (2h)
3. C# interfaces and their use cases(2h)
4. Delegates (2h)
5. Regular expressions (2h)
6. Parallel programming (2h)
7. Class Thread (2h)
8. Synchronization (Join, Sleep, AutoResetEvent, ManualResetEvent) (2h)
9. Synchronization (CountDownEvent, Mutex, Lock) (4h)
10. Class Task and asynchronous programming (4h)
11. Preservation of object state information (2h)
12. Lambda expressions (2h)
13. Language Integrated Query (LINQ) (2h)
14. Course overview (2h)

Requirements for awarding credit points

All practical work and the exam task must be completed and defended. Only works with a score of 4 or more points are considered defended.

Description of the organization and tasks of students’ independent work

During the semester, the student must complete the practical work using the assignment descriptions and in consultation with the supervisor of the laboratory work and the lecturer.

Criteria for Evaluating Learning Outcomes

The exam grade is formed as an accumulative assessment from two parts - the assessment of practical work and tests (40%), the assessment of the exam task (60%).

Compulsory reading

1. Threading in C#, Joseph Albahari [tiešsasite]. Pieejams:
2. Lee G. Modern Programming: Object Oriented Programming and Best Practices: Deconstruct Object-oriented Programming and Use It with Other Programming Paradigms to Build Applications. Packt Publishing, 2019. 249 p. Pieejams: EBSCO e-book academic collection datubāzē
3. C# Tutorial [tiešsasite]. Pieejams:
4. Posadas M. Mastering C# and .NET Framework. Birmingham: Packt Publishing, 2016. Pieejams: EBSCO e-book academic collection

Further reading

1. Improving Your C# Skills: Solve Modern Challenges with Functional Programming and Test-driven Techniques of C#. O. M. A. Khan, J. Callaway, C. Hunt, R. Stephens. Birmingham: Packt Publishing, 2019. 589 p.
2. Angorro W. Functional C#. Birmingham, UK: Packt Publishing, 2017. 365 p. EBSCO e-book academic collection datubāzē
3. .NET Documentation [tiešsaiste]. Pieejams:


ITF professional education bachelor study program “Information Technologies for Sustainable Development”.