Modern Methods of Programming (FSI-SR3)

Academic year 2018/2019
Supervisor: RNDr. Rudolf Hlavička, CSc.  
Supervising institute: ÚM all courses guaranted by this institute
Teaching language: Czech
Aims of the course unit:
The course objective is to make students familiar with the principles of application development for the Microsoft .NET Framework.
Learning outcomes and competences:
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.
Course contents:
Architecture of .NET Framework, CLR managed execution environment, C# language, Common Type System (CTS), .NET components (assemblies), Framework Class Library
Teaching methods and criteria:
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.
Controlled participation in lessons:
Attendance at lectures is recommended, attendance at seminars is required.
Type of course unit:
    Lecture  13 × 1 hrs. optionally                  
    Computer-assisted exercise  13 × 2 hrs. compulsory                  
Course curriculum:
    Lecture 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 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;
Literature - fundamental:
1. Joseph Albahari: C# 7.0 in a Nutshell: The Definitive Reference, O'Reilly Media 2017 ISBN: 1491987650 1090 stran
2. Joseph Albahari: C# 7.0 Pocket Reference: Instant Help for C# 7.0 Programmers, O'Reilly Media 2017 , ISBN: 1491988534, 234 stran
3. Anders Hejlsberg: The C# Programming Language, Addison-Wesley 2010 ISBN 0-321-74176-5, 704 stran
4. Karniadakis George, Robert Kirby: Parallel Scientific Computing in C++ and MPI, Cambridge University Press 2003, ISBN 0521520800, 630 stran
Literature - recommended:
1. Paul Deitel, Harvey Deitel: C# 6 for Programmers, Deitel & Associates 2016, ISBN: 0134596327, 768 stran
2. Joe Pitt-Francis, Jonathan Whiteley,: Guide to Scientific Computing in C++ Springer 2012, ISBN 978-1-4471-2736-9, 250 stran
The study programmes with the given course:
Programme Study form Branch Spec. Final classification   Course-unit credits     Obligation     Level     Year     Semester  
B3A-P full-time study B-MAI Mathematical Engineering -- GCr 4 Compulsory 1 2 S