add notes for lecture 1
This commit is contained in:
583
lectures/README.md
Normal file
583
lectures/README.md
Normal file
@@ -0,0 +1,583 @@
|
|||||||
|
# Конспект лекции 1: Введение в программирование (Java)
|
||||||
|
**Преподаватель:** Георгий Корнеев
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Организационные вопросы
|
||||||
|
|
||||||
|
### 1.1. Контактная информация
|
||||||
|
- **Преподаватель:** Георгий Корнеев
|
||||||
|
- **Связь:**
|
||||||
|
- Основные вопросы → чат курса
|
||||||
|
- Сложные/долгие вопросы → email преподавателя
|
||||||
|
|
||||||
|
### 1.2. Структура курса
|
||||||
|
**Последовательность предметов:**
|
||||||
|
- 1 курс: Введение в программирование (Java)
|
||||||
|
- 2 курс 1 семестр: Парадигмы программирования
|
||||||
|
- 2 курс 2 семестр: Технологии Java
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Организация учебного процесса
|
||||||
|
|
||||||
|
### 2.1. Структура занятий
|
||||||
|
|
||||||
|
#### Лекции
|
||||||
|
- Теоретический материал
|
||||||
|
- Live coding
|
||||||
|
- Демонстрации примеров
|
||||||
|
|
||||||
|
#### Домашние задания
|
||||||
|
- Выдаются после каждой лекции
|
||||||
|
- Срок выполнения: около недели (чуть меньше, т.к. практики перед лекциями)
|
||||||
|
- Все последующие ДЗ (кроме первого) требуют самостоятельно написанного кода на Java
|
||||||
|
|
||||||
|
#### Практические занятия
|
||||||
|
- Сдача **модификации** домашнего задания (не самого ДЗ!)
|
||||||
|
- Модификация тесно связана с домашним заданием
|
||||||
|
- **Пример:** ДЗ - скомпилировать Hello World, практика - скомпилировать другую программу
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Система оценивания
|
||||||
|
|
||||||
|
### 3.1. Версии домашних заданий
|
||||||
|
- **Простая версия** → НЕ нужно делать
|
||||||
|
- **Сложная версия** → ОБЯЗАТЕЛЬНО делать
|
||||||
|
|
||||||
|
### 3.2. Попытки сдачи
|
||||||
|
- **Количество попыток:** 3 (три вторника подряд)
|
||||||
|
- Если за 3 попытки не сдано → ДЗ не засчитывается
|
||||||
|
|
||||||
|
### 3.3. Система задержек (delay)
|
||||||
|
**Фиксируется момент ПЕРВОЙ демонстрации рабочей программы преподавателю:**
|
||||||
|
- Сдача в первую неделю → delay = 0
|
||||||
|
- Сдача во вторую неделю → delay = 1
|
||||||
|
- Сдача в третью неделю → delay = 2
|
||||||
|
|
||||||
|
⚠️ **Важно:** Задержка определяется моментом первой демонстрации работающей программы, а не финальной сдачи!
|
||||||
|
|
||||||
|
### 3.4. Система минусов
|
||||||
|
**Начисление минусов:**
|
||||||
|
- Преподаватель проверяет код
|
||||||
|
- За найденные проблемы назначаются минусы
|
||||||
|
- Минусы **накапливаются** при каждой попытке
|
||||||
|
|
||||||
|
**Пример расчёта:**
|
||||||
|
- 1 попытка: 3 минуса
|
||||||
|
- 2 попытка: 2 минуса
|
||||||
|
- 3 попытка: 0 минусов (успешно)
|
||||||
|
- **Итого:** 5 минусов, delay = 0 (т.к. начали с первой недели)
|
||||||
|
|
||||||
|
### 3.5. Бонусные баллы
|
||||||
|
|
||||||
|
#### Бонусы за скорость сдачи
|
||||||
|
- **Условие:** Первый студент, сдавший ДЗ преподавателю в первую неделю
|
||||||
|
- **Количество:** До 5 человек (по числу преподавателей)
|
||||||
|
|
||||||
|
#### Бонусы за найденные ошибки
|
||||||
|
- За обнаруженные ошибки и опечатки в материалах курса
|
||||||
|
- Сообщать в специальный раздел чата
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Зачёт
|
||||||
|
|
||||||
|
### 4.1. Условия
|
||||||
|
- Проводится при неудовлетворительных баллах
|
||||||
|
- Если баллов достаточно → зачёт не обязателен
|
||||||
|
|
||||||
|
### 4.2. Варианты сдачи
|
||||||
|
- **Досрочная сдача:** конец декабря
|
||||||
|
- **Стандартная сдача:** во время сессии
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Особенности первого домашнего задания
|
||||||
|
|
||||||
|
### 5.1. Уникальные условия
|
||||||
|
- Несложное (т.к. не было лекций)
|
||||||
|
- **Срок сдачи:** только первая практика
|
||||||
|
- Больше не принимается
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Почему Java?
|
||||||
|
|
||||||
|
### 6.1. Популярность
|
||||||
|
- **Индекс TIOBE:** Java в топе популярных языков
|
||||||
|
- В плотной группе с C, C++, Python
|
||||||
|
- Python вырвался вперёд в последние 2-3 года
|
||||||
|
|
||||||
|
### 6.2. Преимущества Java
|
||||||
|
|
||||||
|
#### Простота и безопасность
|
||||||
|
- Достаточно простой язык
|
||||||
|
- Сложно создать код, который:
|
||||||
|
- Убьёт компьютер
|
||||||
|
- Приведёт к непредсказуемому поведению
|
||||||
|
- Не воспроизводится на других машинах
|
||||||
|
|
||||||
|
#### Содержательность
|
||||||
|
- Простой, но весьма содержательный язык
|
||||||
|
- Широкий спектр возможностей
|
||||||
|
|
||||||
|
#### Области применения
|
||||||
|
1. **Серверные приложения**
|
||||||
|
2. **Desktop-приложения**
|
||||||
|
3. **Android-разработка**
|
||||||
|
4. **JVM-языки** (Kotlin, Scala и др.)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Основы Java
|
||||||
|
|
||||||
|
### 7.1. Концепция Java
|
||||||
|
|
||||||
|
#### Виртуальная машина (JVM)
|
||||||
|
- Java компилируется не в машинный код, а в **байт-код**
|
||||||
|
- Байт-код исполняется на **виртуальной машине Java (JVM)**
|
||||||
|
- **Преимущество:** кроссплатформенность (Write Once, Run Anywhere)
|
||||||
|
|
||||||
|
#### Процесс выполнения программы
|
||||||
|
1. Написание кода на Java (.java файлы)
|
||||||
|
2. Компиляция в байт-код (.class файлы)
|
||||||
|
3. Выполнение на JVM
|
||||||
|
|
||||||
|
### 7.2. Установка и настройка
|
||||||
|
|
||||||
|
#### Java Development Kit (JDK)
|
||||||
|
- **Что включает:**
|
||||||
|
- Компилятор Java
|
||||||
|
- JVM
|
||||||
|
- Стандартная библиотека
|
||||||
|
- Инструменты разработки
|
||||||
|
|
||||||
|
#### Проверка установки
|
||||||
|
```bash
|
||||||
|
java -version # Проверка установленной версии JVM
|
||||||
|
javac -version # Проверка версии компилятора
|
||||||
|
```
|
||||||
|
|
||||||
|
### 7.3. Первая программа: Hello World
|
||||||
|
|
||||||
|
#### Структура программы
|
||||||
|
```java
|
||||||
|
public class HelloWorld {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println("Hello, World!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Ключевые элементы
|
||||||
|
- `public class HelloWorld` - объявление публичного класса
|
||||||
|
- Имя класса должно совпадать с именем файла
|
||||||
|
- `public static void main(String[] args)` - точка входа в программу
|
||||||
|
- `System.out.println()` - вывод в консоль
|
||||||
|
|
||||||
|
#### Компиляция и запуск
|
||||||
|
```bash
|
||||||
|
javac HelloWorld.java # Компиляция → создаёт HelloWorld.class
|
||||||
|
java HelloWorld # Запуск (БЕЗ расширения .class!)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. Основы синтаксиса Java
|
||||||
|
|
||||||
|
### 8.1. Типы данных
|
||||||
|
|
||||||
|
#### Примитивные типы
|
||||||
|
|
||||||
|
**Целочисленные:**
|
||||||
|
- `byte` - 8 бит (-128 до 127)
|
||||||
|
- `short` - 16 бит (-32768 до 32767)
|
||||||
|
- `int` - 32 бита (-2³¹ до 2³¹-1)
|
||||||
|
- `long` - 64 бита (-2⁶³ до 2⁶³-1)
|
||||||
|
|
||||||
|
**Вещественные:**
|
||||||
|
- `float` - 32 бита (одинарная точность)
|
||||||
|
- `double` - 64 бита (двойная точность)
|
||||||
|
|
||||||
|
**Другие:**
|
||||||
|
- `boolean` - true/false
|
||||||
|
- `char` - 16 бит (символ Unicode)
|
||||||
|
|
||||||
|
#### Ссылочные типы
|
||||||
|
- Строки: `String`
|
||||||
|
- Массивы
|
||||||
|
- Объекты классов
|
||||||
|
|
||||||
|
### 8.2. Переменные
|
||||||
|
|
||||||
|
#### Объявление и инициализация
|
||||||
|
```java
|
||||||
|
int x; // Объявление
|
||||||
|
x = 10; // Инициализация
|
||||||
|
int y = 20; // Объявление с инициализацией
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Константы
|
||||||
|
```java
|
||||||
|
final int MAX_VALUE = 100; // Константа (нельзя изменить)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 8.3. Операторы
|
||||||
|
|
||||||
|
#### Арифметические операторы
|
||||||
|
- `+` - сложение
|
||||||
|
- `-` - вычитание
|
||||||
|
- `*` - умножение
|
||||||
|
- `/` - деление
|
||||||
|
- `%` - остаток от деления
|
||||||
|
|
||||||
|
#### Операторы сравнения
|
||||||
|
- `==` - равно
|
||||||
|
- `!=` - не равно
|
||||||
|
- `>`, `<` - больше, меньше
|
||||||
|
- `>=`, `<=` - больше или равно, меньше или равно
|
||||||
|
|
||||||
|
#### Логические операторы
|
||||||
|
- `&&` - логическое И (AND)
|
||||||
|
- `||` - логическое ИЛИ (OR)
|
||||||
|
- `!` - логическое НЕ (NOT)
|
||||||
|
|
||||||
|
#### Операторы присваивания
|
||||||
|
- `=` - присваивание
|
||||||
|
- `+=`, `-=`, `*=`, `/=` - составное присваивание
|
||||||
|
|
||||||
|
### 8.4. Управляющие конструкции
|
||||||
|
|
||||||
|
#### Условный оператор if
|
||||||
|
```java
|
||||||
|
if (условие) {
|
||||||
|
// код
|
||||||
|
} else if (другое_условие) {
|
||||||
|
// код
|
||||||
|
} else {
|
||||||
|
// код
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Оператор switch
|
||||||
|
```java
|
||||||
|
switch (переменная) {
|
||||||
|
case значение1:
|
||||||
|
// код
|
||||||
|
break;
|
||||||
|
case значение2:
|
||||||
|
// код
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// код по умолчанию
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Цикл while
|
||||||
|
```java
|
||||||
|
while (условие) {
|
||||||
|
// код
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Цикл do-while
|
||||||
|
```java
|
||||||
|
do {
|
||||||
|
// код
|
||||||
|
} while (условие);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Цикл for
|
||||||
|
```java
|
||||||
|
for (инициализация; условие; инкремент) {
|
||||||
|
// код
|
||||||
|
}
|
||||||
|
|
||||||
|
// Пример:
|
||||||
|
for (int i = 0; i < 10; i++) {
|
||||||
|
System.out.println(i);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Цикл for-each
|
||||||
|
```java
|
||||||
|
for (тип элемент : коллекция) {
|
||||||
|
// код
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Ввод и вывод
|
||||||
|
|
||||||
|
### 9.1. Вывод в консоль
|
||||||
|
```java
|
||||||
|
System.out.println("текст"); // Вывод с переводом строки
|
||||||
|
System.out.print("текст"); // Вывод без перевода строки
|
||||||
|
```
|
||||||
|
|
||||||
|
### 9.2. Ввод из консоли
|
||||||
|
```java
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
Scanner scanner = new Scanner(System.in);
|
||||||
|
int number = scanner.nextInt(); // Чтение целого числа
|
||||||
|
String line = scanner.nextLine(); // Чтение строки
|
||||||
|
double d = scanner.nextDouble(); // Чтение вещественного числа
|
||||||
|
```
|
||||||
|
|
||||||
|
### 9.3. Работа с аргументами командной строки
|
||||||
|
```java
|
||||||
|
public static void main(String[] args) {
|
||||||
|
// args[0] - первый аргумент
|
||||||
|
// args[1] - второй аргумент
|
||||||
|
// args.length - количество аргументов
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. Массивы
|
||||||
|
|
||||||
|
### 10.1. Одномерные массивы
|
||||||
|
|
||||||
|
#### Объявление и создание
|
||||||
|
```java
|
||||||
|
int[] array; // Объявление
|
||||||
|
array = new int[10]; // Создание массива на 10 элементов
|
||||||
|
int[] array2 = new int[5]; // Объявление с созданием
|
||||||
|
|
||||||
|
// Инициализация значениями
|
||||||
|
int[] array3 = {1, 2, 3, 4, 5};
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Обращение к элементам
|
||||||
|
```java
|
||||||
|
array[0] = 10; // Присваивание
|
||||||
|
int x = array[0]; // Чтение
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Длина массива
|
||||||
|
```java
|
||||||
|
int length = array.length; // Поле length (НЕ метод!)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 10.2. Многомерные массивы
|
||||||
|
```java
|
||||||
|
int[][] matrix = new int[3][4]; // 3 строки, 4 столбца
|
||||||
|
int[][] matrix2 = {{1,2}, {3,4}, {5,6}};
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 11. Строки (String)
|
||||||
|
|
||||||
|
### 11.1. Создание строк
|
||||||
|
```java
|
||||||
|
String s1 = "Hello";
|
||||||
|
String s2 = new String("World");
|
||||||
|
```
|
||||||
|
|
||||||
|
### 11.2. Основные методы
|
||||||
|
```java
|
||||||
|
int len = s.length(); // Длина строки
|
||||||
|
char ch = s.charAt(0); // Символ по индексу
|
||||||
|
String sub = s.substring(0, 5); // Подстрока
|
||||||
|
String upper = s.toUpperCase(); // В верхний регистр
|
||||||
|
String lower = s.toLowerCase(); // В нижний регистр
|
||||||
|
```
|
||||||
|
|
||||||
|
### 11.3. Конкатенация
|
||||||
|
```java
|
||||||
|
String result = s1 + s2;
|
||||||
|
String result2 = s1.concat(s2);
|
||||||
|
```
|
||||||
|
|
||||||
|
### 11.4. Особенности строк
|
||||||
|
- Строки в Java **неизменяемые** (immutable)
|
||||||
|
- Все операции создают новые строки
|
||||||
|
- Сравнение строк: использовать `equals()`, НЕ `==`
|
||||||
|
|
||||||
|
```java
|
||||||
|
if (s1.equals(s2)) { // ПРАВИЛЬНО
|
||||||
|
// строки равны
|
||||||
|
}
|
||||||
|
|
||||||
|
if (s1 == s2) { // НЕПРАВИЛЬНО (сравнивает ссылки)
|
||||||
|
// это не то, что вы думаете
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 12. Работа с тестами
|
||||||
|
|
||||||
|
### 12.1. Репозиторий с тестами
|
||||||
|
- Тесты выкладываются в отдельный репозиторий
|
||||||
|
- Доступны исходный код и скомпилированная версия (.jar файлы)
|
||||||
|
|
||||||
|
### 12.2. Запуск тестов
|
||||||
|
|
||||||
|
#### Шаги для запуска
|
||||||
|
1. Скачать .jar файл с тестами
|
||||||
|
2. Скомпилировать свою программу
|
||||||
|
3. Проверить наличие .class файла
|
||||||
|
4. Запустить тесты командой
|
||||||
|
|
||||||
|
#### Пример команды запуска
|
||||||
|
```bash
|
||||||
|
java -cp <путь_к_тестируемому_классу>:<путь_к_тест.jar> <название_теста>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Рекомендация:** Создать скрипт для автоматизации запуска тестов
|
||||||
|
|
||||||
|
### 12.3. Требования к решениям
|
||||||
|
- Для второго ДЗ: промежуточные результаты должны помещаться в `int`
|
||||||
|
- Использовать можно всё из стандартной поставки Java
|
||||||
|
- Неправильное использование → минусы при сдаче
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 13. Дополнительное задание: Run.me
|
||||||
|
|
||||||
|
### 13.1. Описание
|
||||||
|
- **Необязательное** задание для тех, кому "нечего делать"
|
||||||
|
- Содержит как простые, так и откровенно сложные задачи
|
||||||
|
- Предназначено для дополнительной практики
|
||||||
|
|
||||||
|
### 13.2. Рекомендации
|
||||||
|
- ✅ Посмотреть полчасика
|
||||||
|
- ✅ Получить доступные плюсики
|
||||||
|
- ✅ Перейти к основному ДЗ
|
||||||
|
- ⚠️ НЕ закапываться в Run.me - это плохая стратегия!
|
||||||
|
|
||||||
|
### 13.3. Оценивание
|
||||||
|
- Максимум баллов не больше, чем за обычное ДЗ
|
||||||
|
- Выполнить обычное ДЗ **гораздо полезнее**
|
||||||
|
- Сложность оценивается по количеству решивших
|
||||||
|
- Оценка: коэффициент × количество решённых задач
|
||||||
|
|
||||||
|
### 13.4. Технические детали
|
||||||
|
- Можно использовать **всё что угодно**
|
||||||
|
- Проверяется только правильность URL результата
|
||||||
|
- Код НЕ проверяется (в отличие от обычных ДЗ)
|
||||||
|
- Каждая строка = отдельное число (не склеиваются)
|
||||||
|
- Не надо показывать код преподавателю
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 14. Система баллов и оценок
|
||||||
|
|
||||||
|
### 14.1. Начисление очков
|
||||||
|
- Очки начисляются за сдачу домашних заданий
|
||||||
|
- Видны в специальной таблице (НЕ в БАРСе)
|
||||||
|
- Несдача ДЗ = 0 очков
|
||||||
|
|
||||||
|
### 14.2. Важные замечания
|
||||||
|
- ⚠️ Нельзя сравнивать очки за разные ДЗ
|
||||||
|
- ⚠️ Нельзя сравнивать очки между группами
|
||||||
|
- ✅ Гарантируется **локальная справедливость** внутри группы
|
||||||
|
|
||||||
|
### 14.3. Локальная справедливость
|
||||||
|
**Правило:**
|
||||||
|
```
|
||||||
|
Если студент A и студент B:
|
||||||
|
- Решили одинаковые ДЗ
|
||||||
|
- У A не больше задержки, чем у B
|
||||||
|
- У A не больше минусов, чем у B
|
||||||
|
→ То у A точно не меньше баллов, чем у B
|
||||||
|
```
|
||||||
|
|
||||||
|
### 14.4. Конвертация в БАРС
|
||||||
|
- Конвертация происходит **в конце курса**
|
||||||
|
- Очки нормируются относительно группы
|
||||||
|
- Чем больше очков относительно коллег → выше оценка
|
||||||
|
|
||||||
|
### 14.5. Критерии оценок
|
||||||
|
- **Для 5 (отлично):** > 90 баллов в БАРСе
|
||||||
|
- За каждое ДЗ гарантируется минимальный процент баллов
|
||||||
|
- Сдать ДЗ **всегда** строго лучше, чем не сдать
|
||||||
|
- Разница между "сдано" и "не сдано" **существенная**
|
||||||
|
|
||||||
|
### 14.6. Причины разброса баллов
|
||||||
|
- Результаты Run.me (различия в решённых задачах)
|
||||||
|
- Задержки при сдаче
|
||||||
|
- Количество минусов
|
||||||
|
- Относительный перформанс в группе
|
||||||
|
|
||||||
|
### 14.7. Интерпретация статуса
|
||||||
|
- 🟢 **Зелёный** → всё хорошо
|
||||||
|
- 🔴 **Красный** → проблемы, нужно подтянуться
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 15. Практические рекомендации
|
||||||
|
|
||||||
|
### 15.1. Стратегия успешной сдачи
|
||||||
|
1. ✅ Начинать делать ДЗ сразу после выдачи
|
||||||
|
2. ✅ Стремиться сдать в первую неделю (delay = 0)
|
||||||
|
3. ✅ Тщательно проверять код перед демонстрацией
|
||||||
|
4. ✅ Использовать тесты для самопроверки
|
||||||
|
5. ✅ Создать скрипты для автоматизации
|
||||||
|
|
||||||
|
### 15.2. Работа с кодом
|
||||||
|
- Можно использовать линтеры для Java
|
||||||
|
- Следить за качеством кода
|
||||||
|
- Исправлять замечания преподавателя
|
||||||
|
- Помнить о накоплении минусов
|
||||||
|
|
||||||
|
### 15.3. Что НЕ стоит делать
|
||||||
|
- ❌ Откладывать ДЗ на последнюю неделю
|
||||||
|
- ❌ Закапываться в Run.me вместо основного ДЗ
|
||||||
|
- ❌ Игнорировать замечания преподавателя
|
||||||
|
- ❌ Сравнивать свои баллы с другими группами
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 16. Обратная связь
|
||||||
|
|
||||||
|
### 16.1. Если недоволен результатом
|
||||||
|
- Использовать кнопку 👎 (thumbs down) под ответами
|
||||||
|
- Написать в чат курса
|
||||||
|
- Отправить email преподавателю
|
||||||
|
|
||||||
|
### 16.2. Если что-то непонятно
|
||||||
|
- Задавать вопросы в чате
|
||||||
|
- Подходить к преподавателю после лекции
|
||||||
|
- Писать на email для сложных вопросов
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Резюме первой лекции
|
||||||
|
|
||||||
|
### Ключевые выводы
|
||||||
|
1. **Организация:** Лекции → ДЗ → Практика (сдача модификаций)
|
||||||
|
2. **Оценивание:** Очки → конвертация в БАРС → итоговая оценка
|
||||||
|
3. **Java:** Популярный, простой, безопасный, кроссплатформенный язык
|
||||||
|
4. **Стратегия:** Сдавать быстро, качественно, регулярно
|
||||||
|
|
||||||
|
### Что делать дальше
|
||||||
|
1. Настроить среду разработки (JDK установлен)
|
||||||
|
2. Начать второе домашнее задание
|
||||||
|
3. Скачать и настроить тесты
|
||||||
|
4. Стремиться сдать в первую неделю
|
||||||
|
|
||||||
|
### Важные даты
|
||||||
|
- Сдача ДЗ: каждый вторник (3 попытки)
|
||||||
|
- Досрочный зачёт: конец декабря
|
||||||
|
- Стандартный зачёт: сессия
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Полезные ссылки
|
||||||
|
- Чат курса (основные вопросы)
|
||||||
|
- Email преподавателя (сложные вопросы)
|
||||||
|
- Репозиторий с тестами
|
||||||
|
- Материалы курса
|
||||||
|
- Раздел "Ошибки и опечатки" в чате
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Успехов в изучении Java! 🚀**
|
||||||
Reference in New Issue
Block a user