Skip to content

Imtjl/1st-year-guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Описание

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

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

Оглавление

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

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

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

graph TD;
  ИТМО-->мф.КТиУ;
  ИТМО-->мф.ТИнТ;
  ИТМО-->мф.НОЖ;
  ИТМО-->ФТмф;
  
  мф.КТиУ-->ф.ПИиКТ;
  мф.КТиУ-->ф.СУИР;
  мф.КТиУ-->ф.БИТ;
  мф.КТиУ-->ц.ХИ;

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

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

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

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

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

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

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

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

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

Предметы

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

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

  • Кронва - главный корпус университета на Кронверском 49
  • Ломо - корпус университета на Ломоносова 9
  • Биржа - корпус университета на Биржевой линии 14-16
  • Гривцова - корпус университета на Гривцовом переулке 14-16 лит.А
  • Чайка - корпус университета на Чайковской улице 11.2 лит.А
  • Гастелло - корпус университета на улице Гастелло 12

Общежития

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

  • Вязьма - общежитие на Вяземском переулке 5-7 лит.А
  • Белорусская / б6 / белка - общежитие на Белорусской улице д.6 лит.А
  • Альпийка - общежитие на Альписском переулке 15 к.2 лит.А
  • Ленсовета - Общежитие на улице Ленсовета д.23 лит.А
  • МСГ - Новоизмайловский пр., 16
  • Доходный дом - наб. р. Карповки, д. 22, корп. 2, лит. Б
  • ЛТУ - ул. Вавиловых, д. 12

Сайты


Прочее

  • Cем - семестр, пол учебного года
  • Курс - два семестра
  • Пара - занятия продолжительностью 1.5 часа
  • Автомат - автоматические баллы за экзамен
  • Лаба - может обозначать как пару по предмету, так и саму лабораторную работу
  • Прод - профильная (продвинутая) математика
  • База - базовая математика
  • Экз - экзамен
  • Алгосы - aлгоритмы
  • Олпрога - олимпиадное программирование
  • Рубежка - рубежная работа
  • Курсач - курсовая работа
  • ДЗ - домашняя работа
  • кр - контрольная работа
  • Сессия - период массовой сдачи экзаменов в конце сема
  • Допса - дополнительная сессия, идущая во время следующего семестра в течение первых 1-2 месяцев для закрытия долгов за предыдущий семестр
  • Комса - комиссия, последний способ закрыть долги, совещание после которого отчисляют студентов
  • Гх - гитхаб
  • Гит - git, распределённая система контроля версий
  • ось - операционная система
  • линка - ссылка (от англ. link)

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

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

  • - курс по базам данных
  • - курс по ЯПам
  • - курс по вышмату
  • - курс по дискретной математике
  • - курс по информатике
  • - курс по программированию на 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 Репозиторий с общей информацией по проге и опд. Там же можете найти требования к лабам, к отчетам (пример отчета), и всякие другие полезные вещи.

Гелиус

  • Примерно в 5-х числах сентября у вас откроется доступ к Гелиусу вот здесь.
  • Гелиус - это итмошный сервак. На нём будут сдаваться лабораторные по проге(1-7), ОПД(1) и БД(1-4)

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

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

Авторизация в se.ifmo.ru

  • Логин: sТабельныйНомер (далее sXXXXXX)
  • Пароль: se.ifmo.ru/passwd (далее PASSWD)

Подключение через консоль (powershell, bash, zsh, e.t.c)

На выбор:
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)

scp -P 2222 FileForUpload.java sXXXXXX@helios.se.ifmo.ru:DirectoryToUpload
  • Пример загрузки файла README.md в вашу корневую директорию sXXXXXX:
scp -P 2222 README.md sXXXXXX@se.ifmo.ru:.

Создание .bat - файла для авто-подключения к серверу (консоль + для загрузки файлов)

Уже готовый архив со всем необходимым для подключения можно скачать здесь

Никаких дополнительных программ для работы не нужно скачивать, следует лишь отредактировать .bat - файлы, написав свой логин и пароль

Пример содержания такого файла:

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 (консоль)

  1. Имя хоста: sXXXXXX@se.ifmo.ru
  2. Порт: 2222
  3. Нажимаем "Соединиться"
  4. Пишем PASSWD

WinSCP (для загрузки файлов)

  1. Протокол: sftp
  2. Имя хоста: se.ifmo.ru
  3. Порт: 2222
  4. Имя пользователя: sXXXXXX
  5. Пароль: PASSWD

FileZilla (для загрузки файлов)

  1. Хост: sftp://se.ifmo.ru
  2. Имя пользователя: sXXXXXX
  3. Пароль: PASSWD
  4. Порт: 2222

Git (для загрузки файлов)

  1. Создаём репозиторий на гх и загружаем туда свои файлы через браузер
  2. Заходим на сервак
  3. Пишем git clone <Ссылка на репозиторий>

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

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

Траблы

JAVA: ошибка переполнения кучи или java по дефолту 11 версии, BindException

[sXXXXXX@helios ~]$ javac
Error occurred during initialization of VM
Could not reserve enough space for 31424512KB object heap

В большинстве случаев спасает патч Ценекова:

# 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

Второй патч, который просто закрывает все сессии

killall -u `whoami`

Также поможет при java.net.BindException: Address already in use

Третий вариант, просто дождаться 4х часов ночи, именно в это время происходит перезагрузка гелиуса

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

  • Посмотрите какие потоки работают:
ps -A
  • Искусственно выключите ненужные:
kill <pid>

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

  1. Создаем файлик .bash_profile в своей корневой директории sXXXXXX:
vim .bash_profile
  1. В файлик пишем следующее (на примере 5 лабы):
lab5="/home/studs/sXXXXXX/{pathToFile}"; export lab5
  1. Нажимаем Esc и пишем следующее:
:wq

записываем + выходим из текстового редактора vim

  1. Закрываем соединение (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

1. echo "Здесь могла быть ваша реклама">>test
2. wall test
3. Broadcast Message from sXXXXXX@helios.cs.ifmo.ru
        (/dev/pts/##) at $$:$$ MSK...

Здесь могла быть ваша реклама

Игра в minecraft по shh:)

# 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

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

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

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

  • В 2022-23 году обучения эта дисциплина была обязательной. Да, по ней действительно в теории можно было получить незачёт. Насколько нам известно, в новом учебном году эту дисциплину сделали необязательной, поэтому поручаем вам задачу выяснить это самостоятельно :)

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

Спорт:

  • Талисман - снежный барс Барс Тим
  • 5 раз были лучшим спортивным студенческим клубом с 2016 по 2021

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

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

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

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

Информатика

Курс по информатике представляет собой совокупность самый актуальных сфер 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. Регулярные выражения. import re в Python (6 баллов)
    4. Написание парсера на Python из XML/JSON/YAML в XML/JSON/YAML, наверное самая сложная лаба (9 баллов)
    5. Поразрядное сложение чисел в Exel (6 баллов)
    6. Воссоздание скриншота страницы книги в LaTeX. Онлайн-редактор (7 баллов)
  4. 2 теста на ЦДО (2*10 балла, 2 попытки)
  5. Экзамен (20 баллов, автомат на 11-14 баллов (вычисляется как сумма баллов за 1-4 пункт * 0.185) баллов при 4х первых лабах и 2х ЦДО-тестах на 60%+, минимально необходимо набрать 7 баллов)
  6. Мемы в конце аннотаций, полезные ссылки/смешные мемы в лс преподавателю (3 балла)

Аннотации

  • Аннотация - это краткое изложение содержания статьи в интернете. В ней нужно собрать всю актуальность, которая будет ценна читателю. Важно именно пересказывать, а не копировать части статьи.
  • Найти подходящую статью не так просто: чаще всего используется тактика поиска по хабру. Более крутые используют статьи с других сайтов (Например: techxplore.com и newatlas.com).
  • Поле Дата прошедшей лекции - дата прошедшей лекции
  • Поле Номер последней лекции - порядковый номер прошедшей лекции
  • Поле Дата сдачи - дата лекции, на которую вы принесёте аннотацию. Если будете сдавать позже, то писать фактическую дату сдачи.
  • Дата материала должна быть не старше {текущий год} - 3 года, т.е. с 01.01.{текущий год - 3} по сегодняшний день.
  • Материал должен быть близким к теме прошедшей лекции. Либо быть очень важным для вас, либо очень прорывная технология и т.п. В ином случае часто режут баллы, но если есть желание писать по тому, что вам интересно - пишите! Аннотации приносят не так много баллов, поэтому даже со срезанными баллами не сложно получить 5A (на личном опыте).
  • Концентрируйтесь лучше на лабах и рубежке.
  • Не надо новости IT-экономики, только если Google и Amazon вдруг купят друг друга (тогда это кардинально повлияет на весь IT-мир).
  • Шаблон аннотации берите из телеграмм канала, он каждый год немного меняется.

Рубежка

Но мы этого, конечно же, не говорили!
Авторы этого гайда все писали рубежки сами и на максимум, чего и вам советуем :)

Математика

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

База

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

Прод

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

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

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

Этапы сдачи

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

  • Делаете лабу
  • Закидываете на гелиус -> туториал
  • Делаете отчет (у некоторых практиках нетребуется)
  • Защищаете лабу
    • Отчет
    • Код (соответвие заданию, реализованые патерны...)
    • Выполнение на гелиусе (программу пытаються крашнуть, Ctrl+C/D, Фаззинг...)
    • Теория

Отличие с 8 лабой в том, что там GUI - графический интерфейс, который не надо выгружать на гелиос. Бд либо локально поднимаете, либо делаете проброс портов на сервер.

Автомат

  • в 1 семестре чтобы получить автомат - достаточно закрыть все лабы и рубежку
  • во 2 семестре нужно получить >= 70 баллов за практику (лабы + рубежка), тогда поставят 5А автоматом.

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

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

.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 семестра

Автомат

  • в 1 семестре чтобы получить автомат - достаточно закрыть все лабы и рубежку
  • во 2 семестре все будут писать билетный экзамен

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

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

Первый рубеж

  • Заходим в методичку, указанную в материалах к ОПД выше и читаем, там подробно описан этот рубеж. Советую внимательно прочитать, а затем потренироваться на тренажёре

Второй рубеж

  • Есть 2 варианта этой рубежки. Основной - первый, второй может быть на переписи.
  • 1 вариант: запускают в аудиторию, выдают листки, реализуем какую-то "полезную" программу полностью на ассемблере. Пишем ручкой/карандашём на листочках, вы всё правильно поняли)
  • 2 вариант: трассировка микрокода. Он проще, там по ходу разберётесь. Потренируйтесь)

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

  • Висячий переход - это значит, что нет метки назначения или название не совпадает
  • На листах пишем код как на АССЕМБЛЕРЕ БЭВМ, ни на каком другом.
  • Реентерантная программа - код, который работает корректно независимо от количества одновременно вызванных модулей. Поэтому, нужно корректно инициализировать и класть нули в нужные переменные при работе с ними, во избежание мусорных значений.
  • В столбце АДРЕС/МЕТКА пишем ТОЛЬКО метку (адрес не нужно)
  • Чтобы указать адрес, достаточно во втором столбце команд написать ORG 0x*
  • Файл с примерами задач рубежки, кодами и подробностями
  • Самый удобный, на мой взгляд, варинт написания рубежки:
    • Карандашом, со стёркой
    • Сначала пишем рабочий код, а потом уже дописываем все нужные переменные
    • Во время написания кода можно на втором листе, или на этом же, но на обороте
    • писать карандашом заготовки, если не уверены в написании сразу
    • все переменные, о которых забыли - используем как ни в чём не бывало, оставив пометку на полях. и в конце проги, на оставшемся месте дописываем эту перменную

Экз

  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
║╚ <<< "текст" - подаёт на вход команды текст
╚═ Кавычки
   ╠ '' - текст оставляет таким как внути кавычек
   ╠ "" - позволяют осуществлять раскрытие переменных
   ╚ `` - значение кавычек это результат работы команд внтури

Примеры использования

# Рекурсивная выдача файлам всех прав для пользователя, ошибки не выводить
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 с решением варика.

Автомат

  • 1 сем: сдаём все домашки и обе части курсача, из сборника домашек выше и получаем зачёт
  • 2 сем: сдаём все домашки и курсач, за 1 курс ставится средняя арифметическая ВСЕХ оценок за прошедшие кр (1 + 2 семестры)

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

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

Теория:

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

Практика:

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

  • <T>
  • worthant
  • Zerumi
  • TsenekovIT
  • maxbarsukov
  • owl from hogvarts
  • Black Rider
  • DecafMango