CAOS-2021 — различия между версиями
(→Важные ссылки: стайлгайд) |
Romaha (обсуждение | вклад) м (Добавлена ссылка на материалы 204 группы) |
||
(не показано 18 промежуточных версии 4 участников) | |||
Строка 1: | Строка 1: | ||
− | |||
== Важные ссылки == | == Важные ссылки == | ||
+ | [[CAOS-2021/Exam|Информация про экзамен]] | ||
[https://caos.myltsev.ru Вход в Ejudge] | [https://caos.myltsev.ru Вход в Ejudge] | ||
Строка 56: | Строка 56: | ||
<br /> | <br /> | ||
[https://github.com/olegartys/hse_caos_208 GitHub семинаров 208 группы] | [https://github.com/olegartys/hse_caos_208 GitHub семинаров 208 группы] | ||
+ | <br /> | ||
+ | [https://github.com/kurynin/hse.caos.2021-2022.practice GitHub семинаров 204 группы] | ||
= Преподаватели и учебные ассистенты = | = Преподаватели и учебные ассистенты = | ||
Строка 99: | Строка 101: | ||
| БПМИ209 | | БПМИ209 | ||
| [https://www.hse.ru/org/persons/307352167 Сергей Горшков] | | [https://www.hse.ru/org/persons/307352167 Сергей Горшков] | ||
− | | [https://t.me/Egor_Gutrov Егор Гутров], [https://t.me/ | + | | [https://t.me/Egor_Gutrov Егор Гутров], [https://t.me/Sm_Anastassya Анастасия Смородинникова] |
|- | |- | ||
| БПМИ2010 | | БПМИ2010 | ||
Строка 113: | Строка 115: | ||
= Полезная информация = | = Полезная информация = | ||
+ | |||
+ | ===Материалы=== | ||
+ | |||
+ | [https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 '''Конспекты от студентов курса'''] | ||
+ | |||
+ | Конспекты от студентки курса: https://curious-sailor-21e.notion.site/3c09a4793eb04e869529c600a33ebc99?v=55c0a11de5164509900fcc92ad7415e4 | ||
+ | |||
+ | ===Слайды с лекций=== | ||
+ | * 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 ОЗУ и кеши]. | ||
+ | |||
+ | ===Как устроен курс=== | ||
+ | Курс идёт три модуля, со второго по четвёртый. Раз в неделю читается две лекции, после них, как правило, выдаётся ДЗ — 5 задач начальной стоимостью 100 баллов каждая. В общем случае, штраф за неверную посылку - 1 балл (но лучше ориентироваться на Run penalty). | ||
+ | |||
+ | Дедлайны: через 2 недели после лекции (23:59:59 четверга) стоимость задач уменьшается до 50 баллов, ещё через 2 недели — до 20 баллов. Такая стоимость остаётся до конца курса. | ||
+ | |||
+ | Примерно раз в три недели вместо одной из лекций происходит контрольная. | ||
+ | |||
+ | За работу на семинарах преподаватель выставляет семинарские баллы на своё усмотрение. Можно посещать семинары любых групп в любом количестве. За каждую неделю (от лекции до лекции) студент может получить в совокупности не более 200 семинарских баллов. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Набрано баллов !! Накопленная оценка | ||
+ | |- | ||
+ | | 0 || 1 | ||
+ | |- | ||
+ | | 1500 || 2 | ||
+ | |- | ||
+ | | 2500 || 3 | ||
+ | |- | ||
+ | | 4500 || 4 | ||
+ | |- | ||
+ | | 7000 || 5 | ||
+ | |- | ||
+ | | 9500 || 6 | ||
+ | |} | ||
+ | |||
+ | Шкала оценок 6..10 устроена следующим образом: берётся максимальный суммарный балл <em>max=17776</em> за решение ДЗ и КР (без бонусов), набранный хотя бы одним студентом. Диапазон <em>score_range</em> = 9500..17776 разбивается на 5 градаций [T6, T7, T8, T9, T10], каждая шириной в (<em>max</em> - 9500) / 5 баллов. | ||
+ | |||
+ | Накопленная оценка выставляется так. Для каждого студента берётся полная сумма баллов <em>personal_sum</em> с учётом ДЗ (включая бонусные), КР и семинарские баллы. | ||
+ | * Если <em>personal_sum</em> меньше 9500, то в соответствии с таблицей выставляется оценка 1..5. | ||
+ | * Если <em>personal_sum</em> попадает в интервал <em>score_range</em>, то выставляется оценка соответствующей градации. | ||
+ | * Иначе выставляется накопленная оценка 10. | ||
+ | |||
+ | 24 июня будет экзамен сразу по всему курсу. Итоговая оценка вычисляется как (0.4 × зкзамен + 0.6 × накоп). Перед экзаменом будет объявлен порог накопленных баллов, выше которого студент имеет право автоматом получить накопленную оценку как итоговую и не приходить на экзамен. Ожидается, что порог будет около оценки 8, но это не точно. | ||
+ | |||
+ | = Настройка рабочего окружения = | ||
===Виртуальная машина (VirtualBox)=== | ===Виртуальная машина (VirtualBox)=== | ||
Строка 118: | Строка 168: | ||
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo. | Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo. | ||
− | |||
− | |||
− | |||
− | |||
===Виртуальная машина (qemu)=== | ===Виртуальная машина (qemu)=== | ||
Строка 158: | Строка 204: | ||
:- выбрав в меню <code>View->Full Screen</code> | :- выбрав в меню <code>View->Full Screen</code> | ||
− | === | + | ===Получение доступа к учебному серверу=== |
+ | Если не получается настроить виртуальную машину (например, на Mac M1), то можно получить доступ к учебному серверу по ssh. Для этого необходимо сгенерировать ssh-ключ и заполнить [https://forms.gle/daPEGUMz9pajpb1F9 Google-форму]. | ||
+ | |||
+ | Инструкции по генерации ssh-ключа: [https://git-scm.com/book/en/v2/Git-on-the-Server-Generating-Your-SSH-Public-Key от git-scm], [https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent от github]. | ||
+ | |||
+ | ===Библиотека ввода-вывода=== | ||
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S] | Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S] | ||
Внутри виртуальной машины её можно скачать командой <code><nowiki>wget https://caos.myltsev.ru/simpleio_i686.S</nowiki></code> | Внутри виртуальной машины её можно скачать командой <code><nowiki>wget https://caos.myltsev.ru/simpleio_i686.S</nowiki></code> | ||
− | + | Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: <code><nowiki>sudo apt install wget</nowiki></code> | |
− | === | + | ===Docker для пользователей MacOS (intel based)=== |
− | + | '''Проверялось на MacOS BigSur и Monterey''' | |
− | + | Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык] | |
− | + | Команда для запуска: <code><nowiki>docker run -it --rm -v `pwd`:/caos -w /caos ubuntu</nowiki></code> | |
− | + | В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. | |
+ | Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там. | ||
+ | |||
+ | Внутри контейнера стоит установить gcc-multilib, без неё не заведётся <code><nowiki>apt update && apt install -y gcc-multilib</nowiki></code> | ||
− | + | Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал. | |
− | + | ||
− | + | Если будут трудности, то можно писать [https://t.me/thomasparovoz мне в тг], постараюсь помочь. | |
− | + | ||
− | + | ===Установка Clion в Linux-подобные системы=== | |
− | + | '''Проверялось на Ubuntu 20.04.03 LTS и 21.10''' | |
− | + | ||
− | + | Я рекомендую устанавливать в Linux системы IDE от Jetbrains через их утилиту Jetbrains Toolbox, чтобы было проще в дальнейшем обновляться. | |
− | + | ||
− | + | Предварительно надо установить Curl, если вы этого не сделали ранее: <code><nowiki>sudo apt install curl</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>./jetbrains-toolbox</nowiki></code> | |
− | + | ||
+ | Теперь установим всё необходимое, чтобы у нас нормально работал Clion после установки: | ||
+ | :- <code><nowiki>sudo apt-get install build-essential</nowiki></code> | ||
+ | |||
+ | :- <code><nowiki>sudo snap install cmake --classic</nowiki></code> | ||
− | + | Далее нужно установить оттуда Clion и авторизоваться в нём, интерфейс утилиты дружелюбный и интуитивно понятный. | |
− | + | Если будут трудности, то можно писать [https://t.me/thomasparovoz мне в тг], постараюсь помочь. |
Текущая версия на 22:36, 29 июня 2022
Содержание
Важные ссылки
Чаты групп
Группа | 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 группы
GitHub семинаров 204 группы
Преподаватели и учебные ассистенты
Группа | Семинарист | Ассистенты |
---|---|---|
БПМИ201 | Александр Мыльцев | Наби Гитинов, Игорь Балюк |
БПМИ202 | Игорь Минеев | Владислав Хохлов |
БПМИ203 | Раиль Чабдаров | Шамиль Аюпов, Александр Шитов |
БПМИ204 | Роман Курынин | Никита Насонков, Иван Лущ |
БПМИ205 | Алексей Сальников | Александр Богданов, Даниил Рубин |
БПМИ206 | Юрий Баранов | Вячеслав Бобень, Михаил Стецюк |
БПМИ207 | Михаил Филитов | Вадим Дудкин, Александр Стрыгин |
БПМИ208 | Олег Лёвин | Алиса Вернигор, Кирилл Ахметшин |
БПМИ209 | Сергей Горшков | Егор Гутров, Анастасия Смородинникова |
БПМИ2010 | Александр Раков | Адильхан Кусиденов, Ульяна Виноградова |
Распределение студентов
Распределение студентов по учебным группам
Форма для желающих пройти курс в роли вольнослушателей.
Полезная информация
Материалы
Конспекты от студентки курса: https://curious-sailor-21e.notion.site/3c09a4793eb04e869529c600a33ebc99?v=55c0a11de5164509900fcc92ad7415e4
Слайды с лекций
- 10 декабря:
Как устроен курс
Курс идёт три модуля, со второго по четвёртый. Раз в неделю читается две лекции, после них, как правило, выдаётся ДЗ — 5 задач начальной стоимостью 100 баллов каждая. В общем случае, штраф за неверную посылку - 1 балл (но лучше ориентироваться на Run penalty).
Дедлайны: через 2 недели после лекции (23:59:59 четверга) стоимость задач уменьшается до 50 баллов, ещё через 2 недели — до 20 баллов. Такая стоимость остаётся до конца курса.
Примерно раз в три недели вместо одной из лекций происходит контрольная.
За работу на семинарах преподаватель выставляет семинарские баллы на своё усмотрение. Можно посещать семинары любых групп в любом количестве. За каждую неделю (от лекции до лекции) студент может получить в совокупности не более 200 семинарских баллов.
Набрано баллов | Накопленная оценка |
---|---|
0 | 1 |
1500 | 2 |
2500 | 3 |
4500 | 4 |
7000 | 5 |
9500 | 6 |
Шкала оценок 6..10 устроена следующим образом: берётся максимальный суммарный балл max=17776 за решение ДЗ и КР (без бонусов), набранный хотя бы одним студентом. Диапазон score_range = 9500..17776 разбивается на 5 градаций [T6, T7, T8, T9, T10], каждая шириной в (max - 9500) / 5 баллов.
Накопленная оценка выставляется так. Для каждого студента берётся полная сумма баллов personal_sum с учётом ДЗ (включая бонусные), КР и семинарские баллы.
- Если personal_sum меньше 9500, то в соответствии с таблицей выставляется оценка 1..5.
- Если personal_sum попадает в интервал score_range, то выставляется оценка соответствующей градации.
- Иначе выставляется накопленная оценка 10.
24 июня будет экзамен сразу по всему курсу. Итоговая оценка вычисляется как (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 и авторизоваться в нём, интерфейс утилиты дружелюбный и интуитивно понятный.
Если будут трудности, то можно писать мне в тг, постараюсь помочь.