CAOS-2021 — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
м (Слайды с лекций)
(не показаны 3 промежуточные версии 2 участников)
Строка 116: Строка 116:
 
===Материалы===
 
===Материалы===
 
Конспекты от студента курса: https://www.notion.so/2-4-0f236f7d03c74dfbbd945f93651758a2
 
Конспекты от студента курса: https://www.notion.so/2-4-0f236f7d03c74dfbbd945f93651758a2
 +
 +
===Слайды с лекций===
 +
* 10 декабря:
 +
** [https://caos.myltsev.ru/lectures/lecture-2021-12-10.pdf Динамическая память в Си].
 +
** [https://github.com/blackav/hse-caos-2020/blob/master/00-lectures/11-memory/lecture11.pdf ОЗУ и кеши].
  
 
===Как устроен курс===
 
===Как устроен курс===
Строка 224: Строка 229:
 
Предварительно надо установить Curl, если вы этого не сделали ранее: <code><nowiki>sudo apt install curl</nowiki></code>
 
Предварительно надо установить Curl, если вы этого не сделали ранее: <code><nowiki>sudo apt install curl</nowiki></code>
  
Для этого переходим в терминале в домашнюю папку и выполняем установку следующей командой под sudo правами:
+
Для этого переходим в терминале в домашнюю папку и выполняем установку следующими командами:
 
:- <code><nowiki>curl -fsSL https://raw.githubusercontent.com/nagygergo/jetbrains-toolbox-install/master/jetbrains-toolbox.sh | bash</nowiki></code>
 
:- <code><nowiki>curl -fsSL https://raw.githubusercontent.com/nagygergo/jetbrains-toolbox-install/master/jetbrains-toolbox.sh | bash</nowiki></code>
 
:- <code><nowiki>cd /opt/jetbrains-toolbox</nowiki></code>
 
:- <code><nowiki>cd /opt/jetbrains-toolbox</nowiki></code>

Версия 17:30, 10 декабря 2021


Важные ссылки

Вход в Ejudge

Телеграм-канал с объявлениями

Телеграм-чат курса

Лекции и семинары на Ютюбе

Стайлгайд для языка Си

Форма для фидбека

Чаты групп

Группа Telegram-чат
БПМИ201 https://t.me/joinchat/LnOwQ-Z6HAo2OTg6
БПМИ202 https://t.me/joinchat/OMRB-ZOwXXBhODBi
БПМИ203 https://t.me/joinchat/kyFY_eIp60cyODRi
БПМИ204 https://t.me/joinchat/RTey5l_q9LMyODIy
БПМИ205 https://t.me/joinchat/jw2Z5v5R0Es3OTli
БПМИ206 https://t.me/joinchat/eH0j31yf0QZkNGIy
БПМИ207 https://t.me/joinchat/pVQNC9kwwfFiYWRi
БПМИ208 https://t.me/joinchat/C7Wj_Cz-swUzZDEy
БПМИ209 https://t.me/joinchat/cuqnvg2qofYyOTky
БПМИ2010 https://t.me/joinchat/gyvWlC31TZ83NmNi

Страница семинаров 207 группы
GitHub семинаров 208 группы

Преподаватели и учебные ассистенты

Группа Семинарист Ассистенты
БПМИ201 Александр Мыльцев Наби Гитинов, Игорь Балюк
БПМИ202 Игорь Минеев Владислав Хохлов
БПМИ203 Раиль Чабдаров Шамиль Аюпов, Александр Шитов
БПМИ204 Роман Курынин Никита Насонков, Иван Лущ
БПМИ205 Алексей Сальников Александр Богданов, Даниил Рубин
БПМИ206 Юрий Баранов Вячеслав Бобень, Михаил Стецюк
БПМИ207 Михаил Филитов Вадим Дудкин, Александр Стрыгин
БПМИ208 Олег Лёвин Алиса Вернигор, Кирилл Ахметшин
БПМИ209 Сергей Горшков Егор Гутров, Ваге Оганнисян
БПМИ2010 Александр Раков Адильхан Кусиденов, Ульяна Виноградова

Распределение студентов

Распределение студентов по учебным группам

Форма для желающих пройти курс в роли вольнослушателей.

Полезная информация

Материалы

Конспекты от студента курса: https://www.notion.so/2-4-0f236f7d03c74dfbbd945f93651758a2

Слайды с лекций

Как устроен курс

Курс идёт три модуля, со второго по четвёртый. Раз в неделю читается две лекции, после них, как правило, выдаётся ДЗ — 5 задач начальной стоимостью 100 баллов каждая. В общем случае, штраф за неверную посылку - 1 балл (но лучше ориентироваться на Run penalty).

Дедлайны: через 2 недели после лекции (23:59:59 четверга) стоимость задач уменьшается до 50 баллов, ещё через 2 недели — до 20 баллов. Такая стоимость остаётся до конца курса.

Примерно раз в три недели вместо одной из лекций происходит контрольная.

За работу на семинарах преподаватель выставляет семинарские баллы на своё усмотрение. Можно посещать семинары любых групп в любом количестве. За каждую неделю (от лекции до лекции) студент может получить в совокупности не более 200 семинарских баллов.

Набрано баллов Накопленная оценка
500 1
1500 2
2500 3
4500 4
7000 5
9500 6

Оценки 7-10 выставляются по линейной шкале с учётом максимального количества набранных баллов за решение задач.

В июне будет экзамен сразу по всему курсу. Итоговая оценка вычисляется как (0.4 * зкзамен + 0.6 * накоп). Перед экзаменом будет объявлен порог накопленных баллов, выше которого студент имеет право автоматом получить накопленную оценку как итоговую и не приходить на экзамен. Ожидается, что порог будет около оценки 8, но это не точно.

Настройка рабочего окружения

Виртуальная машина (VirtualBox)

Образ виртуальной машины

Рекомендуется скачать образ и установить его в эмулятор VirtualBox. Логин-пароль xubuntu/xubuntu, можно делать sudo.

Виртуальная машина (qemu)

Проверялось только на MacOS 11.6.1.

  • Установите qemu: brew install qemu
  • Загрузите и распакуйте архив с образом FS:
wget -O xubuntu_caos_2021.qcow2.tar.gz https://caos.myltsev.ru/xubuntu_caos_2021.qcow2.tar.gz && \
        tar zxvf xubuntu_caos_2021.qcow2.tar.gz
  • Запустите VM:
QEMU_PATH=/usr/local/Cellar/qemu/6.1.0_1/bin/qemu-system-x86_64
FS_IMAGE_PATH=xubuntu_caos_2021.qcow2

CPU_COUNT=2
MEMORY_MB=2048

${QEMU_PATH} \
	-smp ${CPU_COUNT} \
	-m ${MEMORY_MB} \
	-name xubuntu_caos_2021 \
	-hda ${FS_IMAGE_PATH} \
	-accel hvf \
	-vga virtio \
	-display default,show-cursor=on \
	-usb \
	-device usb-tablet

Отобрать курсор у QEMU: Ctrl+Alt+G
Перейти в full-screen mode можно:

- передав опцию --full-screen при старте VM
- выбрав в меню View->Full Screen

Получение доступа к учебному серверу

Если не получается настроить виртуальную машину (например, на Mac M1), то можно получить доступ к учебному серверу по ssh. Для этого необходимо сгенерировать ssh-ключ и заполнить Google-форму.

Инструкции по генерации ssh-ключа: от git-scm, от github.

Библиотека ввода-вывода

Библиотека ввода-вывода для ассемблера x86: simpleio_i686.S

Внутри виртуальной машины её можно скачать командой wget https://caos.myltsev.ru/simpleio_i686.S

Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: sudo apt install wget

Docker для пользователей MacOS (intel based)

Проверялось на MacOS BigSur и Monterey

Загрузить сам докер можно отсюда: тык

Команда для запуска: docker run -it --rm -v `pwd`:/caos -w /caos ubuntu

В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.

Внутри контейнера стоит установить gcc-multilib, без неё не заведётся apt update && apt install -y gcc-multilib

Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.

Если будут трудности, то можно писать мне в тг, постараюсь помочь.

Установка Clion в Linux-подобные системы

Проверялось на Ubuntu 20.04.03 LTS и 21.10

Я рекомендую устанавливать в Linux системы IDE от Jetbrains через их утилиту Jetbrains Toolbox, чтобы было проще в дальнейшем обновляться.

Предварительно надо установить Curl, если вы этого не сделали ранее: sudo apt install curl

Для этого переходим в терминале в домашнюю папку и выполняем установку следующими командами:

- curl -fsSL https://raw.githubusercontent.com/nagygergo/jetbrains-toolbox-install/master/jetbrains-toolbox.sh | bash
- cd /opt/jetbrains-toolbox
- ./jetbrains-toolbox

Теперь установим всё необходимое, чтобы у нас нормально работал Clion после установки:

- sudo apt-get install build-essential
- sudo snap install cmake --classic

Далее нужно установить оттуда Clion и авторизоваться в нём, интерфейс утилиты дружелюбный и интуитивно понятный.

Если будут трудности, то можно писать мне в тг, постараюсь помочь.