Course detail

The C# Programming Language

FIT-ICSAcad. year: 2022/2023

C# language syntax. Object-orientation. The object model, objects, classes. Visual Studio. Debugger and profiler. Design patterns. Graphic user interfaces, WPF. Asynchronous programming with processes, threads, tasks. Data querying LINQ, ADO.NET. ORM mapping with Entity Framework.

Language of instruction

Czech

Number of ECTS credits

4

Mode of study

Not applicable.

Learning outcomes of the course unit

Students will learn how to apply modern programming approaches in .NET platform using C# language. After class completion, students will be ready to tackle real-world programming challenges with a new perspective based on object-oriented principles and to apply design patterns to architecture design. Working in a team simulates real work assignments, teaches students coordination and enforces the use of agile methodologies.  Main take offs are object-oriented workflows in C# and .NET platform, application of design patterns and utilization of persistence data providers.

Prerequisites

Basic knowledge of imperative programming (C language), algorithmization and source code versioning.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Not applicable.

Assesment methods and criteria linked to learning outcomes

  • Project evaluation is divided into three parts.
  • Each part will be evaluated separately and feedback given to students for further improvements in the following phases.
  • Phases are marked by 20, 30, 50 points.
  • Final project (the third phase) evaluation is an oral defence.

 

Course curriculum

Not applicable.

Work placements

Not applicable.

Aims

This class aims to teach students object-oriented programming and desktop application design principles in the C# language.

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

  • Team project 5 members in the Azure DevOps environment.
  • Implemented using CleanCode and S.O.L.I.D. principles.
  • The implementation consists of a fully functional desktop application heading OOP principles with database persisted storage.
  • In case of forewarned complications students can ask for an extension of the deadline for any part of the project.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Basic literature

Not applicable.

Recommended reading

ALBAHARI, Joseph; ALBAHARI, Ben.; C# 7.0 in a Nutshell: The Definitive Reference. O'Reilly Media, Inc., 2017.
ALBAHARI, Joseph; ALBAHARI, Ben.; C# 7.0 in a Nutshell: The Definitive Reference. O'Reilly Media, Inc., 2017.
BISHOP, J. (2007). C# 3.0 Design Patterns: Use the Power of C# 3.0 to Solve Real-World Problems. " O'Reilly Media, Inc.".
BISHOP, J. (2007). C# 3.0 Design Patterns: Use the Power of C# 3.0 to Solve Real-World Problems. " O'Reilly Media, Inc.".
GAMMA, Erich. Design patterns: elements of reusable object-oriented software. Pearson Education India, 1995.
GAMMA, Erich. Design patterns: elements of reusable object-oriented software. Pearson Education India, 1995.
MARTIN, R. C., & MARTIN, M. (2006). Agile principles, patterns, and practices in C. Pearson Education.
MARTIN, Robert C. Clean code: a handbook of agile software craftsmanship. Pearson Education, 2009.

Elearning

Classification of course in study plans

  • Programme BIT Bachelor's 2 year of study, summer semester, compulsory-optional
  • Programme BIT Bachelor's 2 year of study, summer semester, compulsory-optional

  • Programme IT-BC-3 Bachelor's

    branch BIT , 2 year of study, summer semester, compulsory-optional

  • Programme VUB Bachelor's

    branch VU-D , 2 year of study, summer semester, elective
    branch VU-IDT , 2 year of study, summer semester, elective
    branch VU-VT , 2 year of study, summer semester, elective
    branch VU-VT , 2 year of study, summer semester, elective
    branch VU-VT , 2 year of study, summer semester, elective
    branch VU-VT , 2 year of study, summer semester, elective
    branch VU-IDT , 2 year of study, summer semester, elective
    branch VU-IDT , 2 year of study, summer semester, elective
    branch VU-IDT , 2 year of study, summer semester, elective
    branch VU-IDT , 2 year of study, summer semester, elective
    branch VU-VT , 2 year of study, summer semester, elective
    branch VU-D , 2 year of study, summer semester, elective
    branch VU-VT , 2 year of study, summer semester, elective
    branch VU-IDT , 2 year of study, summer semester, elective
    branch VU-D , 2 year of study, summer semester, elective
    branch VU-IDT , 2 year of study, summer semester, elective

Type of course unit

 

Seminar

26 hod., optionally

Teacher / Lecturer

Syllabus

  1. Introduction to C# language and .NET platform, language syntax.
  2. Introduction to object-oriented programming and advanced programming constructs in C# - exceptions, events, delegates, lambda expressions, and generics.
  3. Base class library, and LINQ query (collections, XML, MSSQL). (Ing. Tibor Jašek, MSP)
  4. Database persistence with ORM Entity Framework and UnitOfWork and Repository design patterns.
  5. Clean Code, S.O.L.I.D. principles applied to C# examples. (Martin Dybal, Microsoft MVP)
  6. Model-View-ViewModel (MVVM) design pattern, and desktop application architecture. (Bc. Michal Mrnuštík, MSP)
  7. Introduction to Continous Integration in Visual Studio Team Services and application testing. (Ing. Jiří Pokorný, Solarwinds)
  8. Introduction to GUI based on Windows Presentation Foundation (WPF).
  9. Design patterns, behavioural, structural and creational - Gang of Four (GoF). (Martin Dybal, Microsoft MVP)
  10. WPF based on MVVM and data binding, components, and styles. (Ing. Roman Jašek, Microsoft MVP)
  11. Tools for memory management, performance profiling.
  12. Parallel and asynchronous programming with processes, threads, and tasks in C#.
  13. Multiplatform development with .NET Standard, .NET Core. Application containerization with Docker and orchestration with Kubernetes, Docker Swarm.

Elearning