Course code 07 67 5030 17
ECTS credits 3
Course title in the language of instruction
Programming Technologies
Course title in Polish Programming Technologies (Technologie programowania)
Course title in English
Programming Technologies
Language of instruction English
Course level first-cycle programme
Course coordinator dr inż. Mariusz Postół, dr inż. Dariusz Puchała
Course instructors
Delivery methods and course duration
Lecture Tutorials Laboratory Project Seminar Other Total of teaching hours during semester
Contact hours 15 30 0 45
E-learning No No No No No No
Assessment criteria (weightage) 0.00 0.00 0.00
Course objective
  1. Allow students to become familiar with the syntax of C# programming language and the structure of .NET Framework together with the basics of applications development process using a dedicated programming environment.
  2. Allow students to become familiar with known software design patterns and their practical implementations in .NET Framework.
  3. Allow students to acquire practical software development skills for .NET Framework while using the Visual Studio development environment.
Learning outcomes
  1. Student knows and understands the structure of the .NET platform.
  2. Student knows syntax and basic programming concepts related to C# programming language.
  3. Student knows how to implement basic object-oriented programming paradigms in C#.
  4. Student has practical skills in using the Visual Studio development environment.
  5. Student has a practical ability to create applications in C# and .NET platform using object-oriented paradigms.
  6. Student can use the technical documentation of the .NET platform to search for the necessary information.
  7. Student has the ability to create technical reports describing his or her own solutions and also has the ability to work in a team.
Assessment methods
Effects 1, 2, 3 - evaluated during lecture test.
Effects 4, 5, 6, 7 - oral presentation of created application, interview with the student, final report of the project.

One lecture test. Laboratory assessment based on the evaluation of the project. The final score is calculated as a weighted average of lecture and laboratories notes with weights: 1/3 and 2/3.
Prerequisites
Fundamentals of Programming, Object Oriented Programming.
Course content with delivery methods
Lecture contents.
1. Introduction to Microsoft .NET Framework technology. The vision and components of the .NET platform. Getting familiar with syntax and basic C# constructs on the example of the simplest console application. Getting familiar with the Visual Studio development environment.
2. Data types and variables declarations in C#. Type conversions. Naming conventions and restrictions. Basic programming constructs: operators (comparison, arithmetic, logic, bit, assignment, etc.), conditional statements (if, else if, switch), loops (while, do-while, for, break, continue). Memory management (Garbage Collector).
3. Classes in C #. Mutable and immutable, implicit and anonymous types. Methods, static methods, constructor, destructor. Features of C # classes (sealed, partial, abstract, virtual). Basic elements of object-oriented programming (polymorphism, encapsulation, class inheritance, etc.). Properties. Indexers.
4. Delegates and events. Creating and using delegates. Anonymous methods.
5. Arrays and collections. Declaration and initialization of arrays. Multidimensional arrays. Methods of indexing arrays. Stacks, queues and dictionaries.
6. Exception handling in C#.
7. Elements of multithread programming. Thread synchronization (lock, monitor).
8. Selected .NET libraries (WinForms, WPF).

Laboratories.
As part of the laboratory classes, students working in the teams carry out project tasks concerning the course contents.
Basic reference materials
  1. Ch. Nagel, Professional C# 6 and .NET Core 1.0, 2016.
  2. M. Michaelis, E. Lippert, Essential C# 6.0, 2015.
  3. J. Hilyard, S. Teilhet, C# 6.0 Cookbook, 2015.
  4. Microsoft documentation (https://docs.microsoft.com/en-us/dotnet/articles/csharp/csharp).
Other reference materials
  1. J. Albahari, B. Albahari, C# 6.0 in a Nutshell, 2015.
  2. A. Esposito, M. Ciceri, Reactive Programming for .NET Developers, 2016.
  3. J. Visser, S. Rigal, R. van der Leek, Building Maintanable software, 2016.
Average student workload outside classroom
6
Comments
Last update