Course detail

Modern Methods of Programming

FSI-SR3Acad. year: 2018/2019

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

Language of instruction

Czech

Number of ECTS credits

4

Mode of study

Not applicable.

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.

Prerequisites

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.

Co-requisites

Not applicable.

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.

Course curriculum

Not applicable.

Work placements

Not applicable.

Aims

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

Attendance at lectures is recommended, attendance at seminars is required.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Anders Hejlsberg: The C# Programming Language, Addison-Wesley 2010 ISBN 0-321-74176-5, 704 stran (EN)
Joseph Albahari: C# 7.0 in a Nutshell: The Definitive Reference, O'Reilly Media 2017 ISBN: 1491987650 1090 stran (EN)
Joseph Albahari: C# 7.0 Pocket Reference: Instant Help for C# 7.0 Programmers, O'Reilly Media 2017 , ISBN: 1491988534, 234 stran (EN)
Karniadakis George, Robert Kirby: Parallel Scientific Computing in C++ and MPI, Cambridge University Press 2003, ISBN 0521520800, 630 stran (EN)

Recommended reading

Joe Pitt-Francis, Jonathan Whiteley,: Guide to Scientific Computing in C++ Springer 2012, ISBN 978-1-4471-2736-9, 250 stran
Paul Deitel, Harvey Deitel: C# 6 for Programmers, Deitel & Associates 2016, ISBN: 0134596327, 768 stran (EN)

Classification of course in study plans

  • Programme B3A-P Bachelor's

    branch B-MAI , 2 year of study, summer semester, compulsory

Type of course unit

 

Lecture

13 hod., optionally

Teacher / Lecturer

Syllabus

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

Computer-assisted exercise

26 hod., compulsory

Teacher / Lecturer

Syllabus

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;