SubjectsSubjects(version: 945)
Course, academic year 2023/2024
   Login via CAS
Programming in C# Language - NPRX035
Title: Programování v jazyce C#
Guaranteed by: Student Affairs Department (32-STUD)
Faculty: Faculty of Mathematics and Physics
Actual: from 2020
Semester: winter
E-Credits: 6
Hours per week, examination: winter s.:2/2, C+Ex [HT]
Capacity: unlimited
Min. number of students: unlimited
4EU+: no
Virtual mobility / capacity: no
State of the course: taught
Language: Czech
Teaching methods: full-time
Teaching methods: full-time
Is provided by: NPRG035
Additional information: http://d3s.mff.cuni.cz/teaching/nprg035
Guarantor: Mgr. Pavel Ježek, Ph.D.
Class: Informatika Bc.
Informatika Mgr. - volitelný
Classification: Informatics > Programming
Pre-requisite : {NXXX022, NXXX023, NXXX024, NXXX025, NXXX030, NXXX031, NXXX033, NXXX065, NXXX018, NXXX014}
Co-requisite : NPRG031
Incompatibility : NPRG035
Interchangeability : NPRG035
Is incompatible with: NPRG035
Is interchangeable with: NPRG035
Annotation -
Last update: doc. RNDr. Petr Hnětynka, Ph.D. (30.04.2019)
The goal of the course is to give students a detailed knowledge and understanding of key principles of the .NET platform, the C# programming language and its advanced constructs. Successful completion of the course should allow students to effectively take advantage of the .NET platform potential. Course attendees are expected to have knowledge of object oriented and event driven programming and basic features of C# language as covered by the course "NPRG031 Programming 2".
Literature -
Last update: Mgr. Pavel Ježek, Ph.D. (04.09.2013)

Mark Michaelis, Eric Lippert: Essential C# 5.0, 4th Edition, Addison-Wesley Professional, 2012

Jeffrey Richter: CLR via C#, 4th Edition, Microsoft Press, 2012

Jon Skeet: C# in Depth, 3rd Edition, Manning Publications, 2013

Christian Nagel et al., Professional C# 2008, Wrox, 2008

Microsoft Developer Network Library, http://msdn.microsoft.com/library/

Zdrojové kódy knihoven platformy .NET, http://referencesource.microsoft.com/

Syllabus -
Last update: Tajemník Katedry (16.05.2012)

Compilation and execution differences between unmanaged (C++) and managed code (C#/.NET, Java).

Basic principles of JIT compilation, services provided by the CLR virtual machine, concepts of safe and unsafe code, overview of languages for .NET (C#, VB.NET, F#, C++/CLI, IronPython), pros and cons of development under the .NET platform.

Common .NET platform implementations: Microsoft .NET Framework, Mono.

Development tools, basics of performance measuring, code documentation and testing.

Value types vs. reference types (comparison to Java and C++ languages).

Memory allocations on managed heap, basic principles of Garbage Collection.

Classes and structs, interfaces, inheritance, virtual methods, (static) class constructors (comparison to Java and C++ languages).

Strings

Mutable vs. immutable types.

Generic types (comparison to generic types in Java and templates in C++).

Type variance (covariace and contravariance).

Extension methods, operator overloading, anonymous methods and lambda functions, iterator methods (comparison to C++).

Delegates and events.

Standard .NET libraries (streams, file access, collections, etc.).

Object finalization, advanced principles of Garbage Collection, basic principles of generational Garbage Collector.

 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html