The C# Programming Language
ICS Acad. year 2018/2019 Summer semester 4 credits
Language of instruction
Subject specific learning outcomes and competences
Generic learning outcomes and competences
Why is the course taught
Prerequisite kwnowledge and skills
- 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.
- GAMMA, Erich. Design patterns: elements of reusable object-oriented software. Pearson Education India, 1995.
- BISHOP, J. (2007). C# 3.0 Design Patterns: Use the Power of C# 3.0 to Solve Real-World Problems. " O'Reilly Media, Inc.".
- ALBAHARI, Joseph; ALBAHARI, Ben.; C# 7.0 in a Nutshell: The Definitive Reference. O'Reilly Media, Inc., 2017.
Syllabus of lectures
- 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.
- 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.
- 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.
- At least 1 point of each project evaluation part
- Obtain at least 50% of the points from overall project evaluation
Course inclusion in study plans