Imtjl / 1st-year-guide

:scroll: Guide for 1st year ITMO VT students / Гайд для студентов 1 курса ИТМО ВТ
Apache License 2.0
87 stars 6 forks source link

Гайд по I курсу 🐣

Описание

Вашему вниманию представляется сборник мануалов и гайдов по первому курсу ВТ. Была проделана большая работа как тех, кто находил эту информацию, так и тех, кто структурировал, оформлял и объеденял в один источник. Мы старались :smile:

Первокурсники, пользуйтесь с умом и всем хороших оценок!)

Оглавление

Общая информация

Если вы читаете этот гайд, значит вы поступили на такие факультеты как: Cистемное и прикладное программное обеспечение (СППО), Информатика и вычислительная техника (ИВТ), Нейротехнологии и программирование (Нейротех), факультет Систем управления и робототехники (СУИР) и другие. Как только вы узнали о поступлении следует идти по следующим шагам:

Система оценивания:

Устройство университета

Пояснения и расшифровки

- **ВТ**: раньше была кафедра Вычислительной Техники, вместо которой сейчас факультет ПИиКТ. Употребляется ВТ заместо СППО или ИВТ. - **ИВТ**: "Информатика и вычислительная техника" (09.03.01) - **СППО**: "Cистемное и прикладное программное обеспечение" (09.03.04) - **Нейротех**: "Нейротехнологии и программирование" (09.03.04) - **СУИР**: факультет Систем управления и Робототехники. Часто спрашивают, т.к. существует используемый многими первашами перевод с конкретных направлений СУИРа на ВТ. - **КТ (ПМИ)**: "Прикладная математика и информатика" (01.03.02) - **ИС (ИСиТ, ~~β-версия КТ~~)**: "Информационные системы и технологии" (09.03.02)

graph TD;
  ИТМО-->мф.КТиУ;
  ИТМО-->мф.ТИнТ;
  ИТМО-->мф.НОЖ;
  ИТМО-->ФТмф;

  мф.КТиУ-->ф.ПИиКТ;
  мф.КТиУ-->ф.СУИР;
  мф.КТиУ-->ф.БИТ;
  мф.КТиУ-->ц.ХИ;

  ф.ПИиКТ-->ИВТ;
  ф.ПИиКТ-->Нейротех;
  ф.ПИиКТ-->Дизайн;
  ф.ПИиКТ-->СППО;

  ц.ХИ-->Биоинж

  мф.ТИнТ-->ф.ИТиП
  мф.ТИнТ-->ф.ИкТ

  ф.ИТиП-->ПМИ;
  ф.ИТиП-->ИСиТ;
  ф.ИкТ-->Мобилки;
  ф.ИкТ-->ПвИС;
  ф.ИкТ-->ИСвГС;

  мф.НОЖ-->ф.БиоТех;
  мф.НОЖ-->ХБк;
  мф.НОЖ-->НОЦ;
  мф.НОЖ-->ф.ЭиЭ;

  НОЦ-->Инфохим;

  ФТмф-->Фф;
  ФТмф-->и.ЛТ;
  ФТмф-->ИФф;
  ФТмф-->ФизФ;

  и.ЛТ-->Лазеры;

Сокращения, сленг и ссылки

Предметы

Корпуса университета

Подробно и наглядно можно посмотреть тут

Общежития

Подробно и наглядно можно посмотреть тут

Сайты


Прочее

Сборник полезных источников

Пояснения к иконкам

- - курс по базам данных - - курс по ЯПам - - курс по вышмату - - курс по дискретной математике - - курс по информатике - - курс по программированию на java - - курс по КИКу - - курс по БЖД - - курс по ОПД - - курс по веб-программированию - - курс по философии - - курс по физике

P.S. сортировка содержимого по релевантности слева->направо

источник содержимое (иконки кликабельны)
worthant
Black Rider
Zerumi
maxbarsukov
https://notesitmo.github.io/cse-notes/first-course/firstcourse.html
\<T>
Roman Vassilchenko
Kamil
https://picloud.pw/cloud/ экземпляры лаб прошлых лет; ответы на ЦДО;
https://github.com/Roggired/ITMO Репозиторий с общей информацией по проге и опд. Там же можете найти требования к лабам, к отчетам (пример отчета), и всякие другие полезные вещи.

Гелиус

Все работы нужно загружать на этот сервер, они должны на нём полностью функционировать, если это требуется.
Сделано это для того, чтоб все были в равных условиях и вы могли попрактиковать bash и взаимодействие с сервером. P.S. - на сервере стоит ось FreeBSD

Подключение и загрузка файлов

### Авторизация в [se.ifmo.ru](https://se.ifmo.ru/) - Логин: `sТабельныйНомер` (далее `sXXXXXX`) - Пароль: [se.ifmo.ru/passwd](http://se.ifmo.ru/passwd) (далее `PASSWD`) ### Подключение через консоль (powershell, bash, zsh, e.t.c) ```bash На выбор: 1. ssh -p 2222 sXXXXXX@helios.cs.ifmo.ru 2. ssh sXXXXXX@helios.se.ifmo.ru -p 2222 3. ssh sXXXXXX@se.ifmo.ru -p 2222 ``` ### Загрузка файлов через консоль (powershell, bash, zsh, e.t.c) ```bash scp -P 2222 FileForUpload.java sXXXXXX@helios.se.ifmo.ru:DirectoryToUpload ``` - Пример загрузки файла README.md в вашу корневую директорию sXXXXXX: ```bash scp -P 2222 README.md sXXXXXX@se.ifmo.ru:. ``` ### Создание `.bat` - файла для авто-подключения к серверу (консоль + для загрузки файлов) Уже готовый архив со всем необходимым для подключения можно скачать [здесь](https://205826.github.io/auto_connect_gelius.zip) > Никаких дополнительных программ для работы не нужно скачивать, следует лишь отредактировать `.bat` - файлы, написав свой `логин` и `пароль` Пример содержания такого файла: ```powershell rem PuTTY start "" "putty_portable.exe" sXXXXXX@se.ifmo.ru:2222 -pw PASSWORD rem start "" "C:\\Program Files\\PuTTY\\putty.exe" -ssh -P 2222 sXXXXXX@se.ifmo.ru -pw PASSWORD rem WinSCP start "" "%ProgramFiles%\\WinSCP\\WinSCP.exe" sftp://sXXXXXX:PASSWORD@se.ifmo.ru:2222 rem start "" "C:\\Program Files (x86)\\WinSCP\\WinSCP.exe" sftp://sXXXXXX:PASSWORD@se.ifmo.ru:2222 rem FileZilla rem start "" "%ProgramFiles%\\FileZilla FTP Client\\filezilla.exe" sftp://sXXXXXX:PASSWORD@se.ifmo.ru:2222 ``` ### [PuttY](https://putty.org.ru/download.html) (консоль) 1. Имя хоста: `sXXXXXX@se.ifmo.ru` 2. Порт: `2222` 3. Нажимаем "Соединиться" 4. Пишем `PASSWD` ### [WinSCP](https://winscp.net/eng/download.php) (для загрузки файлов) 1. Протокол: `sftp` 2. Имя хоста: `se.ifmo.ru` 3. Порт: `2222` 4. Имя пользователя: `sXXXXXX` 5. Пароль: `PASSWD` ### [FileZilla](https://filezilla.ru/get/) (для загрузки файлов) 1. Хост: `sftp://se.ifmo.ru` 2. Имя пользователя: `sXXXXXX` 3. Пароль: `PASSWD` 4. Порт: `2222` ### Git (для загрузки файлов) 1. Создаём репозиторий на гх и [загружаем туда свои файлы через браузер](https://youtu.be/yjivWxxH0eE) 2. Заходим на сервак 3. Пишем `git clone <Ссылка на репозиторий>`

Сочетания клавиш и команды терминала

- `Tab` - может помочь вводить имена файлов (автозаполнение) - `Enter` - может помочь копировать - `Cntrl+D` - **EOF**, чтобы оборвать выполнение чего угодно - `Cntrl+C` - попросить приложение прервать свою работу - `↑↓` - предыдущая / последующая команда - `Cntrl+shift+V / Cntrl+Shift+C` - **вставить из** / **скопировать в** буфера обмена - `chmod -R 755 ./*` может помочь избавиться от ошибок доступа - `chmod -R 700 ~` может помочь избавиться от любопытных глаз - [Список основных команд UNIX](#UNIX-команды)

Траблы

### JAVA: ошибка переполнения кучи или java по дефолту 11 версии, BindException ```bash [sXXXXXX@helios ~]$ javac Error occurred during initialization of VM Could not reserve enough space for 31424512KB object heap ``` В большинстве случаев спасает патч Ценекова: ```bash # By @dts256 (feat. @Fenaven) export _JAVA_OPTIONS="-Xmx256M" export JAVA_VERSION="17.0+" export JAVA_HOME="/usr/local/openjdk17" export PATH=/usr/local/openjdk17/bin/:$PATH ``` Второй патч, который просто закрывает все сессии ```bash killall -u `whoami` ``` > Также поможет при `java.net.BindException: Address already in use` Третий вариант, просто дождаться 4х часов ночи, именно в это время происходит перезагрузка гелиуса ### Проблемы с базой данных и клиентскими и серверными приложениями (не запускается, переполнение кучи и т.д.) - Посмотрите какие потоки работают: ```bash ps -A ``` - Искусственно выключите ненужные: ```bash kill ```

Cоздание перманентной переменной окружения

1. Создаем файлик .bash_profile в своей корневой директории `sXXXXXX`: ```bash vim .bash_profile ``` 2. В файлик пишем следующее (на примере 5 лабы): ```bash lab5="/home/studs/sXXXXXX/{pathToFile}"; export lab5 ``` 3. Нажимаем `Esc` и пишем следующее: ```bash :wq ``` > *записываем* + *выходим* из текстового редактора `vim` 4. Закрываем соединение (`exit`) и подключаемся снова

Приколы

Get IP addresses ``` [sXXXXXX@helios ~]$ w USER TTY FROM LOGIN@ IDLE WHAT sXXXXXX pts/$$ $$.$$.$$.$$ $$:$$ $$ - sXXXXXX pts/$$ $$.$$.$$.$$ $$:$$ $$ - sXXXXXX pts/$$ $$.$$.$$.$$ $$:$$ $$ - sXXXXXX pts/$$ $$.$$.$$.$$ $$:$$ $$ - sXXXXXX pts/$$ $$.$$.$$.$$ $$:$$ $$ - sXXXXXX pts/$$ $$.$$.$$.$$ $$:$$ $$ - ``` **За следующие действия вас могут отчислить, так что пользуйтесь с умом, не злоупотребляйте** Broadcast message ```bash 1. echo "Здесь могла быть ваша реклама">>test 2. wall test 3. Broadcast Message from sXXXXXX@helios.cs.ifmo.ru (/dev/pts/##) at $$:$$ MSK... Здесь могла быть ваша реклама ``` Игра в minecraft по shh:) ```bash # HOST ssh -R GeliusPort:localhost:25565 sYOUR_ID@helios.se.ifmo.ru -fNT -p 2222 # CLIENT ssh sYOUR_ID@helios.se.ifmo.ru -p 2222 -L 25565:localhost:GeliusPort # GeliusPort - any number from 1024 to 32000 ``` [//]: # (TODO: сделать гайд)

Система оценивания БаРС и разбалловка по всем предметам

graph 
POINTS(ваши баллы)-->A(<60);
POINTS(ваши баллы)-->С(60-67);
POINTS(ваши баллы)-->Е(67.01-74);
POINTS(ваши баллы)-->G(74.01-83);
POINTS(ваши баллы)-->I(83.01-90);
POINTS(ваши баллы)-->К(90.01);

A(<60)-->B[2FX]; 
С(60-67)-->D[3E];
Е(67.01-74)-->F[3D];
G(74.01-83)-->H[4C];
I(83.01-90)-->J[4B];
К(90.01+)-->L[5A];

ссылка на гугл таблицу описание
СУиР 1 курс / 1 семестр БаРС Гугл таблица с разбалловкой по ВСЕМ предметам 1 семестра 1 курса СУиРа
СППО/ИВТ 1 курс 1 семестр БаРС Гугл таблица с разбалловкой по ВСЕМ предметам 1 семестра 1 курса ВТ
СППО/ИВТ 1 курс 2 семестр БаРС Гугл таблица с разбалловкой по ВСЕМ предметам 2 семестра 1 курса ВТ

ITMO ENTER

Фотки презентаций, тестов и QR-кодов с ITMO Enter 2022

Можно ли получить незачёт?

Прочие материалы

Спорт:

На "внимание образование" посоветовали взять у преподавателей рабочую программу дисциплины и чеклист для зачёта, чтобы не пропустить ничего!

Как эффективно читать книги

ФабЛаб - является малой лабораторией-мастерской для реализации личных проектов и ведения учебной деятельности для студентов. Логин. ТГ чат.

Мегабайт медиа и их школа (прием анкет уже закрыт, но вы можете написать им на почту). У их участников повышенная стипендия.

Информатика

Курс по информатике представляет собой совокупность самый актуальных сфер IT. Он достаточно хорошо расписан преподавателем в тг канале 2022-23, так что сложности с этим предметом возникают редко.

Журнал успеваемости потока 2022-23 учебного года

Журнал успеваемости потока 2023-24 учебного года

Автомат и разбалловка

1. ~~Анонимный~~ тест об ожиданиях от курса Информатики (`1 балл` + `1.25 баллов` за своевременность) 2. 7 аннотаций, сдаваемых в начале каждой лекции (`7 * 1 балл` + `7 * 1.25 баллов` за своевременность) 3. 6 лабораторных: 1. Системы счисления: n-ричная (вещественная), фибоначчиевая, нега-позиционная, симметричная, факториальная (`3 балла`) 2. Код Хэмминга (`4 балла`) 3. [Регулярные выражения](https://youtube.com/playlist?list=PLA0M1Bcd0w8w8gtWzf9YkfAxFCgDb09pA). `import re` в Python (6 баллов) 4. Написание парсера на Python из XML/JSON/YAML в XML/JSON/YAML, наверное самая сложная лаба (`9 баллов`) 5. Поразрядное сложение чисел в Exel (`6 баллов`) 6. Воссоздание скриншота страницы книги в LaTeX. [Онлайн-редактор](https://overleaf.com/) (`7 баллов`) 4. 2 теста на ЦДО (`2*10 балла`, 2 попытки) 5. Экзамен (`20 баллов`, **автомат** на `11-14 баллов` (вычисляется как `сумма баллов за 1-4 пункт * 0.185`) баллов при 4х первых лабах и 2х ЦДО-тестах на 60%+, минимально необходимо набрать `7 баллов`) 6. Мемы в конце аннотаций, полезные ссылки/смешные мемы в лс преподавателю (`3 балла`)

Аннотации

- `Аннотация` - это краткое изложение содержания статьи в интернете. В ней нужно собрать всю актуальность, которая будет ценна читателю. Важно именно пересказывать, а не копировать части статьи. - Найти подходящую статью не так просто: чаще всего используется [тактика поиска по хабру](https://habr.com/ru/search/?q=Система%20счисления). Более крутые используют статьи с других сайтов (Например: [techxplore.com](https://techxplore.com/) и [newatlas.com](https://newatlas.com/)). > - Поле `Дата прошедшей лекции` - дата прошедшей лекции > - Поле `Номер последней лекции` - порядковый номер прошедшей лекции > - Поле `Дата сдачи` - дата лекции, на которую вы `принесёте аннотацию`. Если будете сдавать позже, то писать `фактическую` дату сдачи. > - Дата материала должна быть не старше `{текущий год} - 3 года`, т.е. с 01.01.{текущий год - 3} по сегодняшний день. > - Материал должен быть `близким к теме прошедшей лекции`. Либо быть очень важным для вас, либо очень прорывная технология и т.п. В ином случае часто режут баллы, но если есть желание писать по тому, что вам интересно - `пишите!` Аннотации приносят не так много баллов, поэтому даже со срезанными баллами не сложно получить 5A (на личном опыте). > - Концентрируйтесь лучше на `лабах` и `рубежке`. > - Не надо новости IT-экономики, только если Google и Amazon вдруг купят друг друга (тогда это кардинально повлияет на весь IT-мир). > - Шаблон аннотации берите из телеграмм канала, он каждый год немного меняется.

Рубежка

- [Скриншоты и генераторы ответов](https://github.com/Imtjl/1st-year-guide/tree/main/INF/de). - Рубежка пишется под камерой, тактика списывания может быть аналогична списыванию истории. - Многие заданий по типу запустить в питоне или посчитать на [калькуляторе](https://205826.github.io/calc). > Но мы этого, конечно же, не говорили! > `Авторы` этого гайда все писали рубежки `сами` и на `максимум`, чего и вам советуем :)

Математика

> За лабами и доп.материалами советую всегда обращаться в сборник полезных источников <

База

На результаты тестов на OnlineTestPad можно просто скидывать ссылки, таким образом объеденяя ответы. Exemple. В итоге можно получить что-то такое или такое. Скрипт для автоматизации сбора данных по ссылкам.

Прод

Программирование

> За лабами и доп.материалами советую всегда обращаться в сборник полезных источников <

И в первом и во втором семестре по 4 лабы.
Журнал успеваемости потока 2022-23 учебного года 1 семестра
Журнал успеваемости потока 2022-23 учебного года 2 семестра

Этапы сдачи

Кроме 8 лабы этапы сдачи следующие:

Автомат

Прочие материалы

Ручная сборка приложения

.java - файл в котором написана ваша программа (текстовый)
.class - файл с байткодом (бинарный)
MANIFEST.mf - файл описывающий как архивировать и запускать классы (текстовый)
.jar - архив с одним или несколькими .class (бинарный)

Один .java

Создадим файл HelloWorld.java:

echo 'class HelloWorld{public static void main(String args[]){System.out.println("Hello!");}}' > HelloWorld.java

Можем сразу запустить этот .java файл:

java HelloWorld.java

Либо скомпилировать (.java -> .class):

javac HelloWorld.java

в директории должен создаться файл HelloWorld.class, запустить его можно так:

java HelloWorld

Стоит заметить что расширение НЕ пишется, для запуска .class файла, иначе можно получить ошибку:

Error: Could not find or load main class HelloWorld.class  
Caused by: java.lang.ClassNotFoundException: HelloWorld.class

Несколько .java + библиотеки

Теперь допустим у нас несколько .java файлов

Пример ``` . ├── Program.java ├── pokemons/ │ ├── HoOh.java │ └── Piloswine.java ├── attacks/ │ ├── physicalAttacks/ | │ └── Bulldoze.java │ └── statusAttacks/ | └── Amnesia.java └── lib/ ├── LibName.jar ├── LibName2.jar └── LibName3.jar ```

Для компиляции лучше выбрать папку, куда сохранять наши .class файлы:

javac -d classes {*,*/{*,*/*}}.java

или если для компиляции класса необходимы внешние библиотеки:

javac -cp lib/LibName.jar:lib/LibName2.jar:lib/LibName3.jar -d classes {*,*/{*,*/*}}.java
Состояние директорий после выполнения ``` . ├── Program.java ├── pokemons/ │ ├── HoOh.java │ └── Piloswine.java ├── attacks/ │ ├── physicalAttacks/ | │ └── Bulldoze.java │ └── statusAttacks/ | └── Amnesia.java ├── lib/ | ├── LibName.jar | ├── LibName2.jar | └── LibName3.jar └── classes/ ├── Program.class ├── pokemons/ │ ├── HoOh.class │ └── Piloswine.class └── attacks/ ├── physicalAttacks/ │ └── Bulldoze.class └── statusAttacks/ └── Amnesia.class ```

В Linux разделитель -classpath :, а в Windows ;!
-cp или -classpath - то, где искать вспомогательные классы
{*,*/{*,*/*}}.java - сокращенная запись *.java */*.java */*/*.java

Теперь создадим MANIFEST.mf файл, сообщающий главный класс + библиотеки которые использует приложение:

echo -e "Manifest-Version: 1.0\nMain-Class: Program\nClass-Path: lib/LibName.jar lib/LibName2.jar lib/LibName3.jar\n" > MANIFEST.mf
Состояние директорий после выполнения ``` . ├── Program.java ├── pokemons/ │ ├── HoOh.java │ └── Piloswine.java ├── attacks/ │ ├── physicalAttacks/ | │ └── Bulldoze.java │ └── statusAttacks/ | └── Amnesia.java ├── lib/ | ├── LibName.jar | ├── LibName2.jar | └── LibName3.jar ├── classes/ | ├── Program.class | ├── pokemons/ | │ ├── HoOh.class | │ └── Piloswine.class | └── attacks/ | ├── physicalAttacks/ | │ └── Bulldoze.class | └── statusAttacks/ | └── Amnesia.class └── MANIFEST.mf ``` Содержание MANIFEST.mf: ``` Manifest-Version: 1.0 Main-Class: Program Class-Path: lib/LibName.jar lib/LibName2.jar lib/LibName3.jar ```

Тут важно не забыть про перенос строки в конце файла, иначе последняя строчка будет игнорироваться

Теперь собирём .jar архив из этих .class файлов и MANIFEST.mf манифеста:

jar -cvfm app.jar MANIFEST.mf -C classes .
Состояние директорий после выполнения ``` . ├── Program.java ├── pokemons/ │ ├── HoOh.java │ └── Piloswine.java ├── attacks/ │ ├── physicalAttacks/ | │ └── Bulldoze.java │ └── statusAttacks/ | └── Amnesia.java ├── lib/ | ├── LibName.jar | ├── LibName2.jar | └── LibName3.jar ├── classes/ | ├── Program.class | ├── pokemons/ | │ ├── HoOh.class | │ └── Piloswine.class | └── attacks/ | ├── physicalAttacks/ | │ └── Bulldoze.class | └── statusAttacks/ | └── Amnesia.class ├── MANIFEST.mf └── app.jar ```

-c - recompile
-v - info of compile
-f - output file name
-m - manifest name
-C - change main dir

Запускаем:

java -jar app.jar

Отладка .java

Для отладки программы, компилируем класс с флагом -g:

javac -g HelloWorld.java

Запускаем отладчик:

jdb HelloWorld

> stop in HelloWorld.main - set breakpoint in HelloWorld.class on main method
> stop in HelloWorld:3 - set breakpoint in HelloWorld.class on 3 line
> run - run program
main[1] list - print programm
main[1] print i - print value of i
main[1] dump i - print value of i
main[1] locals - print value of local values
main[1] step - do 1 step

взято отсюда

ОПД

> За лабами и доп.материалами советую всегда обращаться в сборник полезных источников <

В первом семестре - 2 лабы, во втором семестре - 5 лаб.
Журнал успеваемости потока 2022-23 учебного года 1 семестра
Журнал успеваемости потока 2022-23 учебного года 2 семестра

Автомат

Вопросы с 7й лабы

1) Почему команды начинаются с 01, а не с 00. (вопрос глубокий в том плане что да, нам это говорили на лекции, но придётся открыть схему микрокоманд, показать как там происходит всё и дать комментарии) 2) В чём преимущество вертикальных команд перед горизонтальными 3) Какие вентили не имеет смысла, либо не рекомендуется ставить одновременно в ОМК. Ну т.е. какие всё сломают и почему. 4) За какое минимальное и максимальное количество тактов у меня будет работать комплекс микропрограмм (изи вопрос, но оставлю на всякий) (у меня он имеет смысл ибо у меня умножение и тут различается аж на 15 тактов) 5) Забыл, но насколько я помню вопрос был не сложный, я сразу ответил. что-то из серии а что будет если вот так сделать

Первый рубеж

Второй рубеж

Некоторые пояснения к 1 варианту рубежки

Экз

  1. Вопросов 40. Билетов 20.
  2. Билеты нереально непропорциональны. Одни сложные, другие простые.
  3. Дадут 2 билета - оба чилл, либо 1 чилл 1 сложный (скорее всего так), 2 гробовых давать не должны.

виды информации + прерывания с контроллером, к примеру

  1. Написать один вопрос билета недостаточно - надо писать оба и идеально.
  2. Половина билетов, которые про бэвм и про числа - ботаются быстро и легко, там ничего сложного нет. Но все равно надо заботать :)
  3. Вторая половина - гробовая. Написание билета на экзамене может занять как 5 минут, так и 40, я уже не говорю сколько времени надо потратить чтобы их заботать.
  4. Просто прочитав вы не поймете ничего в сложных билетах. Для этого надо лезть в синюю библию, лекции, гугл, e.t.c. Не халтурьте, начните за месяц и делайте по 1-2 билета в день. Потом повторите и углубитесь в сложные билеты и 5А у вас в кармане.
  5. Грубо говоря, вот самые сложные темы экзамена:

> Сборник расписанных билетов к экзамену смотрите прямо в этом репозитории <

P.S. - от человека, у которого 5А: я начинал за месяц, но ботал по одному билету или по 0, в результате чего я начал забывать билеты к сессии, поэтому пришлось в конце ботать всё сразу. Именно поэтому рекомендую сначала во всём разобраться и прочитать как можно больше всего, а потом уже всё повторить. Желательно пару раз, чтобы всё осталость в голове. Могу сказать, что ВСЕ контроллеры можно заботать за 2 дня. А вот в остальном придётся разбираться и запоминать. Рекомендую конспектировать все важные моменты билетов. Удачи!)

UNIX - команды

``` ╠╦ man (имя команды) - говорит что делает команда ║╚ (имя команды) --help - короткая подсказка по команде ╠╦ cd (имя директории) - смена директории ║╠ cd - к родной директории ║╠ cd .. - к директории выше ║╠ ls - вывести список файлов ║╠ ls -l - вывести список файлов + много инфы по файлам ║╠ ls -R - вывести список всех файлов ║╚ pwd - полный путь директории ╠╦ mkdir (имя директории)- создание каталога ║╠ cp -r (что) (куда) - рекурсивное копирование ║╠ rmdir (имя директории) - удалить директорию если она пустая ║╚ rm -r (имя директории) - удалить директорию со всеми файлами ╠╦ touch (имя файла) - создание файла (обновление даты доступа) ║╠ cp (что) (куда) - копирование файла ║╠ mv (что) (куда) - переместить ║╠ chmod (новые права доступа) (имя файла) - смена прав на файл ║║ ╠ 1 способ: [User: 0-7][Group: 0-7][Other: 0-7] ║║ ║ ╠ 0 (0+0+0) - No permission. ║║ ║ ╠ 1 (0+0+1) - Only execute permission. ║║ ║ ╠ 2 (0+2+0) - Only write permission. ║║ ║ ╠ 3 (0+2+1) - Write and execute permissions. ║║ ║ ╠ 4 (4+0+0) - Only read permission. ║║ ║ ╠ 5 (4+0+1) - Read and execute permission. ║║ ║ ╠ 6 (4+2+0) - Read and write permissions. ║║ ║ ╠ 7 (4+2+1) - Read, write, and execute permission. ║║ ║ ╚ Пример: `chmod 700 file.txt` ║║ ╠ 2 способ: [ugo](+|-|=)[rwx-][,<...>] ║║ ║ ╚ Пример: `chmod u+rwx,go=r-x file.txt` ║║ ╠ Для деректорий x(execute) работает как доступ ║║ ╚ Дополнительно почитать: https://losst.ru/prava-dostupa-k-fajlam-v-linux ║╠ ln –s (имя файла) (имя ссылки) – символическая ссылка ║║ ╚ файл содержащий путь к файлу ║╠ ln (имя файла) (имя ссылки) – жесткая ссылка ║║ ╚ указатель на используемый другим файлом память ║╚ rm (что) - удалить файл ╠╦ vim (имя файла) - редактирование файла ║║ ╠ для редактирования нажмите `i` ║║ ╚ для выхода нажмите `Esc` и напишите `:wq` ║╠ cat (имя файла) - содержимое файла ║╠ cat > (имя файла) - запись в файл(стереть + записать) ║╠ cat >> (имя файла) - дозапись ║╠ cat (имя файла1) (имя файла2) > (имя файла3) - записывает в файл 3, 1 и 2 файл ║╚ echo "текст" > (имя файла) – запись в файл ╠╦ grep '(регулярное выражение)' - фильтрует вывод по регулярке ║╠ head - выводит на экран первые 10 строк. Поведение зависит от опций ║╠ tail - выводит на экран последние 10 строк. Поведение зависит от опций ║╠ wc - статичтика по входу/файлу ║╠ sort - сортирует вывод по алфавиту ║╠ sort -r - сортирует вывод по обратному алфавиту ║╚ more - интерактивный вывод ╠╦ bash (имя файла) – запуск файла с командами ║╠ sh (имя файла) – запуск файла с командами ║╠ ksh (имя файла) – запуск файла с командами ║╚ ./(имя файла) – запуск файла с командами (прописать chmod u+x для него) ╠═ (команда) | (куда) - Конвейер (pipeline) ╠═ (что)>(куда) - перенаправляет поток ║ ╠ что ║ ║ ╠ 0 - поток ввода ║ ║ ╠ 1 - поток вывода ║ ║ ╚ 2 - поток ошибок ║ ╚ куда ║ ╠ /dev/null - в никуда ║ ╠ &0 - в поток ввода ║ ╠ &1 - в поток вывода ║ ╚ &2 - в поток ошибок ╠╦ < (файл) - подаёт на вход команды содержимое файла ║╠ << someSTOPword - интерактивный ввод пока не будет введён someSTOPword ║╚ <<< "текст" - подаёт на вход команды текст ╚═ Кавычки ╠ '' - текст оставляет таким как внути кавычек ╠ "" - позволяют осуществлять раскрытие переменных ╚ `` - значение кавычек это результат работы команд внтури ``` **Примеры использования** ```bash # Рекурсивная выдача файлам всех прав для пользователя, ошибки не выводить chmod -R 700 lab0 2>/dev/null # Удалить всю папку lab0, ошибки не выводить rm -r lab0 2>/dev/null # Подсчитать количество строк содержимого файла wingull6, # результат дописать в тот-же файл, добавить вывод ошибок доступа в стандартный поток вывода wc -l wingull6 >>wingull6 # Вывести список имен файлов в # директории clefable3, список отсортировать по имени z->a, ошибки доступа перенаправить в файл в директории /tmp (ls clefable3 | sort) 2>/tmp/error # Рекурсивно вывести содержимое файлов с номерами строк из директории lab0, # имя которых начинается на 'n', строки отсортировать по имени z->a, ошибки доступа не подавлять и не перенаправлять cat -n "^n" | sort -r # Вывести рекурсивно список имен и атрибутов файлов в директории lab0, начинающихся на символ 'g', список # отсортировать по возрастанию даты изменения записи о файле, добавить вывод ошибок доступа в стандартный поток вывода ls -lRt lab0 # Вывести четыре последних элемента рекурсивного списка имен и атрибутов файлов в директории lab0, # список отсортировать по убыванию даты изменения записи о файле, подавить вывод ошибок доступа ls -lRt 2>/dev/null | tail -4 | sort -r # Вывести рекурсивно список имен и атрибутов файлов в директории lab0, # заканчивающихся на символ 'a', список отсортировать по возрастанию размера, подавить вывод ошибок доступа ls -lR lab0 2>/dev/null | grep "a$" | sort -k6 # Список всех файлов отсортированные по z-a, ошибки не выводить ls -R ./ | grep '^.*[^:]$' | sort -r 2>/dev/null # Список всех файлов заканчивающиеся на t отсортированные по размеру файла, ошибки выводить в общий поток ls -R -l ./ | grep 't$' | sort -nk5 2>&1 # Список всех файлов начинающие с m отсортированные по a-z, ошибки выводить в общий поток ls -R ./ | grep '^m.*[^:]$' | sort 2>&1 # Список всех файлов, оканчивающихся на t, с сортировкой по последнему доступу к файлу ls -R -ltu ./ | grep 't$' # Создание нескольких деректорий mkdir dir01 dir02 dir03 dir04 mkdir dir{01,02,03,04} mkdir -p lab0/dir1/dir2/dir3 # Вернуться в прошлую деректорию cd - # выполнение команды в фоновом процессе команда & # 1. Передача команде списка файлов # 2. Перенапраление потокаприменяеться только к одной команде, # поэтому её надо примеять там где надо, # иначе всю строчеку надо обваачивать в скобки wc -l donphan7/* 2>/dev/null | sort *p # вложено в ноль деректорий и оканичваеться на p */*p # вложено в одну деректорию и оканичваеться на p **/*p # вложено в 1-inf деректорию и оканичваеться на p (Для верной работы необходимо написать: shopt -s globstar) chmod +rwx file # аналогично (777 & 755), то есть 755 (почему & 755 я не знаю) chmod a+rwx file # a=ugo chmod a=r,g-r file # выполнение идёт слева направо chmod -rwx,u=rw file chmod a+w-x-r,u+r # видимо ему тоже норм chmod u=rw-,g=---,o=r-- # работает, как вы и ожидаете # фильтрует вывод по последней букве | grep 'u$' # ` comands ` или $( comands ) # результат выполнения команд в ковычках вставляються в исходную строчку cat `ls -R 2>/tmp/s123456 | grep '3$' | sort -r` # вывод где испоьзуються перенос, а не табуляция ls -1 # НУ КАК ТЕБЕ ТАКОЕ ИЛОН МАСК???? ls -R | grep "\..*:" | sed "s/://" | sed "s/^\./ls -1dp \./" | sed "s/$/\/\*/" | sh | grep -v "/$" | grep "\/c[^\/]*$" | xargs wc -l | sort -r ```

БД

> За лабами и доп.материалами советую всегда обращаться в сборник полезных источников <

Во втором семестре - 4 лабы.
Журнал успеваемости потока 2022-23 учебного года

Дискретная математика (базовая)

> За лабами и доп.материалами советую всегда обращаться в сборник полезных источников <

Дискретная математика - предмет на котором вы изучите как компьютер выполняет математические действия (1 сем) и выучите алгоритмы на графах(2 сем).
Предмет ведёт Поляков (далее Дискрадед). Он не связан с сайтом с задачками по информатике.
Лекция занимает 1-2 пары, со второй пары могут отпускать или на второй паре происходит перепись. Переписывать кр можно сколько угодно раз.
У дискрадеда можно списать, да и задания контрольных не меняются из года в год, так что самое сложное в этом предмете - это ДЗ и курсовая (варианты почти у всех индивидуальные). Их сдача происходит дистанционно, необходимо присылать на почту дискрадеда docx или pdf с решением варика.

Автомат

Официальные материалы лежат в учебной документации ИСУ

Алгосы (Олпрога)

Теория:

На своём опыте могу сказать, что чтение таких источников в большенстве случаев бесполезна без практики!

Практика:

Особая благодарность