Лекционные/семинарские материалы
по курсу
Работа на ЭВМ и программрование
Староверов Владимир Михайлович
МГУ им.М.В.Ломоносова. Мех-мат ф-т. 3 поток.

Приглашение на конференцию Zoom; пароль 111111 (для проведения лекций/семинаров в online-формате в случае проблем с корпоративным мех-матовским zoom) В случае проблем не стесняйтесь и звоните по телефону/пишите в WhatsApp +7-916-118-78-10 /на почту .
Пожалуйста, в случае сдачи задач по почте пишите В ТЕМЕ письма номер группы, фамилию, номера задачи по порядку сдачи и по списку. Мне тяжело ориентироваться в сотнях писем!!!
Пожалуйста, вкладывайте в каждое письмо текущий вариант сдаваемой задачи. Мне тяжело ориентироваться в сотнях писем!!!

Установочные файлы для gcc под Windows и FAR (32- и 64-битные версии), в которых необходимо компилировать присылаемые программы.
Давайте компилировать программы с ключами, максимально приближающими уровень замечаний/ошибок к уровню замечаний/ошибок в дисплейном классе.
Командные файлы для компиляции на gcc на C и на C++ для Windows (*.bat) и для Linux (без расширения) можно найти по ссылке. Весьма желательно при компиляции программ добавлять ключ -O2 (максимальная оптимизация). При использовании этого ключа часть кода программы выполняется на этапе компиляции, что иногда помогает отловить в программе некоторые ошибки.
Для Linux не забудьте после копирования командного файла дать ему права на выполнение: chmod a+x wgcc.
Некоторые антивирусы (например, Касперский) блокируют запуск файлов, скачанных из интернета, не выдавая никаких предупреждений. В этом случае уберите блокировку в свойствах файла.


Все вопросы можно задавать по адресу staroverovvl@yandex.ru

Очередная пересдача зачетов и экзаменов по курсу Работа на ЭВМ и программирование состоится 25 ноября 2024г в ауд.445 в 16.45

Темы для пересдачи первого курса: работа с двумерными криволинейными массивами.

Темы для пересдачи второго курса: работа с двумерными криволинейными массивами, работа с классами, подчиняющимися правилам пяти и нуля, работа с умными указателями.


Несколько слов для первокурсников:
Семинарские занятия сводятся к сдаче задач + окололекционные занятия в мигающую пару, на которой я буду рассказывать язык С и вещи, связанные с решением задач. Далее будет выложен график сдачи задач. Задачи можно сдавать по почте, но только если Вы их сдаете в рамках установленных сроков. После установленных сроков задачи можно сдавать только на семинарах лично семинаристу (мне, например). При этом семинарист имеет право задавать любые вопросы по задаче и давать некоторые дополнения к задаче в качестве штрафа за несданную вовремя задачу.
Задачи можно сдавать только по порядку. Т.е. нельзя присылать задачу до того, как сдана предыдущая задача.
Предполагается, что сдача зачета сводится к сдаче всех задач, заданных в семестре + сдача некоторого единого (автоматизированного) зачета для всего курса. Если Вы не успеваете сдать требуемое количество задач в семестре, то на официальном зачете придется решать задачи, аналогичные семестровым задачам, чтобы закрыть семестровые задачи. Единый зачет сдается одновременно для всего курса и сводится к решению некой типовой задачи за ограниченное время.
При сдаче задач у преподавателей создается база данных по всем сданным задачам и происходит сравнение сдаваемой задачи с уже сданными задачами. Попытка сдачи уже сданной кем-то другим задачи карается жесткими административными санкциями.


Семинары 1 курс

Краткая инструкция для первокурсников по установке нужных программ и написанию первой программы.

Табличка сданных задач 1 курса (01.09.2024). В табличке красным помечены студенты, которые даже не пытались сдать ни одной задачи на 12.10.2024. После сдачи трех задач на последовательности им будет дана одна штрафная задача на последовательности. Сдавать задачи тем, кто не сдал ни одной задачи на 12.10.2024 можно только на занятиях.

Семинары 1-го курса 2024/2025гг. Если кому интересно, то можно посмотреть записи старых Семинаров 1-го курса 2021/2022 годов (темы и видео) или Семинаров 1-го курса 2023/2024 годов.
Установочные файлы для gcc и FAR (32- и 64-битные версии), необходимые для работы первокурсников.
Проверка утечек памяти для программ на языке С. Для проверок утечек памяти следует при сборке программы добавить к списку файлов malloc.c. Работает для выложенного gcc и для последней версии компилятора Microsoft.
Примеры программ и правила оформления задач для первого курса
Короткое описание работы со строками в языке С. Примеры.
Задачи для первого курса мех-мат ф-та по курсу "Работа на ЭВМ и программирование" (первый семестр).
Примерный план сдачи задач для первого курса (первый семестр)


 

Семинары 2 курс

Табличка сданных задач 2 курса (01.09.2024).

Записи старых и новых семинаров 1, 2 и 3 семестров (2023/2024гг) Записи старых семинаров 1 и 2 семестров (2021/2022гг)

Проверка утечек памяти для программ на языке С++. Для проверок утечек памяти следует при сборке программы добавить к списку файлов malloc.cpp. Работает для выложенного gcc и для последней версии компилятора Microsoft. При компиляции нельзя задавать ключи оптимизации. Если требуется узнать, в каком месте отведена неочищенная память, то в cpp-файлы программы надо добавить include-файл из архива.

Первая контрольная работа для второго курса (простые классы; осенний семестр) мех-мат ф-та по курсу "Работа на ЭВМ и программирование." Номер задачи = номеру в группе.
Вторая контрольная работа для второго курса (сложные классы; осенний семестр) мех-мат ф-та по курсу "Работа на ЭВМ и программирование." Для студентов, не сдавших вторую контрольную работу до 26.09, использование rvalue references в арифметических операциях обязательно. Номер задачи = номеру в группе.

Третья контрольная работа по формулировке полностью повторяет вторую, но она должна быть сделана с помощью умных указателей.

Контрольные работы должны быть сданы жестко в рамках указанных ниже сроков, иначе появится добавка которую тоже придется сдавать.
Список вопросов к коллоквиуму для второго курса ("Работа на ЭВМ и программирование"). Реальные билеты будут составлены из данных вопросов.
Старый список вопросов по курсу "Работа на ЭВМ и программирование". Список вопросов для нашего экзамена будет изменен.
Задачи для второго курса (первое задание на осенний семестр) мех-мат ф-та по курсу "Работа на ЭВМ и программирование." Альтернативный список задач от Максима Яковлевича Яковлева. Студент может выбирать, из какого списка ему лучше брать первую задачу. Требования к альтернативным задачам те же.
Задачи для второго курса (второе задание на осенний семестр) мех-мат ф-та по курсу "Работа на ЭВМ и программирование." Альтернативный список задач от Максима Яковлевича Яковлева. Студент может выбирать, из какого списка ему лучше брать вторую задачу.
Задачи на Python (на массивы) следует брать из списка задач на массивы первого курса.
Задачи для второго курса на вычислительную геометрию.  Студент может выбирать номер задачи самостоятельно из списка невыбранных задач (согласуя с преподавателем). По желанию студента вместо задачи на вычислительную геометрию студент может выбрать задачу на кеш-множества из альтеративного списка задач от Максима Яковлевича Яковлева. Соответственно, сначала задача должна быть написана на Python (с соответствующими поправками в формулировке задачи), а потом - на C++.
Дополнительные вопросы, которые я люблю задавать на экзамене по курсу "Работа на ЭВМ и программирование." Частично присутствуют ответы.
Несколько слов об интерполяции функций нескольких переменных.
Краткая инструкция по созданию векторных графических файлов в EPS-формате.
Примерный план сдачи задач для второго курса. (третий семестр) Все задачи можно сдавать по почте только в случае, если Вы укладываетесь в сроки, определенные данным планом. Если Вы не уложились в эти сроки, то сдавать задачи надо лично семинаристу на семинарах. При этом семинарист имеет право задавать любые вопросы по задачам и вносить дополнения в задачи в качестве штрафа на просроченную сдачу задач.
Задачи можно сдавать только по порядку. Т.е. нельзя присылать задачу до того, как сдана предыдущая задача.
При сдаче задач у преподавателей создается база данных по всем сданным задачам и происходит сравнение сдаваемой задачи с уже сданными задачами. Попытка сдачи уже сданной кем-то другим задачи карается жесткими административными санкциями.

 

Пособие по программированию в libX11
Краткое описание простейших программ, демонстрирующих программирование под XWindow
Пример1
Пример2
Пример3
Пример4
Пример5
Пример6
Пример7
Пример8
Пример9


Список вопросов для экзамена по курсу Работа на ЭВМ и программироавнию на мех-мат ф-те зимой 2023/2024гг. (вопросы в этом году будут отличаться, но не сильно)
Билеты будут формироваться из приведенных вопросов. В билете будет два вопроса (один по теории и один по языку) и одна задача. Все теоремы/утверждения/леммы надо знать с доказательствами. Вопросы по языку надо уметь объяснять с примерами использования.
Примерный список задач для экзамена по крусу Работа на ЭВМ и программироавние на мех-мат ф-те зимой 2023/2024гг.


Лекции на мех-мат ф-те

Реальные темы, обсуждаемые в курсе "Работа на ЭВМ и программирование" на мех-мат ф-те + некоторые семинары и критерии выставления оценки на экзамене. Внимание! Видео нормально смотрятся в браузерах Chrome, Edge, Internet Explorer. Видео не смотрятся в браузерах Safari, Mozilla Firefox. Все претензии к производителям этих браузеров. В мобильной версии браузера Mozilla Firefox после долгого нажатия на видео можно выбрать другой плеер и видео можно будет смотреть. Сравнить лекции этого года с предыдущими (и примерно понять, что нас ожидает) можно по ссылке.
Лекции по курсу "Работа в ОС UNIX" (ну очень старые...)
Лекции по курсу "Работа на ЭВМ и программирование" . Увы лекции весьма устарели морально. Текущие лекции могут существенно отличаться от этого текста. Но пересечения весьма велики и текст может оказаться весьма полезен.
Конспекты первой половины лекций 2024г. по курсу "Работа на ЭВМ и программирование". Электронная копия книги, вышедшей в издательстве Московского Университета.
Черновики конспектов второй половины лекций 2024г. по курсу "Работа на ЭВМ и программирование". Черновики будут набираться в процессе чтения лекций по мере возможностей и сил.
Вопросы/ответы.
Текст программ сортировки, написанных на лекциях.
Дополнения к курсу "Работа на ЭВМ и программирование." Некоторые темы из данного текста войдут в основной курс.
Краткая справка по Python для работы с последовательностями, массивами и BMP-файлами.
Предельный минимум по OpenMP для первого и второго курсов.
Примеры программ, написанные на лекциях в 2018г. Сортировки, реализации вектора, реализации стека, реализация очереди, реализация приоритетной очереди, реализции L2-списков.
По просьбе студентов выкладываю примеры программ, написанных на лециях (сентябрь 2015г.). Аккуратно написанная программа (под VisualStudio) поиска максимума последовательности целых чисел: основная функция , решающая задачу, include-файл с описанием основной функции и функция main. Картинка одного большого файла с функциями сортировки и с несколькими функциями main(). Наброски некоторых реализаций стека. Наброски реализаций L1- и L2- списков, а также списка с массивом узлов, задающим список свободного места.
По просьбе студентов выкладываю примеры программ , написанных на лециях (ноябрь 2016г.).