Course detail

Modern Methods of Programming

FSI-SR3CompulsoryBachelor's (1st cycle)Acad. year: 2016/2017Summer semester2. year of study4  credits

Architecture of .NET Framework, CLR managed execution environment, C# language, Common Type System (CTS), .NET components (assemblies), Framework Class Library

Learning outcomes of the course unit

The most important topics covered include: Architecture of .NET Framework, CLR managed execution environment, C# language, Common Type System (CTS), .NET components (assemblies), Framework Class Library. Also dealt with is working with XML, creating graphical user interface with Windows Forms.

Mode of delivery

90 % face-to-face, 10 % distance learning


Students are expected to be familiar with basic programming and have knowledge of basic object-oriented programming principles. No formal background in computer science is expected.


Not applicable.

Recommended optional programme components

Not applicable.

Recommended or required reading

Anders Hejlsberg: The C# Programming Language, Addison-Wesley 2010 ISBN 0-321-74176-5, 704 stran (EN)

Planned learning activities and teaching methods

The course is taught through lectures explaining the basic principles and theory of the discipline. Exercises are focused on practical topics presented in lectures.

Assesment methods and criteria linked to learning outcomes

Graded course-unit credit is awarded on the following conditions: 30% on weekly programming assignments, 70% on the individual project. Participation in the lessons may be reflected in the final mark.

Language of instruction


Work placements

Not applicable.


The course objective is to make students familiar with the principles of application development for the Microsoft .NET Framework.

Specification of controlled education, way of implementation and compensation for absences

There will be no programming assignments during the last weeks of the semester. Instead, students will work out their projects.

Type of course unit



13 hours, optionally

Teacher / Lecturer


1 .NET Framework Architecture
2. Common language Runtime (CLR); Common Language Specification (CLS); Language Integration;
3. Visual Studio .NET development environment
4. Introduction to C# language
5. Object-oriented concepts in .NET
6. Namespaces; Exceptions handling
7. Common type system
8. Delegates and events
9. Attributes
10. Arrays and collections
11. Working with strings; Regular expressions
12. Memory and resource management
13. Input/output; Working with XML; Serialization
14. Windows Forms

seminars in computer labs

26 hours, compulsory

Teacher / Lecturer


1. Intermediate Language (IL); .NET execution model
2. Primitive data types; Enumerations; Expressions; Statements
3. Control structures (if, for, while, do..while, foreach)
4. Visual Studio .NET development environment
5. Classes and interfaces; constructors, methods, fields, constants, access modifiers; Inheritance and polymorphism
6. Namespaces; Exceptions handling
7. System, object, equality, hash codes, cloning; Value types & reference types, boxing and unboxing; type conversions and casting
8. Delegates and multicast delegates; events
9. Using attributes; creating custom attributes
10. Arrays; jagged vs. multidimensional arrays; collections and enumerators; lists, dictionaries, hash tables, sorted lists
11. Strings, strings manipulation (StringBuilder), string formatting; Unicode, encodings, globalization and internationalization; regular expressions language
12. Managed heap and garbage collection; destructors and finalizers
13. Streams, readers/writers; files and directories; asynchronous input/output; Basic XML concepts; XML classes; DOM classes and XmlReader;
14. Windows Forms programming model, basic classes (Component, Control, ScrollableControl, ContainerControl); forms and dialogs; basic controls (Label, TextBox, Button); adding controls to forms; handling events;