Курс "Програмування на C#"


Модулі курсу

  • Модуль 1

    Модуль 1 містить інформацію про базові конструкції мови програмування C# та основні принципи об’єктно-орієнтовного програмування.

  • Модуль 2

    Модуль 1 містить інформацію про роботу з класами та спеціалізованими типами даних для розробки програмного забезпечення на .NET.

  • Додаткові матеріали

    У даному розділі міститься інформація що потребує додаткової обробки, сортування або не підходить до жодного з попередніх розділів


Table of Contents

Передмова

Матеріли створені з метою компактного та зрозумілого викладення матеріалу з основ програмування на мові C#. Завдання та приклади орієнтовані на студентів, що мають середній рівень математичної підготовки і вміють розв’язувати задачі з алгебри, геометрії, логіки, а також курсів, що повязані із основами математичного моделювання (статистика, економетрика, економічна кібернетика, дослідження операцій тощо).

Викладений матеріал не претендує на повноту у описі можливостей мови програмування C#, проте, на думку автора, може стати базою для написання нескладних програм або фундаментом для подальшого поглиблення знань та умінь.

Зауваження, побажання та відгуки прошу надсилати на елетронну адресу yurakleban@gmail.com. Також додаткові матеріали та приклади програм, що використовуються у посібнику можна завантажити на сайті автора: http://kleban.page.


Опис навчальної дисципліни

Навчальна дисципліна спрямована на практичне застосування популярної концепції об’єктно-орієнтованого програмування і мови програмування C#. У процесі вивчення курсу «Програмування на C#» студенти ознайомлюються із базовими поняттями алгоритмізації, структурами даних та основами об’єктно-орієнтовного програмування.

Місце навчальної дисципліни у підготовці здобувачів: програмні результати дисципліни використовуються під час вивчення таких навчальних дисциплін: «Розробка ігрових додатків», «Об’єктно-орієнтоване програмування», «Технології колективної роботи над проектом». Закріплення на практиці здобутих програмних результатів відбувається під час проходження Навчальної практики з дисципліни «Програмування на C#».


Мета та завдання навчальної дисципліни

Мета навчальної дисципліни – формування у студентів теоретичних знань та практичних навичок використання алгоритмічного та об’єктно-орієнтованого програмування при розв’язанні задач на базі технології .NET та мови програмування C#.

Завдання навчальної дисципліни - розвинути та набути у здобувачів освіти такі компетентності:

загальні:

  • ЗК1 - здатність до абстрактного мислення, аналізу та синтезу, а саме виокремлення важливих властивостей об’єктів та їх опис засобами мови програмування;
  • ЗК2 - здатність застосувати знання у практичних ситуаціях, а саме використання навичок програмування для розв’язування обчислювальних задач, а також збору, зберігання, передачі інформації;
  • ЗК6 - здатність вчитися і оволодівати сучасними знаннями, а саме вміння самостійно опрацьовувати документацію з описом бібліотек, спеціальних програмних пакетів для подальшого застосування у розробці програм;
  • ЗК8 - здатність генерувати нові ідеї (креативність), а саме знаходити та покращувати існуючі підходи до розв’язання класичних та нових задач, що виникають під час написання програмного забезпечення;
  • ЗК9 - здатність працювати в команді, а саме спільна робота над проектами з використанням системи контролю версій git та інструментальних засобів управління проектною діяльністю (дошки, списки задач, bugtracker-и). спеціальні:
  • СК10 - здатність застосовувати методології, технології та інструментальні засоби для управління процесами життєвого циклу інформаційних і програмних систем, продуктів і сервісів інформаційних технологій відповідно до вимог замовника, а саме визначати вимоги до програмного забезпечення та способи імплементації потрібних рішень у вигляді готових рішень;
  • СК14 - здатність застосовувати методи та засоби забезпечення інформаційної безпеки, розробляти й експлуатувати спеціальне програмне забезпечення захисту інформаційних ресурсів об’єктів критичної інформаційної інфраструктури, а саме шифрування та кодування інформації, а також безпечна передача даних у мережі;
  • СК18 - здатність використовувати технології та патерни програмування для вирішення найбільш розповсюджених прикладних задач, модифікувати існуючі патерни для вирішення конкретної задачі при створенні програмної системи, а саме під час використання технологій WPF, ASP.NET, Blazor, Xamarin.

спеціальні:

  • СК10 - здатність застосовувати методології, технології та інструментальні засоби для управління процесами життєвого циклу інформаційних і програмних систем, продуктів і сервісів інформаційних технологій відповідно до вимог замовника, а саме визначати вимоги до програмного забезпечення та способи імплементації потрібних рішень у вигляді готових рішень;
  • СК14 - здатність застосовувати методи та засоби забезпечення інформаційної безпеки, розробляти й експлуатувати спеціальне програмне забезпечення захисту інформаційних ресурсів об’єктів критичної інформаційної інфраструктури, а саме шифрування та кодування інформації, а також безпечна передача даних у мережі;
  • СК18 - здатність використовувати технології та патерни програмування для вирішення найбільш розповсюджених прикладних задач, модифікувати існуючі патерни для вирішення конкретної задачі при створенні програмної системи, а саме під час використання технологій WPF, ASP.NET, Blazor, Xamarin.

Політики курсу

Відвідування лекційних та практичних занять є обов’язковим.

Дотримання термінів виконання завдань. Студенти зобов’язані дотримуватися термінів виконання завдань. Роботи не здані вчасно не будуть оцінюватися.

Визнання результатів неформальної освіти. Сертифікати про успішне завершення курсів, що відповідають навчальній програмі дисципліни та технологіям можуть бути враховані викладачем під час виставлення остаточного рейтингу студентів (див. розділ Безкоштовні відео-курси)

Особливості вивчення навчальної дисципліни за допомогою технологій дистанційного навчання. Усі матеріали курсу та результати оцінювання публікуються на https://moodle.oa.edu.ua.

Лекційні та практичні заняття відбуваються у змішаному режимі за допомогою комбінування взаємодії через Google Meet та спеціальну групу для комунікації у Telegram.

Дотримання принципів доброчесності. Викладач та слухач цього курсу, як очікується, повинні дотримуватися Кодексу академічної доброчесності університету:

  • будь-яка робота, подана здобувачем протягом курсу, має бути його власною роботою здобувача;
  • не вдаватися до кроків, що можуть нечесно покращити Ваші результати чи погіршити/покращити результати інших здобувачів;
  • якщо буде виявлено ознаки плагіату або іншої недобросовісної академічної поведінки, то студент буде позбавлений можливості отримати передбачені бали за завдання;
  • не публікувати у відкритому доступі відповіді на запитання, що використовуються в рамках курсу для оцінювання знань здобувачів;
  • під час фінальних видів контролю необхідно працювати самостійно;
  • не дозволяється говорити або обговорювати, а також не можна копіювати документи, використовувати електронні засоби отримання інформації.

Порушення академічної доброчесності під час виконання контрольних завдань призведе до втрати балів або вживання заходів, які передбачені Кодексу академічної доброчесності НаУОА.

Вимоги до програмного забезпечення

Під час вивчення курсу використовується операційна система Windows7/8/10/11.

У якості середовища розробки (IDE) може бути використано Visual Studio Community Edition, Visual Studio Code (Microsoft) або Rider (JetBrains).


Список рекомендованих джерел

Основна література

  1. Конспект лекцій з курсу “Програмування на C#” для студентів спеціальності економічна кібернетика та компютерні науки: https://kleban.page/courses/csharp-basics/
  2. Albahari, J., & Albahari, B. (2012). C# 5.0 in a Nutshell, Fifth Edition. 1005 Gravenstein Highway North, Sebastopol, USA: O’Reilly Media, Inc.
  3. Cardelli, L., & Wegner, P. (December 1985 p.). On Understanding Types, Data Abstraction, and Polymorphism. ACM Computing 1. Surveys, 17(4), сс. 149-154. Отримано з http://lucacardelli.name/Papers/OnUnderstanding.A4.pdf
  4. Kort, W. d. (2013). Exam Ref 70-483: Programming in C#. Sebastopol, California 95472: O’Reilly Media, Inc.
  5. Герберт Шилдт, C# 4.0: полное руководство. Пер. с англ. – М.: ООО «И.Д. Вильямс», 2016. – 1056 с.: ил.
  6. Кристиан Нейгел, Билл Ивьен, Джей Глинн, Карли Уотсон, Морган Скиннер, C# 4.0 и платформа .NET 4 для профессионалов. Пер. с англ. – М.: ООО «И.Д. Вильямс», 2010. – 1440 с.: ил.
  7. Троелсен Эндрю. Язык программирования С# 2008 и платформа .NET 3.5, 4-е изд.: Пер. с англ. – М.: ООО «И.Д. Вильямс», 2010. – 1344 с.: ил. – Парал. тит. англ.
  8. Architect Modern Web Applications with ASP.NET Core and Azure. E-book: https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/
  9. Walkthrough: Create and run unit tests for managed code. E-book: https://docs.microsoft.com/en-us/visualstudio/test/walkthrough-creating-and-running-unit-tests-for-managed-code?view=vs-2019

Додаткова література

  1. Билл Вагнер. Эффективное программирование на C#: 50 способов улучшения кода: Пер. с англ. – М.: ООО «И.Д. Вильямс», 2016 – 224 с.: ил.
  2. Джон Скит. C# для профессионалов: тонкости программирования, 3-е издание: Пер. с англ. – М.: ООО «И.Д. Вильямс», 2016 – 608 с.: ил.

Інформаційні ресурси в Інтернет

Довідники та документація

  1. C# Tutorial - https://www.tutorialspoint.com/csharp/.
  2. C# Guide - https://docs.microsoft.com/en-us/dotnet/csharp/.
  3. C# Station - https://csharp-station.com/.
  4. Working with C# - https://code.visualstudio.com/docs/languages/csharp.
  5. C# Tutorial for Beginners: Learn in 7 Day - https://www.guru99.com/c-sharp-tutorial.html.
  6. C# Tutorial - http://www.tutorialsteacher.com/csharp/csharp-tutorials.
  7. Полное руководство по C# - https://metanit.com/.
  8. MongoDB & C Sharp: CRUD Operations Tutorial - https://www.mongodb.com/developer/quickstart/csharp-crud-tutorial/.
  9. Quick Start: C# and MongoDB - Creating Documents - https://www.mongodb.com/blog/post/quick-start-c-sharp-and-mongodb--creating-documents.
  10. Common web application architectures - https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/common-web-application-architectures
  11. C# learning path. Microsoft Learn. https://docs.microsoft.com/en-us/learn

Безкоштовні відео-курси

  1. Основи програмування на C# (Prometheus) , https://edx.prometheus.org.ua/courses/Microsoft/CS201/2016_T1/info
  2. Introduction to C# (Edx), https://www.edx.org/course/introduction-to-c
  3. Object Oriented Programming in C# (Edx), https://www.edx.org/course/object-oriented-programming-in-c-0
  4. Algorithms and Data Structures in C# (Edx), https://www.edx.org/course/algorithms-and-data-structures-in-c-0
  5. Data Access in C# and .NET Core (Edx), https://www.edx.org/course/data-access-c-netcore
  6. Programming in C# Jump Start (MVA), https://mva.microsoft.com/en-US/training-courses/programming-in-c-jump-start-14254
  7. C# Fundamentals for Absolute Beginners (MVA), https://mva.microsoft.com/en-US/training-courses/c-fundamentals-for-absolute-beginners-16169
  8. A Guide to Object-Oriented Practices (MVA), https://mva.microsoft.com/en-US/training-courses/a-guide-to-objectoriented-practices-14329
  9. Object-Oriented Design (Coursera), https://www.coursera.org/learn/object-oriented-design

Джерела інформації з відкритими даними

  1. The EU Open Data Portal - http://data.europa.eu/euodp/en/data/
  2. Open Data on AWS - https://registry.opendata.aws/
  3. Єдиний державний веб-портал відкритих даних - https://data.gov.ua/
  4. Kaggle Datasets - https://www.kaggle.com/datasets
  5. KDNuggets datasets - https://www.kdnuggets.com/datasets/index.html
  6. UC Irvine Machine Learning Repository - http://mlr.cs.umass.edu/ml/
  7. Academic torrents - http://academictorrents.com/
  8. World Bank Open Data - https://data.worldbank.org/