Вашему вниманию представляется продолжение гайда по I курсу
- Описание
- Оглавление
- Сокращения
- Гелиос на стероидах
- Веб-программирование (3)
- Теория вероятностей (3)
- Математика (базовый уровень) (3)
- Языки программирования (3)
- Физика (3,4)
- Алгоритмы и структуры данных (4)
- Архитектура компьютера (4)
- Вычислительная математика (4)
- Математическая статистика (4)
- Методы оптимизации (4)
- Основы программной инженерии (4)
- Техники публичных выступлений (4)
- Особая благодарность
Веб
- Веб-программированиеТеорвер
- Теория вероятностейМатан
- Высшая математикаЯП(ы)
- Языки программированияАлгосы
- Алгоритмы и структуры данныхАК
- Архитектура компьютераВычмат
- Вычислительная математикаМатстат
- Математическая статистикаОПИ
- Основы программной инженерии- (легаси)
МИСПИ
- Методы и средства программной инженерии
- (легаси)
ТПВ
- Техники публичных выступленийИЭК
- Инновационная экономика и технологическое предпринимательствоМетопы
- Методы оптимизацииБМС / Модельки
- Бизнес-модели основных секторов инновационной экономики
- Установка и сборка
fish
,oh-my-fish
,neovim
- TODO: Настройка красивых промптов в cli
Postgres
- TODO: Адекватная работа в cli
Postgres
А почему бы не добавить герлянды и свистоперделки на и без того скучный гелиос? Прикольно же :)
touch .bash_profile
он будет запускаться при каждом вашем заходе на гелиос
- используйте редактор
vim
:
vim .bash_profile
- скопируйте данную конфигурацию и вставьте в .bash_profile:
if [ -f "$HOME/.local/bin/fish" ]; then
exec $HOME/.local/bin/fish
fi
export _JAVA_OPTIONS="-Xmx512M -XX:MaxMetaspaceSize=3200m"
export JAVA_VERSION="17.0+"
export JAVA_HOME="/usr/local/openjdk17"
export PATH="$HOME/.local/bin:$PATH"
export PATH="$HOME/neovim/build/bin:$PATH"
curl -LO https://github.com/fish-shell/fish-shell/releases/download/3.6.1/fish-3.6.1.tar.xz
tar -xf fish-3.6.1.tar.xz cd fish-3.6.1
cmake -S . -B build -G "Ninja" -DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=$HOME/.local ninja -C build ninja -C build install
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile source
~/.bash_profile
curl -L https://get.oh-my.fish | fish
echo "exec fish" >> ~/.bash_profile source ~/.bash_profile
omf install lambda
omf theme lambda
вводить прямо так как написано
vim .config/fish/fish_variables
:25
o
SETUVAR fish_greeting:""
esc
:wqa
curl -LO https://github.com/neovim/neovim/archive/refs/tags/stable.tar.gz
tar xzf stable.tar.gz
cd neovim-stable
cd neovim
gmake clean
cmake -S . -B build -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/.local -DMAN_INSTALL_DIR=$HOME/.local/share/man
gmake install
- Например моя конфигурация, но приготовьтесь умереть:
git clone https://github.com/worthant/nvim.git ~/.config/nvim
TODO: создать урезанную сборку неовима для гелиоса
P.S.: Теперь наслаждаетесь тем, что не запустится половина плагинов. Зависит
сильно от вашего конфига, но советую как миниум раза 4 зайти и выйти в неовим,
чтобы, к примеру, lazy.nvim
и mason
проперделись и зарезолвили большую часть
проблем.
- edit
.psqlrc
file
\set VERBOSITY terse
\set QUIET 1
\timing
\pset linestyle unicode
\pset border 2
\setenv CLICOLOR 1
\setenv LESS "-R"
\set PROMPT1 '%M:%[%033[1;31m%]%>%[%033[0m%] %n@%/%R%#%x '
\set PROMPT2 '%M %n@%/%R %# '
Курс веба представляет собой сдачу 4-х лабораторных связанных с разработкой как фронтеда (пользовательского интерфейса), используя базовую связку HTML + CSS + JS и фреймворки react, vue, angular, так и бэкенда (серверной части, обработка запросов от пользователя) используя PHP, Java EE / Spring, JSP.
Important
Не забывайте согласовывать требования с вашим практиком. Если в выполненной лабораторной что-то отличается от того, что говорит ВАШ практик - это нормально. Адаптируйтесь, на работе очень пригодится.
Теперь рассмотрим каждую лабораторную отдельно, кратко опишем основные моменты, чтобы было понятно что вас ждёт и на что стоит обратить внимание:
(HTML + CSS + JS) + (PHP)
Надо сверстать простой сайтик, назначение которого - небольшая игра. Попал ты точкой в координатную плоскость или промахнулся.
-> Подробное описание с выполненным вариантом
-> Гайд на деплой, теор.вопросы se.ifmo
-> Гайд на поднятие httpd сервера на helios
Имхо: ничего зазорного в чтении гайда для educational purposes нету. Но лучше не опирайтесь на то, что в нём написано - перепроверяйте информацию и сами всё ресёрчите. Условный MDN docs более авторитетен :D
TODO: добавить showcase - гифку
- Кратко то, что нужно сделать: Рисуем график, табличку, а в заголовке сайта пишем своё ФИО, по нажатию отправляем запрос на PHP веб-сервер с координатами тыка, а сервер проверяет попадание и возвращает ответ. По сути в лабе требуется полный SSR, т.е. веб-сервер должен вернуть табличку, или строчку в таблице. Как практика норм, но это оверхед на ровном месте, поэтому если практик позволит, можете просто вернуть с сервера json {координаты + true/false}, а потом на клиентской части с помощью javascript это удобно отрисовать. Это спойлер, потому что в последующих лабах так и будете делать.
(HTML + CSS + JS) + (Servlets + JSP)
(CSS + JSF) + (JSF) + (ORM: Hibernate/Eclipse Link)
JSF - зло, намучаетесь жесть. Если повезёт и аккуратно пройдёте по протоптанной дорожке, то лаба делается супер-быстро. Зло в том что это старый фуллстак фреймворк для веб-приложений. Лютое легаси, отвратительные доки, половина встроенных вещей может просто не работать, потому что так надо и их придётся обходить костыльными путями - будут конфликты устаревших версий пакетов, рандомные ошибки и всё тому прочее. Материалы ниже были созданы в попытках сохранить драгоценное время и нервы студентов:
-> Видос с демонстрацией ёбнутой лабы (если есть много свободного времени)
-> Полностью задокументированный рабочий шаблон для быстрого старта
-> Защищённая на фулл лаба (RU/EN):
= легко поднять в докере / гайд деплоя на гелиос
= ссылки на разбор теории + полезные материалы
= описание / требования
Important
Имхо: вообще неважно как вы тут выкрутитесь - главное найдите способ завести лабу, и сделайте так чтобы было очень сложно её положить. Если этого добьётесь - лаба сдана, больше ничего не надо. Чем меньше придётся работать с этим говном - тем лучше :)
(React/Vue/Angular) + (Spring/Jakarta EE) + (Hibernate/Eclipse Link)
Кто бы что ни говорил, тут всё равно что вам попадётся - лаба приятная, потому что относительно новые фреймворки, нет конфликтов зависимостей и вас никто не будет ограничивать. А также у многих практиков можно выпросить желаемый стэк. И если фронтовый фреймворк достаточно просто, то на бэке могут дать Java EE и сказать что всё, иди пиши :)
-> Демонстрация конченной лабы, если у вас нет личной жизни
(все ссылки на исходники в описании)
Имхо: неважно у вас Java EE / Spring. Многим нравится спринг потому что он простенький, и потому что на нём работы много. Я писал на Java EE, и хоть сначала и плевался, со временем понял что фреймворк буквально проще спринга во всём, и в этом его огромное преимущество. Придётся ручками написать большую часть бэка, но это компенсируется тем что Java EE простая как пробка и в отличие от спринга - на защите вам тоже должно быть сильно легче.
Important
Учтите, что всех ждёт рубежка, на которой может попасться как java EE, так и Spring и любой фронтовый фреймворк, поэтому учить надо в любом случае всё, даже если практик будет вас спрашивать лояльно. Поэтому при написании лабы на Java EE, Spring MVC никто не отменял :D
Способов на самом деле много, я делал хостинг фронта на github pages и бэка на гелиосе, а сайт был доступен через мой домен. Поэтому domain.com/api форвардился на гелиос, а domain.com показывал фронт сайта, который раздавался бесплатным хостингом github pages. Это сложный варик, но мне его одобрил практик. Бэк надо в любом случае хостить на гелиосе - это дурацкое требование, но оно есть и никуда вы не денетесь, учитите.
TODO тут надо написать про vite, npm, относительные пути, чтоб лаба работала на se.ifmo, по-хорошему и другие сборщики в единый index.html файл
TODO: ссылки на разборы рубежки, вопросы и варики рубежки
Курс теорвера представляет собой написания КР, небольших лаб. Основные темы: Среднеквадратическое отклонение, Дисперсия, Математическое ожидание, коэффициент стьюдента, проверка нулевой гипотезы и тд. Рекомендую делать решаторы так как в следующем семе будет всё буквально то же самое на курсе матстата. Курс ведут два преподавателя: Селина и Кудашов, так что ваше обучение зависит от того к кому ваша группа попадёт
С долгами лучше не оставаться и как следствие пропускать пары, так как в противном случае придётся сдавать лабораторные вместе со всем потомком и очередью из 100+ человек, в то время как скорость очереди около 10-15 минут на человека. На лекции можно не ходить, так как они добавляют не значительные 3 балла, которые по сути бесполезны, так как закрывая все ключевые точки вовремя вы с большой долей вероятности получите зачёт.
TODO возможно доделать описание, добавить ссылки на сливы кр, эксель таблички-решаторы лаб, в идеале наверное вспомнить все лабы и написать их список
Прикольный чел, забавный. К нему лучше приходить с хорошим настроением и немного подготовленным, чтобы выходить к доске, отвечая на достаточно простые вопросы и получая плюсики. Если будете чуть готовиться к каждой паре, курс пиво, но учтите что лучше всю теорию хоть немного понимать, потому что потом будет мат.стат, как и было сказано выше.
TODO тут если честно не знаю что писать и надо ли, учитывая что у нас другая математика нежели у них. // тру, пока так оставим
Тяжелый предмет. Дистанционный. Антиплагиат. Требует написания программ на
ассемблере и С. Так же требуется небольшие знания Git
(GitLab
)
TODO найти гайд по регистрации на гитлабе // камон бля, зайти на сайт, ввести логин/пароль
TODO найти гайд по установки виртуалки // проще по факту прийти на первый семинар и всё поставить, он лютое пиво
Important
Лично я рекомендую поставить заранее линукс на дуал бут, потому что курс супер-интересный, семинары не сложные и вас всему научат и если что помогут, пользоваться линуксом, если стоят условные KDE/Gnome/другие гуи не сложно, но работать на семинарах будет сильно приятнее. Рекомендую поставить linux fedora и проблем вообще не должно быть, с убунтой будьте аккуратны, были у кого-то проблемы на последних семинарах. Если хотите пуститься во все тяжкие - ставьте neovim, в нём есть классный дебаггер
TODO Возможно не требуется разбития на лабы здесь, так как всю нужную информацию можно найти на гитлабе, где и стырить лабу у другого студента // В целом согласен, можно написать что этот курс даёт дохрена крутых возможностей - от навыков код ревью до работы на низком уровне с программами и их дебагом. Но описания лаб как будто бы за нас Жирков лучше сделал
Input/Output library in assembly
Dictionary in assembly
Image rotation
Memory allocator
Sepia filter + ускорение через SSE инструкции
Пока кратко - оба семестра нереально пивные. Больше всего баллов приносит работа на практиках, которая интересная и не особо замысловатая, а также ответы на вопросы на лекциях.
Имхо: курс по уровню сложности ниже чем у многих было в школе, но на него интересно ходить, потому что это простые применения физики в реальной жизни - закрепите что уже знаете, либо изучите что-то новое. Отдельно было весело во втором семестре моделировать векторные поля для различных ситуаций, например нагреве фигуры необычной формы, физический смысл ротора и дивергенции на примере течений и завихрений в озёрах с проточным течением. Будет связь с музыкой и задачки на колебания, обычные задачки на грузики на пружинках, лекции про разработку промышленных устройств, будете готовить доклады про выбранные устройства или технологии. На лекциях частенько будет демонстрация физических опытов, поэтому рекомендую ходить просто ради интереса.
Стот мало баллов. Если хорошо решите, ну может 5 баллов поставят, но по сути можно скипать или не писать и вообще побоку, экз всё решает в любом случае потому что весит 40 баллов. Задачи из рубежки - те же задачи с практик + дополнительные. Половина минимум из рубежки будет в экзамене.
Important
на практиках будете решать задачи - они не сложные, но рекомендую все конспектировать и разбирать, потому что потому 1 в 1 будут на экзамене.
Экз - просто билеты заботайте и пиво. Их не мало, но и не сильно много, половина как минимум скорее всего уже есть в голове со школы. Сначала получаете одну задачу из обязательного списка и решаете её перед преподом. Это задачи которые вы решали на практике, и они будут ещё раз разобраны накануне самого экзамена, поэтому просто не проморгайте и допуск к экзамену у вас в кармане. Затем вам дадут уже нормальные задачи и будете сидеть их решать. Как решите - тяните теор.билет, или сам препод вам его называет и потом его рассказываете. Обычный экз, достаточно простой.
// алёёёёё гайз
Пока напишу коротко, как наполнение:
Все лекции в записи, будут лежать на диске. Материал лекций классный, многому научит, особенно тех, кто так себе шарит за алгосы и хочет научиться.
Закрыться на 3 можно с закрытыми глазами, без рук и вообще доступа в интернет. На 4C надо решить 14 из 16 задач с Яндекс контеста. Даже если вы очень слабый студент - не переживайте. Есть задачи которые заставят поломать мозг, может даже неделю с лишним, но у вас весь семестр, а задач надо всего 14. Часть из них вообще не на алгосы, а на умение разрабатывать свой язык из курса АК (привет задача на написание менеджера памяти и на парсер).
Warning
Не относитесь халатно к этому курсу, не пропускайте дедлайнов и согласовывайте темы докладов заранее. Может прозвучать душно, но потом просто не будет дороги назад и вы окажетесь в очень неприятной ситуации, которую можно было бы избежать, не применив слишком много усилий
В целом ggwp. Один из самых крутых курсов с точки зрения образования. С точки зрения закрытия - если организуетесь, не пропустите дедлайны, всё будете делать в срок и хорошо, то курс спокойно закрывается на 3-4 без экза. На 5 без экза надо нормально сделать 3 лабу, тут уже у кого на что сил хватит и смотря как стоят приоритеты.
Курс +- пивной. Это не алгосы, АК или ОПИ. Но времени займёт предостаточно, а если будете сильно нарушать дедлайны то можно и проблем огрести в конце сема, не советую.
Надо сделать 5 лаб и написать 2 рубежки. Если закрываете все лабы до какого-то дедлайна, у нас было до мая, тогда всё остальное автоматом.
Note
Как обычно вместо личной жизни я ёбнулся, поэтому вот вам репа. Все лабы я делал в латехе, поэтому шаблоны легко взаимозаменяемы, а вот код писал на плюсах, тут уже на любителя.
Каждая лаба это какой-то вычислительный метод - его нужно заботать, нарисовать диаграмку последовательности, которая будет полноценно описывать работу метода, а также его запрограммировать и подготовить хороший отчёт. За все маленькие помарки снижают баллы, но даже если вам по 50% будут снимать - их хватит :)
Лабы по вариантам, но методов буквально по пальцам пересчитать, поэтому вам точно будут попадаться одинаковые половине группы.
Warning
На курсе есть антиплагиат и если вас за это уличат, то поминай как звали. Поэтому все эти материалы строго для первичного ознакомления в образовательных целях - копировать и вставлять не думая не стоит. Но переиспользовать для себя можно :)
- <T>
- worthant
- TsenekovIT