Главная страница
Навигация по странице:

  • Контактный номер +998 (90) 931-26-10 Адрес Здание Б, 2-этаж, кабинет №10 E-mail xazratbek@gmail.com Краткая информация о курсе

  • Предварительные требования курса PRC1018 - Программирование (С++) (1) Результаты обучения

  • Содержание курса Лекции: 1.Структуры данных.

  • Тематики блока Часы 1.Работа с файлами. 2 2. Структуры данных. Объединения. Перечисления. Оператор typedef 2 2.Объектно-ориентированное программирование (ООП).

  • Тематики блока Часы

  • 3. Дополнительные возможности С++.

  • Тематики блока Часы 1. Работа с файлами 6 2. Структуры данных. Объединения 4 3. Перечисления. Оператор typedef 2 2. Объектно-ориентированноепрограммирование.

  • Нагрузка Деятельность Часы Лекция 30 Лаборатория 90 Практика - Самостоятельная работа 120 Общее 240

  • Название Программирование (С)


    Скачать 345.64 Kb.
    НазваниеНазвание Программирование (С)
    Дата05.05.2019
    Размер345.64 Kb.
    Формат файлаpdf
    Имя файла5_6319069779265060994.pdf
    ТипПрограмма курса
    #76177

    Программа курса
    Код
    PRC1028
    Название
    Программирование (С++)
    Кредиты ECTS 8
    Академический
    год
    2018-2019
    Семестр
    2
    Информация о профессоре-преподавателе
    Преподаватель Халиков Хазратбек Мамуржанович
    Лаборатория
    Халиков Х.М., Абдуллаева З., Усманова С.Ю.
    Кафедра
    Основы информатики
    Контактный
    номер
    +998 (90) 931-26-10
    Адрес
    Здание Б, 2-этаж, кабинет №10
    E-mail
    xazratbek@gmail.com
    Краткая информация о курсе
    Этот курс охватывает знания и концепцию ООП для разработки приложений с помощью языка программирования С++. Он включает в себя все необходимые структуры данных, элементы и подходы программирования, в том числе файлы, структуры данных и объединения, работа с классами и стандартными алгоритмами.
    Данный курс состоит из 3 разделов:
    1.
    Структуры данных
    2.
    Объектно-ориентированное программирование (ООП)
    3.
    Дополнительные возможности С++
    Предварительные требования курса
    PRC1018 - Программирование (С++) (1)
    Результаты обучения
    По окончании этого курса студенты смогут:
    - Разрабатывать сложные структуры данных для решения разнообразных задач с использованием сложных многоуровневых структур
    - Выбирать наиболее подходящую структуру (файл, структура данных, объединения) для решения конкретной задачи, учитывая работу с памятью
    - Обеспечивать целостность данных в разрабатываемых приложениях
    - Разграничивать доступ к данным, используемым в создаваемых программах
    - Создавать многофункциональные элементы, которые могут быть внедрены в другие программы
    - Реализовывать алгоритмы выполнения задач и алгоритмы сортировки данных
    - Работать с контейнерными классами
    - Применять шаблоны в проектируемом ПО
    - Обрабатывать расширенные символы (не помещающиеся в стандартный набор ASCII)

    Содержание курса
    Лекции:
    1.Структуры данных.
    В данной тематике раскрываются основные принципы работы с файлами, структурами данных и объединениями, а также перечислениями и использование оператора typedef.
    Тематики блока
    Часы
    1.Работа с файлами.
    2 2. Структуры данных. Объединения. Перечисления. Оператор typedef
    2
    2.Объектно-ориентированное программирование (ООП).
    Данный раздел охватывает основную часть программирования, т.е. применение концепции ООП для разработки приложений. Дается понятие инкапсуляции, наследования и полиморфизма. Приводятся понятия и принципы работы с классами, абстрактными классами, виртуальными функциями, шаблонами и перегрузкой операторов.
    Тематики блока
    Часы
    1. Классы и объекты. Создание членов класса. Создание конструкторов.
    Создание деструктора. Доступ к членам и фукциям класса. Вложенные классы. Локальные классы.
    4 2. Массивы объектов. Указатели на объекты. Указатель this. Указатели на производные типы. Указатели на члены класса.
    2 3. Перегрузка функций. Перегрузка конструкторов. Конструкторы копирования. Аргументы по умолчанию.
    2 4. Перегрузка операторов.
    2 5. Наследование. Наследование и защищѐнные члены. Множественное наследование. Предоставление доступа.
    2 6. Шаблоны. Обобщенные функции. Применение обобщенных функций.
    Обобщенные классы.
    2 7. Виртуальные функции и полиморфизм. Абстрактные классы. Обработка исключительных ситуаций. Функцииterminate () иunexpected ().
    Классыexceptionиbad_exception.
    2
    3. Дополнительные возможности С++.
    В этом пункте раскрываются основы работы с вводом-выводом и перегрузка операторов ввода-вывода, а также дается понятие буферизованного ввода-вывода. Приводятся описания и принципы работы с контейнерными классами, векторами, а также применение алгоритмов. Также описываются функции обработки расширенных символов.
    Тематики блока
    Часы
    1. Основы системы ввода-вывода. Потоки. Классы потоков.
    Форматированный ввод-вывод. Перегрузка операторов “>>” и “<<”.
    2 2. Пространства имен. Создание функций преобразования. Применение ключевого слова asm. Буферизованный ввод-вывод.
    2 3. Введение в стандартную библиотеку шаблонов. Контейнерные классы.
    Векторы. Списки. Ассоциативные контейнеры. Алгоритмы. Применение функторов. Класс string.
    2 4. Функции обработки расширенных символов.
    2

    5. Стандартные контейнерные классы. Стандартные алгоритмы.
    2
    Лабораторные:
    1.Структуры данных. В данной тематике раскрываются основные принципы работы с файлами, структурами данных и объединениями, а также перечислениями и использование оператора typedef.
    Тематики блока
    Часы
    1. Работа с файлами
    6 2. Структуры данных. Объединения
    4 3. Перечисления. Оператор typedef
    2
    2. Объектно-ориентированноепрограммирование. Данный раздел охватывает основную часть программирования, т.е. применение концепции ООП для разработки приложений.
    Дается понятие инкапсуляции, наследования и полиморфизма. Приводятся понятия и принципы работы с классами, абстрактными классами, виртуальными функциями, шаблонами и перегрузкой операторов.
    Тематики блока
    Часы
    1. Классы и объекты. Создание членов класса.
    4 2. Создание конструкторов. Создание деструктора.
    4 3. Доступ к членам и функциям класса.
    2 4. Вложенные классы. Локальные классы.
    2 5. Массивы объектов. Указатели на объекты.
    2 6. Указатель this. Указатели на производные типы.
    2 7. Указатели на члены класса
    2 8. Перегрузка функций.
    2 9. Перегрузка конструкторов.
    2 10. Конструкторы копирования. Аргументы по умолчанию.
    2 11. Перегрузка операторов.
    6 12. Наследование. Наследование и защищѐнные члены. Множественное наследование. Предоставление доступа.
    2 13. Наследование и защищенные члены.
    2 14. Множественное наследование. Предоставление доступа.
    2 15. Шаблоны.
    2 16. Обобщенные функции. Применение обобщенных функций.
    2 17. Обобщенные классы.
    2 18. Виртуальные функции и полиморфизм.
    2 19. Абстрактные классы. Обработка исключительных ситуаций.
    2 20. Функции terminate () иunexpected (). Классы exception и bad_exception.
    2
    3. Дополнительные возможности С++. В этом пункте раскрываются основы работы с вводом-выводом и перегрузка операторов ввода-вывода, а также дается понятие буферизованного ввода-вывода. Приводятся описания и принципы работы с контейнерными классами, векторами, а также применение алгоритмов. Также описываются функции обработки расширенных символов.
    Тематики блока
    Часы
    1. Основы системы ввода-вывода.
    2 2. Потоки. Классы потоков. Форматированный ввод-вывод.
    2

    3.Перегрузка операторов “>>” и “<<”.
    2 4. Пространства имен. Создание функций преобразования.
    2 5.Применение ключевого слова asm.
    2 6. Буферизованный ввод-вывод.
    2 7. Введение в стандартную библиотеку шаблонов. Контейнерные классы.
    2 8. Векторы. Списки. Ассоциативные контейнеры.
    2 9. Алгоритмы. Применение функторов. Класс string.
    2 10. Функции обработки расширенных символов.
    6 11. Стандартные контейнерные классы.
    4 12. Стандартные алгоритмы.
    2
    Нагрузка
    Деятельность
    Часы
    Лекция
    30
    Лаборатория
    90
    Практика
    -
    Самостоятельная работа
    120
    Общее
    240
    Стратегия обучения
    Развитие курса происходит следующим образом: во время лекций, студент получает необходимые теоретические знания по курсу. Два раза в течение семестра проводится промежуточный контроль в виде закрытого теста. Во время лабораторных занятий, преподаватель демонстрирует практическое применение теоретических знаний, полученных во время лекционных занятий. В конце каждого лабораторного занятия студент получает индивидуальное задание для выполнения самостоятельных работ в целях дальнейшего укрепления тематики. В течение семестра студент должен выполнить
    3 практических задания, охватывающие все полученные знания в течение курса.
    Практические задания.
    1. Разработка приложения, работающего с файлами и структурами данных
    2. Разработка приложения, включающего в себя все три составляющие ООП: инкапсуляцию, наследование и полиморфизм
    3. Разработка программы, которая может поддерживать расширенные символы, и включает в себя применение нескольких алгоритмов
    Оценивание
    Теоретическая часть курса состоит из двух промежуточных контролей (закрытых тестов).
    Практическая часть состоит из 3 практических заданий, основанных на каждом блоке:
    Тесты: 10% (5% за каждый)
    Практические задания: 30% (10% за каждый)
    Самостоятельная: 10%
    Итоговый контроль: 50%
    Оценивание будет осуществляться на основе следующих критериев:

    1)
    Тест 1. Тест 1 состоит из трех заданий: две задачи, одно теоретическое. Задания будут оцениваться следующим образом: a.
    Задание 1 (задача). За правильное выполнение задания дается 1.2%. За его невыполнение, но правильную логическую последовательность (алгоритм) дается
    0.6%. По данному заданию задаются два вопроса: за каждый правильный ответ – по 0.5%. b.
    Задание 2 (задача). За правильное выполнение задания дается 1.2%. За его невыполнение, но правильную логическую последовательность (алгоритм) дается
    0.6%. По данному заданию задаются два вопроса: за каждый правильный ответ – по 0.5%. c.
    Задание 3 (теоретический вопрос). За правильный ответ дается 0.6%.
    Итого по Тесту 1: 5%.
    2)
    Тест 2. Тест 2 состоит из трех заданий: две задачи, одно теоретическое. Задания будут оцениваться следующим образом: a.
    Задание 1 (задача). За правильное выполнение задания дается 1.2%. За его невыполнение, но правильную логическую последовательность (алгоритм) дается
    0.6%. По данному заданию задаются два вопроса: за каждый правильный ответ – по 0.5%. b.
    Задание 2 (задача). За правильное выполнение задания дается 1.2%. За его невыполнение, но правильную логическую последовательность (алгоритм) дается
    0.6%. По данному заданию задаются два вопроса: за каждый правильный ответ – по 0.5%. c.
    Задание 3 (теоретический вопрос). За правильный ответ дается 0.6%.
    Итого по Тесту 2: 5%.
    3)
    Практическое задание 1. Практическое задание 1 состоит из трех заданий: две задачи, одно теоретическое. Задания будут оцениваться следующим образом: a.
    Задание 1 (задача). За правильное выполнение задания дается 2.5%. За его невыполнение, но правильную логическую последовательность (алгоритм) дается
    1.2%. По данному заданию задаются два вопроса: за каждый правильный ответ – по 0.8%. b.
    Задание 2 (задача). За правильное выполнение задания дается 2.5%. За его невыполнение, но правильную логическую последовательность (алгоритм) дается
    1.2%. По данному заданию задаются два вопроса: за каждый правильный ответ – по 0.8%. c.
    Задание 3 (теоретический вопрос). За правильный ответ дается 1%. По данному заданию задаются два вопроса: за каждый правильный ответ – по 0.4%.
    Итого по практическому заданию 1: 10%.
    4)
    Практическое задание 2. Практическое задание 2 состоит из трех заданий: две задачи, одно теоретическое. Задания будут оцениваться следующим образом: a.
    Задание 1 (задача). За правильное выполнение задания дается 2.5%. За его невыполнение, но правильную логическую последовательность (алгоритм) дается
    1.2%. По данному заданию задаются два вопроса: за каждый правильный ответ – по 0.8%.
    b.
    Задание 2 (задача). За правильное выполнение задания дается 2.5%. За его невыполнение, но правильную логическую последовательность (алгоритм) дается
    1.2%. По данному заданию задаются два вопроса: за каждый правильный ответ – по 0.8%. c.
    Задание 3 (теоретический вопрос). За правильный ответ дается 1%. По данному заданию задаются два вопроса: за каждый правильный ответ – по 0.4%.
    Итого по практическому заданию 2: 10%.
    5)
    Практическое задание 3. Практическое задание 3 состоит из трех заданий: две задачи, одно теоретическое. Задания будут оцениваться следующим образом: a.
    Задание 1 (задача). За правильное выполнение задания дается 2.5%. За его невыполнение, но правильную логическую последовательность (алгоритм) дается
    1.2%. По данному заданию задаются два вопроса: за каждый правильный ответ – по 0.8%. b.
    Задание 2 (задача). За правильное выполнение задания дается 2.5%. За его невыполнение, но правильную логическую последовательность (алгоритм) дается
    1.2%. По данному заданию задаются два вопроса: за каждый правильный ответ – по 0.8%. c.
    Задание 3 (теоретический вопрос). За правильный ответ дается 1%. По данному заданию задаются два вопроса: за каждый правильный ответ – по 0.4%.
    Итого по практическому заданию 3: 10%.
    6)
    Самостоятельная работа. Самостоятельная работа состоит из 5 заданий: 5 задач. Все задания будут оцениваться следующим образом: a.
    За правильное выполнение каждого задания дается 1.4%. За невыполнение, но правильную логическую последовательность (алгоритм) дается 0.7%. По каждой задаче будет задаваться по одному вопросу: за правильный ответ – 0.6%.
    Итого по самостоятельной работе: 10%.
    Литература
    Основная:
    1. Ulla Kirch-Prinz Peter Prinz, A Complete Guide to Programming in C++, Jones and Bartlett
    Publishers, 2002 2. Nazirov Sh.A., Qobulov R.V., Bobojanov M.R., Raxmanov Q.S. S va C++ tili. “Voris- nashriyot” MCHJ, Toshkent 2013, 488 b.
    3. Herbert Schildt. C++: The complete reference. Fourth edition. McGraw-Hill/Osborne, 2006
    Дополнительная:
    1.
    Horstmann, Cay S. C++ for everyone/Cay S. Horstmann. Printed in the United Statesof
    America - 2nd ed. 2010. – P. 562.
    2.
    Horton I.-Beginning Visual C++ 2012/ I.Horton. Published simultaneously in Canada.–
    2012. –P. 988.
    3.
    Ziborov V.V. MS Visual C++ 2010 в среде .NET (2012) Питер.
    4.
    Борис Пахомов. C/C++ и VisualC++ 2010 для начинающих. - СБП: БХВ-
    Петербург. 2011.

    5.
    BjarneStroustrup. Programming: Principles and Practice Using C++ (2nd Edition).
    PersonEducation, Inc. 2014. secondprinting, January 2015.
    6.
    BjarneStroustrup. The C++ Programming Language, 4th Edition. Person Education, Inc.
    2013. Third printing, April 2014.
    7.
    J.Axmadaliev, R.Xoldorboev C++ dasturlash tilini o„rganish bo„yicha uslubiy qo„llanma(2015).
    8.
    Макки A. Введение в .NET 4.0 и VisualStudio 2010 для профессионалов(2010).
    9.
    Макурин Ю.Д, Сивохин A.В. Проектирование и реализация баз данных и клиентских приложений в среде MS Visual Studio.NET (2010)
    10.
    Прохоренок Н.A. Программирование на С++ в VisualStudio 2010 Express(2010).
    11.
    Fedorov A.A. Microsoft Visual Studio 2008. Краткие обзор ключевых новинок(2008).


    написать администратору сайта