План занятий на осенний семестр
Программирование
на языке высокого уровня и основы алгоритмизации
Курс Программирования расссчитан на ДВА семестра, изучаются ДВА языка высокого уровня на уровне процедурного программирования. Объектно-ориентированное программирование изучается позже и в другом курсе и семестре.
В рамках первого семестра изучается язык Паскаль(Pascal, PascalABC, FreePascal, Delphi (Object Pascal)). Для работы с языком в семестре можно использовать разные среды программирования разных разработчиков и версий, например:
язык Delphi в средe Embarcadero RAD Studio (Бесплатная официальная учебная версия (Community Edition) Delphi доступна(?) при регистрации на сайте разработчика www.embarcadero.com ); изучаем консольные приложения, хотя среда разработки намного мощнее;
язык Delphi в мультиязыковой средe Borland Developer Studio 2007; консольные приложения;
язык Delphi (Object Pascal) в средe Borland Delphi 7; консольные приложения.
Для быстрой отладки первых приложений можно воспользоваться онлайн компиляторами Pascal, например:
Все работы в осеннем семестре c 2023, видимо, будем выполнять преимущественно с помощью первых двух сред - PascalABC.Net и Lazarus, хотя изначально курс был написан для более мощной среды программирования с языком Delphi (Object Pascal). Все версии языков и сред имеют различия, но по большей части синтаксически совпадают для консольных версий программ. Например, самый часто используемый цикл первого семестра - параметрический цикл for - имеет существенные нюансы и различия в своей работе в разных версиях языка Паскаль при почти полностью одинаковом синтаксисе. Во втором семестре аналогичная картина будет и с языками Си.
Освоение и запуск среды программирования и виртуальной машины, написания и запуска простейшей программы происходит на первой лабораторной работе семестра - не пропустите! В дальнейшем, чтобы не тратить время на занятии, набирайте программный код дома, например, в стандартной программе для работы с неформатированным тесктом - Блокнот. Спецификация также должна готовиться дома в письменном виде, а отлаживается программа тоже дома или на занятии, а вот защищается уже на лабораторном занятии. Для выполнения домашних работ в учебном плане курса выделено почти по 8 часов в неделю, не ленитесь.
Нашли орфографическую ошибку или битую ссылку?
Напишите мне об этом, постараюсь оперативно исправить. Спасибо!
№ недели
Семинары
Лабораторные работы
Дополнительные материалы и лекции
-
Рекомендуемая литература из библиотеки МЭИ
1. Фаронов В.В. Delphi. Программирование на языке высокого уровня: учебник для вузов по направлению подготовки дипломированных специалистов "Информатика и вычислительная техника". – СПб.: Питер, 2010 . – 640 с. – (Учебник для вузов) . - ISBN 978-5-8046-0008-3
либо
Фаронов В.В. Delphi. Программирование на языке высокого уровня: учебник для вузов по направлению "Информатика и вычислительная техника". – СПб.: Питер, 2011 . – 640 с. – (Учебник для вузов) . - ISBN 978-5-8046-0008-3 http://opac.mpei.ru/
Помимо материалов семинаров из левого столбца большинство лабораторных семестра на Паскале рассмотрены в методичке, которую можно взять в библиотеке:
2. Перевезенцева Е.С., Перевезенцев А.А. Технология решения задач с использованием компьютера: Учебное пособие по курсу "Программирование на языке высокого уровня". – М.: Издательство МЭИ, 2003. – 132 с. - ISBN 5-7046-0917-1 http://opac.mpei.ru/
и еще можно почитать
3. Чуркина Л.В. Нисходящая разработка многомодульных программ на языке Паскаль: Методическое пособие по курсу "Основы программирования". – М.: МЭИ, 1998. – 32с.http://opac.mpei.ru/
6. Чуркина, Л. В.Структура алгоритмов. Простые переменные : методическое пособие по курсу "Информатика" по направлению "Прикладная математика". – М.: Изд-во МЭИ, 2011 . – 60 с. http://opac.mpei.ru/
1
Студентам: Желательно знакомится с материалами для занятия заранее. а на первом занятии даже желательно иметь при себе пример спецификации из файла Lab2-3-Example2019.PDF лучше в распечатанном виде, чтобы просто добавлять себе пояснения на полях, а не пытаться распознать написанное на доске! Преподаватель не переписывать все на доску приходит, а объяснять. У каждого семинара и лабораторной работы есть список файлов.
Практическое занятие №1 (1-2 неделя)
Данные - входные(исходные) и выходные(результаты). Типы данных - целые и вещественные (размер, диапазон, операции). Структуры данных - простые переменные и одномерные статические массивы. Описание констант, простых переменных и статических одномерных массивов.
Спецификация на примере задачи из Лабораторной работы №2 (Файл Lab2-3-Example2018.doc или ) Домашнее задание: Подготовится к Лабораторной работе №2. Начать составлять спецификацию по разобранному примеру из выше указанного файла до функциональных тестов пока что (уточните условие, определите исходные и выходные данные, их имена, типы и диапазоны, проанализируйте необходимость альтернаивных ответом).
Спецификация пишется вручную или, если есть возможность, можете исправить электронную версию и распечатать. Не бойтесь написать неполностью и спросить/уточнить у преподавателя! - это часть процесса обучения в ПЕРВЫЙ МЕСЯЦ ПЕРВОГО СЕМЕСТРА, надо успеть исправить спецификацию.
Не затягивайте: есть сроки выполнения всех работ в семестре. За несвоевременное выполнение работ в семесте будет понижатся средний балл, что пможет привести к понижению на балл экзаменационной оценки. И наоборот - за своевременное выполнение оценка может быть повышена на балл - будет "право на ошибку" на экзамене!
О пунктах из спецификации есть информация в файле Sem-1.pdf), но лучше не пропускайте занятия, файлам вопрос не сможете задать и получить ответ.
Пример создания функциональных тестов есть в файле Tests.pdf
Лабораторная работа №1
Задание 1: Ознакомьтесь с правилами по Технике безопасности в компьютерных классах, запишите пароли. Преподаватель ознакомит вас со средой программирования, порядком запуска виртуальной машины, сетевыми дисками, со средой программирования, поможет создать и выполнить первую программу, расскажет о форматировании при выводе.
При работе со средой разработки Borland RAD Studio 2006 посмотрите первые два Клипа
Задание 2: Откройте среду программирования и создайте консольное приложение на Паскале для вычисления значения функции для введённого значения вещественного аргумента.
Задание по вариантам находится в файле Lab-1.pdf)
По результатам работы будет проставляется первая оценка по Программированию в БАРС по КМ-1 (Контрольное мероприятие-1). Крайний срок - 3-я неделя.
Лекция: Алгоритм. Свойства алгоритмов.
Использование блок-схем для описания алгоритма.
В лекции Algorithm.doc
Задание 1: Выполнить ввод-вывод простых переменных и массивов для задачи из файла Lab2-3-Examle (ссылки слева), рассмотренному на Практике(Семинаре) #1.
Задание 2: Выполнить ввод-вывод для своего варианта (Файл с заданием Lab-2.pdf) и написать свой отчет (легче не заново, а исправив свою копию файла Lab2-3-Example и распечатать, а если нет такой возможности, то пишите вручную на тетрадных листах или листах формата A4).
По ввод и вывод простых переменных и массивов см. справа - в файле Algorithm-coding.pdf
Пример - см в спецификации из файла слева Lab2-3-Example.
ВЫУЧИТЬ к концу семестра:Кодирование алгоритмов, описанных в виде блок-схем, на язык Паскаль Algorithm-coding.pdf, а также ввод и вывод простых данных и массивов, в строчку и в столбик.
Вывод кириллицей: смена кодировки в Delphi и использование стандартных диалоговых окон RUS-2018.pdf
НЕ НАДО БОЯТЬСЯ ДЕЛАТЬ ОШИБКИ! ОНИ НЕИЗБЕЖНЫ! ЭТО ЧАСТЬ ОБУЧЕНИЯ!
Глаза боятся - руки делают! Начните с постановки задачи - перепишите ее, нарисуйте пустые таблицы данных, формы ввода и вывода, таблицы для тестов, "начало" и "ввод" в блок-схеме (первая блок-схема почти такая же во всех вариантах - отделите ввод и вывод от обработки, программа тоже будет похожа, особенно без решения (с заглушкой)). ЗАПОЛНИТЕ ЧТО И КАК СМОЖЕТЕ И ПРИНОСИТЕ! Это нормально!!! в начале обучения. Если бы Вы все знали, Вы бы не пришли учиться. Зато к экзамену постепенно научитесь, ЕСЛИ НАЧНЕТЕ. Чем раньше, тем лучше. ДОРОГУ ОСИЛИТ ИДУЩИЙ
ОШИБКИ - это не только часть обучения, но и часть процесса создания программных продуктов: ОБЯЗАТЕЛЬНОЙ частью создания программных продуктов является отладка и тестирование с целью их (ошибок) обнаружения. Ошибка есть в каждой программе! - и, если в это не верить, вы ее не найдете, потому что не будете даже искать. Специально ошибки делать не надо, они и так там будут. Если Вы не нашли ошибку, это НЕ значит, что ее там нет. А если нашли, то значит - там еще есть хотя бы одна. Если преподаватель тоже не нашел, значит, он устал и не заметил :)
Допуск к экзамену = отсутвие двоек за все КМ в БАРС (может быть ОДНА пересдача каждой двойки в период ДО зачетной/экзаменационной сессии и затем после). Заработанный балл может повысить или понизить вашу оценку за ответ на экзамене! Удобно при высоком среднем балле получить на экзамене "право на ошибку": ответил с ошибкой, но из-за высокого среднего балла в БАРС итоговая оценка станет на балл выше! И обидно при низком среднем балле в БАРС вместо 4-5 получить 3-4. Двойка остается двойкой и не корректируется по среднему баллу. Сдавайте свои работы и вовремя: плохо выучив материал за первый семестр, со вторым семестром не справитесь!
3
Студентам: не забудьте ознакомится с файлами ДО занятия и подготовить вопросы, чтобы обсудить, что не понятно, с преподавателем на семинаре! Объяснение пройдет быстрее и эффективнее
Практическое занятие №2
1) Спецификация (Метод-Алгоритм-Код) на примере задач из лабораторных работ №2-5.
2) Ввод и вывод с использованием нестандартных текстовых файлов.
3) Передача имен файлов через параметры программы (изучить самостоятельно)
4) Поиск экстремума в одномерном массиве
5) Символьный тип (ознакомиться самостоятельно, будет на лекции, будет в работал.7 и 9, КР-2, на экзамене)
Домашнее задание: подготовится к выполнению лабораторных работ №3-5.
Информация к занятию и указания для составления отчета по Лаб.работе №5 в файле Sem-2.pdf)
БАРС - КМ-1-3 (контрольные мероприятия 1-3) - надо сдать лаб.1-3 и уже надо начать делать лаб.4 (лаб.3 с файлами) и лаб.5 (со спецификацией и с файлами)!
Пересдать можно только ДВОЙКУ и только ОДИН раз до начала экзаменационной сессии (после - уже без пересчета итогового балла в БАРС)
Лабораторная работа №3-5
Выполнение и защита лабораторных работ №3-5
по вариантам
Лаб №4 = Лаб №3 + использование нестандартных текстовых файлов. Задание в файле Lab-4.pdf
Текстовые файлы можно создавать/открывать/редактировать как в Блокноте. так и в самой среде программирования. В списке клипов есть Ролик №5 про возможность работы с текстовым файлом в среде Borland Delphi 7. В среде разработке Delhi 2003-2009 также есть такая возможность: среди других (Other files) файлов есть пункт Text.
Лаб №5 Поиск экстремума Lab-5.pdf - разрабатывается аналогично предыдущей задаче (Лаб №2-4), но как и почти все задачи далее за одну неделю, а не за три. Не копите задания, делайте их в срок!
Бесплатные индивидуальные КОНСУЛЬТАЦИИ лектора по вопросам составления функциональных тестов на примере ВАШЕЙ конктретной задачи и написания программ, спецификаций.
Для примера понадобятся файлы: спецификация (Файл Lab2-3-Example2019.pdf), и кодирование ввода-вывода Algorithm-coding.pdf и базовых алгоритмов Base-algorithmes.pdf и свой черновик спецификации (условие в пункт 1 переписали?).
Расписание очных консультаций c конца сентября на странице Где и Когда. Приносите программы или ноутбук, чтобы общение было предметным и конкретным, а не абстрактным.
ЧУЖИЕ программы обсуждать не готова, надо каждому делать СВОИ ошибки. Обсуждаем либо ВАШИ программы и разбираемся с ВАШИМИ ошибками, либо МОИ примеры с этого сайта.
Приходите! Не стыдно не знать, стыдно - не пытаться узнать. Составление тестов - не тривиальная задача и требует ТРЕНИРОВКИ на как можно большем числе задач, так же как и само программирование: чем БОЛЬШЕ вы программ напишите, тем БОЛЬШЕ вы ошибок сделаете, тем БОЛЬШЕ возможностей их найти и исправить получите - как и возможностей их запомнить и не повторять (часто совершаются одни и те же ошибки из программы в программу). Давайте начнем их делать и искать как можно раньше!
ВЫУЧИТЬ к концу семестра:Простейшие базовые алгоритмы: поиск суммы, произведения, количества, минимума, максимума. Base-algorithmes-2020.pdf
4
Языки высокого уровня, Delphi: простые типы и статические массивы Types1.doc
Практическое занятие №3
Поиск на множестве элемента, удовлетворяющего заданному условию, и его номера (Файл Sem-3-2020.pdf исправлена опечатка 13.11.2020)
Задача Cond2 "Поиск по двум условиям"
Домашнее задание: Подготовится к лабораторной работе №6
Лабораторная работа №6
достаточно сложная, если не успеваете, то можно делать дольше (к 11 неделе) или даже сразу в виде лаб.10. Пример рассматривается и обсуждается на Практике-3.
Лаб №6 Cond2 Поиск экстремума с двумя условиями. Нисходящая разработка
Файл Lab-6-2019.pdf
1) Упорядочение одномерного массива методом выбора
2) Упорядочение одномерного массива методом пузырька (обменом)
3) Упорядочение одномерного массива методом вставки
4) Логические выражения
5) Контрольная работа на 1 ак.час
Домашнее задание: Подготовится к выполнению Лаб.работы №7
БАРС - КМ-4-7 (контрольные мероприятия 4-7) - надо сдать лаб.4,5,7 и написать контрольную на практическом занятии. На 9 неделе уже надо начинать лаб.(6),8,9!
Пересдать можно только ДВОЙКУ и только ОДИН раз до начала экзаменационной сессии (После начала экзаменационной/зачетной сессии средний балл в БАРС не пересчитывается)
БАРС - КМ-5 (контрольное мероприятие 5) - оценка за Первую контрольную работу
Лабораторная работа №7
Лаб №7 Сортировка выбором и пузырьковая. Файл Lab-7-2019.pdf
Описание сортировок в конспекте лекции: Файл Sort.doc
Описание сортировок в конспекте лекции: Файл Sort.doc
Господа студенты, полученные вами двойки по контрольным неделям расцениваются как нежелание учиться в нашем институте и в университете в целом. Избавить вас от бремени обучения смогу только на экзамене, если вы на него попадете. Так что у вас есть еще время передумать, победить свою лень и страхи ошибок, взрастить силу воли. Но, если вы сегодня же не возьметесь за учебу, вы просто физически не успеете сдать все задачи и получить допуск к экзамену. Помните, что преподаватель - один, а вас - откладывающих задачи до конца семестра - много... Кроме того, у вас есть и другие предметы... Напоминаю, что с сентября по декабрь ждала вас на бесплатную личную консультацию каждую неделю.
Читайте выложенные материалы, консультируйтесь со своим преподавателем на семинарах и лабораторных, со своими одногруппниками общайтесь (у нас групповые занятия). За вас никто не научится и не поймет - это придется вам сделать самим с первых работ (чем дальше, тем сложнее), а преподаватели могут только помочь и направить, предоставив возможность научиться, а затем и оценить результат ваших усилий.
9
Практическое занятие №5
Работа с матрицами: ввод/вывод, проверка условия для строк/столбцов и элементов (файл Sem-5.pdf )
Домашнее задание: Подготовится к лабораторным работам №8 и №9
Лабораторная работа №8
Обработка матрицы (двухмерного массива)
Файл Lab-8-2020.pdf (заменены почти все имена C на D 13.11.2020 для лучшей совместимости с именами лаб.11)
Ввод/вывод матрицы есть в файлах Algorithm-coding.pdf и Sem-5.pdf, алгоритмы суммирования разных элементов разных частей матриц в файле Base-algorithmes.pdf(ищите соответствующие ссылки в левом и в правом столбце)
Если занятия 04 ноября пропадают, то программа курса от этого не сокращается! Готовьтесь к следующим лабораторным работам, и доделывайте предыдущие, иначе к Новому году обрастете хвостами, и будете не праздновать и отдыхать, а думать о возможном отчислении...
Пропавшие занятия от 01-сен и 04-ноя будут компенсированы в конце декабря
Лабораторная работа №9
Поиск подходящей по условию строки/столбца в матрице (без цикла FOR! только WHILE или REPEAT)
Файл Lab-9-2020.pdf (обновлен 17.10.2020)
Ввод/вывод матрицы есть в файлах Algorithm-coding.pdf и Sem-5.pdf, алгоритмы проверки ВСЕ ЛИ и ХОТЯ БЫ 1 в файлах Base-algorithmes.pdf и Sem-3.pdf(ищите соответствующие ссылки в левом и в правом столбце)
Домашнее задание: Подготовится к лабораторным работам №10 и №11, начать выполнять ТР
БАРС - КМ-8-10 (контрольные мероприятия 8,9,10) - надо сдать лаб.6(или 10),8,9. На 12 неделе уже надо делать лаб.10(6)-11(8)!
Пересдать можно только ДВОЙКУ и только ОДИН раз до начала экзаменационной сессии (после - уже без пересчета итогового балла в БАРС)
Лабораторная работа №10
Решение задачи Cond2 (лаб.6) с процедурами
КАЖДУЮ подзадачу надо оформить в виде процедуры, а не ВСЕ подзадачи в ОДНУ процедуру.
Файл Lab-10.pdf
После этой недели ВСЕ (1-9) несданные еще задачи сдаются ТОЛЬКО С ПРОЦЕДУРАМИ (общего вида или функциями)!!!!! Сделайте хотя бы ОДНУ процедуру-функцию в еще НЕсданных лаб.1-5,7,8,9
Процедуры в Delphi - теория - ProcTheory.pdf
Процедуры и параметры - практика - пример из лекции Procedures.pdf
12
Лабораторная работа №11
- укрупнение задачи из Лаб.работы №8 - восходящая разработка и тестирование.
Решение задачи "3 массива" в двух вариантах: 1) только с процедурами общего вида и
2) с функцией(ями) для решения лаб.8
Файл Lab-11-2021.pdf
Домашнее задание: Выполнение Типового расчета с размещением процедур и функций в отдельном(ых) модуле(ях) (unit).
БАРС - КМ-11-12 (контрольные мероприятия 11-12) - надо сдать лаб.10-11 вовремя. На 14 неделе уже надо начать сдавать готовый Типовой расчет!
Пересдать можно только ДВОЙКУ и только ОДИН раз до начала экзаменационной сессии (после - уже без пересчета итогового балла в БАРС)
Тестирование призвано указывать на наличие, а не на отсутствие ошибок.
Дейкстра
15
Практическое занятие №8
Итоговая контрольная работа - тренируемся решать экзаменационную задачу на время Домашнее задание: Выполнение Типового расчета с размещением процедур и функций в отдельном(ых) модуле(ях) (unit).
БАРС - КМ-14 (контрольное мероприятие 14) - Оценка за Типовой расчет! Отчет (полная спецификация по основной и подзадачам) в бумажном виде - от руки или напечатанный.
Пересдать можно только ДВОЙКУ и только ОДИН раз до начала экзаменационной сессии (после - уже без пересчета итогового балла в БАРС)
Последние лекции:
Процедурный тип, области видимости и нисходящее тестирование ProcType.pdf
Записи Record.pdf
Множества Set.pdf
16
Господа студенты, преподаватель вовсе не обязан обеспечить всех положительными оценками и допуком. Он просто должен адекватно оценить полученные вами знания. К вашим услугам был этот сайт (с материалами лекций и семинаров), библиотека, вы могли задавать вопросы лектору и другим своим преподавателям В ТЕЧЕНИЕ УЧЕБНОГО СЕМЕСТРА на занятиях и консультациях, а также одногруппникам. Кроме того, существует Интернет и форумы по Паскалю/Delphi, электронные книги (пара ссылок на учебники есть в правом столбце).
Долги сдаются по расписанию преподавателя (будет на сайте МЭИ, и мое на этом сайте тоже). Совпадения по времени с приемом долгов по другим предметам - ваша проблема. За один подход к преподавателю - не более двух-трех задач, чтобы имеющие меньшие долги получили допуск первыми.
17
Пропавшие занятия от 01-сен будут компенсированы __-дек
Пропавшие занятия от 04-ноя будут компенсированы __-дек
Учебные занятия до __ декабря, и средний балл в БАРС фиксируется не пересчитывается больше,
с __-дек до __-дек - зачетная неделя,
Даты требуют уточнения...
в январе экзамены
Допуск при отсутвии двоек за КМ в БАРС (может быть ОДНА пересдача каждой двойки в период ДО экзаменационной сессии и потом только после). Заработанный балл может повысить или понизить вашу оценку за ответ на экзамене! Удобно при высоком среднем балле получить на экзамене право на ошибку: ответил с ошибкой, но из-за высокого среднего балла в БАРС оцентку получил на балл выше! И обидно при низком среднем балле в БАРС вместо 4-5 получить 3-4. Двойка остается двойкой и не корректируется по среднему баллу. Сдавайте свои работы и вовремя: плохо выучив материал за первый семестр, со вторым семестром не справитесь, не доучив как следует первый!