Course detail
The C# Programming Language
FIT-ICSAcad. year: 2018/2019
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
Number of ECTS credits
Mode of study
Guarantor
Department
Learning outcomes of the course unit
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
Co-requisites
Planned learning activities and teaching methods
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 defense.
- Attendance on optional demo exercise will be awarded +2 points.
Exam prerequisites:
- At least 1 point of each project evaluation part
- Obtain at least 50% of the points from overall project evaluation
Course curriculum
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
- Team project 4-5 members in the Azure DevOps environment.
- The project is implemented using CleanCode and S.O.L.I.D. principles.
- The implementation consists of fully functional desktop application heading OOP principles with database persisted storage.
- In the case of forewarned complications students can ask for an extension of the deadline for any part of the project.
Recommended optional programme components
Prerequisites and corequisites
- recommended prerequisite
Introduction to Programming Systems
Basic literature
Recommended reading
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.
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.
Classification of course in study plans
Type of course unit
Project
Teacher / Lecturer
Seminar
Teacher / Lecturer
Syllabus
- Introduction to C# language and .NET platform, language syntax.
- Introduction to object-oriented programming and advanced programming constructs in C# - exceptions, events, delegates, lambda expressions, and generics.
- Base class library, and LINQ query (collections, XML, MSSQL).
- Database persistence with ORM Entity Framework and UnitOfWork and Repository design patterns.
- Clean Code, S.O.L.I.D. principles applied to C# examples.
- Model-View-ViewModel (MVVM) design pattern, and desktop application architecture.
- Introduction to Continous Integration in Visual Studio Team Services and application testing.
- Introduction to GUI based on Windows Presentation Foundation (WPF).
- Design patterns, behavioral, structural and creational - Gang of Four (GoF).
- WPF based on MVVM and data binding, components, and styles.
- Parallel and asynchronous programming with processes, threads, and tasks in C#.
- Multiplatform development with .NET Standard, .NET Core. Application containerization with Docker and orchestration with Kubernetes, Docker Swarm.
- Tools for memory management, performance profiling.