Learning the art of programming, like most other disciplines, consist of first learning the rules and then learning when to break them.
Joshua Bloch

Успеваемость 2017-2018

Успеваемость 2018-2019

Страничка курса со всеми метод. материалами

Ссылка на GitHub репозиторий (Работа в этом репо заглохла в прошлом семестре после первых 3-х или 4-х лекций — возможно продолжу)

Курсовое проектирование

Консультации

  • Всегда можно спросить меня в контакте
  • Время консультаций будет назначено позже — на 3-й неделе

Сроки сдачи

Сданная курсовая является, наряду со сданными зачетами, является допуском к сессии. Так что до 17-й недели (включительно) нужно отчитаться

Зачет

Регламент проведения зачета

  1. Вы приходите на зачет
  2. Сдаёте зачетную книжку преподавателю
  3. Все имеющиеся смартфоны сдаете тоже (кладете их на свою зачетную книжку, которая будет лежать на столе преподавателя)
  4. Берете задание
  5. Занимаете один из компьютеров в аудитории
  6. Пишете код на языке C# в соответсвии с заданием (Выбираете сами где писать — листочек, блокнот, VisualStudio, Vim, MicrosoftWord, Notepad++ и т.д.)
  7. На написание кода вам дается максимум 2 часа
  8. По истечении 2-х часов (или раньше, если сделаете) с момента получения задания, вы сдаете код на проверку (просто отсаживаетесь от компьютера за стол или сдаете листы, если писали ручкой на листах)

Чем можно пользоваться при написании кода

  1. Средой разработки
  2. Головой
  3. Руками

Чем нельзя пользоваться на зачете

  1. Телефоном
  2. Интерентом
  3. Локальной сетью
  4. Соседом (соседкой)

Дополнения

  1. Можно выйти в туалет только 1 раз, и только по-очереди (если кто-то уже вышел, ждем его возвращения)
  2. Можно приносить с собой воду и еду (для индивидуального потребления в процессе сдачи зачета). Однако, при определении объема потребляемой жидкости, помните про предыдущий пункт
  3. Можно приводить с собой глухо-немого слугу, который будет во время проведения зачета разминать вам плечи и махать опохалом

Критерии оценки

  • Задача состоит из 3-х частей:
    1. Обязательная. Содержит задание по проектированию класса — атрибуты (примитивы и объекты), свойства, конструкторы, методы.
    2. Вариативная. Содержит задание по определению 6и методов для одного из классов, определенных в обязательной части.
    3. Тестовая (для не уверенных в своем коде студентов=))). Содержит один метод Main(), в котором вы создаете экземпляры классов и проверяете корректность работы конструкторов, полей, методов определенных вами классов
  • Проверка вариативной части осуществляется только при условии корректно выполненной обязательной части. При не выполнении хотя бы одного из заданий обязательной части выставляется оценка «не зачет»
  • Если обязательная часть выполнена корректно, проверяется вариативная часть. Для получения зачета необходимо корректно реализовать любые 2 метода.
  • Если есть время, лучше реализовать побольше методов из вариативной части. Так как вы можете допустить ошибку, в результате которой метод будет отрабатывать не так, как требуется.
Пример задачи на зачет (ПО, РПИС)

Обязательная часть

  1. Создайте перечисление MarksEnum. Элементы перечисления:
    NotPassed = 0 //Не зачет
    Passed = 1. //Зачет
    Bad = 2
    Satisfactory = 3
    Good = 4
    Excellent = 5

    Первые 2 константы используются, если тип контроля знаний — зачет, остальные — если экзамен.
  2. Создайте public класс Subject (предмет). В классе определите:
    • private атрибуты:
      • name типа string. Содержит имя предмета.
      • mark типа int. Если тип контроля знаний — зачет, то значения атрибута: 0 (не зачет) или 1 (зачет). Если тип контроля знаний — экзамен, то значения атрибута отражают саму оценку: 2, 3, 4 или 5.
    • public свойства:
      • Name типа string. Свойство позволяет получать или устанавливать значение атрибута name.
      • Mark типа MarksEnum. Свойство позволяет получать или устанавливать значение атрибута mark. Внутри методов get и set свойства производится конвертация из целого числа в MarksEnum и наоборот. Константы перечисления имеют соответсвующие значения.
    • Общедоступные конструкторы:
      • Принимающий 2 параметра: name и mark и инициализирующий атрибуты полученными значениями.
      • Принимающий 1 параметр: name и вызывающий первый конструктор, передавая ему полученное значение name, а в качестве оценки — константу NotPassed перечисления MarksEnum.
    • Методы:
      • Метод isExam(), возвращающий логическое значение true, если текущий предмет является экзаменом и false — если зачетом. Тип контроля знаний определяется по значению атрибута mark (Если значение Passed или NotPassed, то зачет, иначе — экзамен)
  3. Создайте public класс Student (студент). В классе определите:
    • private атрибуты fName, sName, mName (ФИО) типа string
    • private атрибут subjects — массив типа Subject
    • public свойства FName, SName, MName типа string. Свойства повзволяют получить и изменить значения соответствующих атрибутов (fName, sName, mName)
    • Общедоступный конструктор, принимающий параметры — имя, фамилия, отчество, массив предметов, инициализирущий соответсвующие атрибуты
    • Метод, возвращающий копию массива предметов.

Вариативная часть

  • Метод, возвращающий колличество сданных на 4 и 5 экзаменов
  • Метод, возвращающий среднюю оценку (только среди дисциплин, у которых контроль знаний проводился в виде экзамена)
  • Метод, возвращающий массив предметов, по которым у студента не зачет
  • Метод, возвращающий массив названий предметов, по которым студент получил двойку
  • Метод, возвращающий логическое значение true, если у студента есть хотя бы один не зачет или двойка, и false — в противном случае.
  • Метод, возвращающий логическое значение true, если у студента все зачеты сданы и пятерки по всем предметам, и false — в противном случае.
Пример задачи на зачет (УИТС)
Создайте класс CheckTask. В нем определите ряд статичных методов:
1) public static void initArray (int[, ] matrix, int minValue, int maxValue), принимающий ссылку на многомерный массив целых чисел и инициализирующий его элементы случайными числами в диапазоне [minValue, maxValue]
2) public static void printArray (int[, ] matrix), принимающий ссылку на многомерный массив целых чисел и выводящий его элементы в консоль. Каждый элемент массивы выводится в новой строке в формате «Matrix[1, 0] = 12».
3) public static void processArray (int[, ] matrix, int k),принимающий ссылку на многомерный массив целых чисел. Метод выводит в консоль число элементов в массиве, кратных k и наибольший из них.