2019/2020
Введение в программирование
Статус:
Дисциплина общефакультетского пула
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
1, 2 модуль
Язык:
русский
Кредиты:
3
Контактные часы:
48
Программа дисциплины
Аннотация
Дисциплина сфокусирована на Обеспечить студентов базовыми знаниями по информатике, алгоритмизации и программированию знакомстве студентов с основами алгоритмизации и программирования для последующих курсов, связанных с программированием. Высокая практическая ориентация программы нацелена на прививание студентам навыки исследовательской работы, предполагающей самостоятельное изучение специфических инструментов и средств, необходимых для решения именно той конкретной проблемы, которая в качестве задачи поставлена перед ним
Цель освоения дисциплины
- обеспечение студентов базовыми знаниями по информатике, алгоритмизации и про-граммированию;
- формирования навыков в основах для последующих курсов, связанных с програм-мированием;
- • формирование у студентов базовых навыков исследовательской работы, предпола-гающей самостоятельное изучение специфических инструментов и средств, необхо-димых для решения именно той конкретной проблемы, которая в качестве задачи поставлена перед ним;
Планируемые результаты обучения
- Различает основные алгоритмические конструкции.
- Способен реализовать некоторые последовательности и списки
- Знает особенности основных АТД
- Знаком с концепцией абстрактного типа данных
- Различает виды ассоциативных связей между классами
- Понимает отношение наследования и умеет реализовывать его средствами C#
- Знает основные виды отношений между классами и объектами в ООП
- Способен реализовывать независимые классы на языке программирования C#
- Понимает особенности полиморфизма в ООП
- Понимает особенности объектовой инкапсуляции
- Знаком с понятиями класса и объекта
- Способен представлить матрицы многомерными массивами и массивами массивов на языке C#
- Различает многомерные и зубчатые массивы в языке C#
- Знаком с математическим понятием матрицы
- Умеет передавать массивы в методы, как параметры
- Способен решать задачи на создание массивов, заполнение массивов, обработку элементов массивов, преобразование массивов на языке C#
- Умеет описывать одномерные массивы простых типов на языке C#
- Умеет строить дерево рекурсии для рекурсивного алгоритма
- Знаком с прямой и косвенной рекурсией
- Умеет реализовывать вычисления, основанные на рекуррентных последовательностях в программах на языке C#
- Различает способы передачи параметров в методы в языке C#
- Умеет реализовывать методы на языке C#
- Способен выделять подпрограммы
- Понимает основные принципы структурной декомпозиции программ
- Способен решать задачи на вычисление конечных и бесконечных сумм с использованием языка C#
- Различает методы решения задач, требующих вычисления конечных и бесконечных сумм
- Умеет решать модельные задачи с использованием вложенных циклов
- Умеет составлять программы на языке С# с циклическими алгоритмами
- Умеет составлять программы на языке С# с разветвляющимися алгоритмами
- Умеет составлять программы на языке С# с линейными алгоритмами
- Способен составлять простые алгоритмы, используя алгоритмические конструкции и реализовывать их на C#
Содержание учебной дисциплины
- Алгоритмизация и программирование на языке C#• Программы на языке C#. Сборки в .NET • Проекты и решения в Visual Studio. • Комментирование кода. • Типы данных в C#. • Переменные и операции. • Организация ввода/вывода в консоль.
- Основные алгоритмические конструкции• Линейный и ветвящийся алгоритмы. • Логические выражения. • Условный оператор в C#, использование логических выражений в C#. • Циклические алгоритмы. • Реализация цикла с предусловием, цикла с постусловием и универсального цикла в C#.
- Особенности решения задач с циклами• Вложенные циклы; • Вычисление конечных и бесконечных сумм; • Решение задач с использованием циклов в C#.
- Структурная декомпозиция• Понятие об абстракции и инкапсуляции. • Понятие структурной декомпозиции и структурного проектирования программ-ных систем. • Подпрограммы. • Статические методы C#. • Параметры методов.
- Рекуррентные соотношения. Рекурсия• Рекуррентные формулы. Рекуррентные последовательности. • Рекурсия прямая и косвенная. • Дерево рекурсии. • Понятие рекурсивных функций в математике и программировании.
- Одномерные массивы• Одномерные массивы. • Создание массивов, заполнение массивов, обработка элементов массивов, преоб-разование массивов. • Особенности задач с одномерными массивами C#. • Передача массивов в методы.
- Многомерные массивы• Понятие о матрицах в математике и программировании. • Свойства индексов элементов диагоналей квадратных матриц. • Массивы массивов в С#. • Многомерные массивы в С#. • Представление матриц многомерными массивами и массивами массивов.
- Принципы разработки. Основы объектно-ориентированного программирования.• Классы и объекты • Объектовая инкапсуляция. • Полиморфизм • Реализация классов в C#
- Отношения между классами• Виды отношений между классами и объектами • Наследование и его реализация на C# • Ассоциативные связи
- Абстрактные типы данных. Структуры данных• Что такое абстрактные типы данных? • Последовательности • Списки
Элементы контроля
- Лабораторная работа
- Лабораторная работа
- Лабораторная работа
- Компьютерная контрольная работаСоглашения о комментировании кода (https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/inside-a-program/coding-conventions) • Комментарий размещается на отдельной строке, а не в конце строки кода • Текст комментария начинается с заглавной буквы • Текст комментария завершается точкой • Между разделителем комментария (/ /) и текстом комментария вставляется один пробел • Вокруг комментариев не должно быть звездочек Критерии качества кода • Исходный код задокументирован в соответствии с соглашениями о документировании кода • Идентификаторы (имена переменных, методов, типов и т.д.) осмысленные и нарушают соглашения об именовании (например, однобуквенные, русскоязычные) • Выполнены соглашения по оформлению кода (https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/inside-a-program/coding-conventions) • Текст программы отформатирован o Запись только одного оператора в строке o Запись только одного объявления в строке o Если отступ для дополнительных строк не ставится автоматически, необходимо сделать для них отступ на одну позицию табуляции (четыре пробела) o Добавление по крайней мере одной пустой строки между определениями методов и свойств o Использование скобок для ясности предложений в выражениях, как показано в следующем коде.
Промежуточная аттестация
- Промежуточная аттестация (2 модуль)0.4 * Компьютерная контрольная работа + 0.2 * Лабораторная работа + 0.2 * Лабораторная работа + 0.2 * Лабораторная работа
Список литературы
Рекомендуемая основная литература
- CLR via C# : программирование на платформе Microsoft .NET Framework 4.5 на языке C#, Рихтер, Дж., 2017
- Алгоритмы и структуры данных. Новая версия для Оберона + CD-ROM, Вирт, Н., 2012
- С# и платформа .NET 3.0 : специальное изд., Троелсен, Э., Щербинина, В., 2008
- Язык С#. Базовый курс : учеб. пособие для вузов, Подбельский, В. В., 2011
- Язык С#. Базовый курс : учеб. пособие для вузов, Подбельский, В. В., 2013
- Язык С#. Решение задач : учеб. пособие для вузов, Подбельский, В. В., 2014
Рекомендуемая дополнительная литература
- Язык программирования C# 6.0 и платформа. NET 4.6, Троелсен, Э., 2017