diff --git a/build/j-spec.pdf b/build/j-spec.pdf index 9e6addd..b8645e8 100644 Binary files a/build/j-spec.pdf and b/build/j-spec.pdf differ diff --git a/build/jtc3-03-workshop.pdf b/build/jtc3-03-workshop.pdf new file mode 100644 index 0000000..d536abc Binary files /dev/null and b/build/jtc3-03-workshop.pdf differ diff --git a/j-spec.tex b/j-spec.tex index 7240bde..fd9786f 100644 --- a/j-spec.tex +++ b/j-spec.tex @@ -35,11 +35,12 @@ \chapter{Java Development Kit} %\subfile{jtd6-11a} -\newpage \appendix +\setcounter{secnumdepth}{5} \printnomenclature[40mm] -\chapter{Семинары} +\chapter*{Семинары} +\addcontentsline{toc}{chapter}{Семинары} \renewcommand{\thesection}{\Asbuk{section}} \subfile{jtc1-01-workshop} \newpage diff --git a/jtc1-01-abstract.tex b/jtc1-01-abstract.tex index ebb4079..4c63d0d 100644 --- a/jtc1-01-abstract.tex +++ b/jtc1-01-abstract.tex @@ -2,7 +2,7 @@ \begin{document} \pagestyle{plain} -\tableofcontents +%\tableofcontents \section{Платформа: история и окружение} \subsection{В этом разделе} Краткая история (причины возникновения); инструментарий, выбор версии; CLI; структура проекта; документирование; некоторые интересные способы сборки проектов. @@ -466,6 +466,7 @@ Docker-образ и, как следствие, Docker-контейнеры в \item *Создать два Docker-образа. Один должен компилировать Java-проект обратно в папку на компьютере подьзователя, а второй забирать скомпилированные классы и исполнять их. \end{itemize} -\printnomenclature[40mm] +% \newpage +% \printnomenclature[40mm] \end{document} \ No newline at end of file diff --git a/jtc2-02-abstract.tex b/jtc2-02-abstract.tex index 2422f8a..cea2d2d 100644 --- a/jtc2-02-abstract.tex +++ b/jtc2-02-abstract.tex @@ -1,10 +1,9 @@ \documentclass[j-spec.tex]{subfiles} \begin{document} -%\setcounter{tocdepth}{3} \setcounter{section}{1} \pagestyle{plain} -\tableofcontents +%\tableofcontents \section{Специализация: данные и функции} \subsection{В предыдущем разделе} \begin{itemize} @@ -689,7 +688,7 @@ Constare - (лат. стоять твёрдо). Константность эт \item Написать метод, которому можно передать в качестве аргумента массив, состоящий строго из единиц и нулей (целые числа типа \code{int}). Метод должен заменить единицы в массиве на нули, а нули на единицы и не содержать ветвлений. Написать как можно больше вариантов метода. \end{enumerate} -\newpage -\printnomenclature[40mm] +% \newpage +% \printnomenclature[40mm] \end{document} diff --git a/jtc3-03-abstract.tex b/jtc3-03-abstract.tex index 783e5ba..bfa2055 100644 --- a/jtc3-03-abstract.tex +++ b/jtc3-03-abstract.tex @@ -5,7 +5,7 @@ \setlength{\columnsep}{22pt} \pagestyle{plain} \sloppy -\tableofcontents +%\tableofcontents \section{Специализация: ООП} \subsection{В предыдущем разделе} Будет рассмотрен базовый функционал языка, то есть основная встроенная функциональность, такая как математические операторы, условия, циклы, бинарные операторы. Далее способы хранения и представления данных в Java, и в конце способы манипуляции данными, то есть функции (в терминах языка называющиеся методами). @@ -1187,7 +1187,7 @@ public class Cat extends Animal { \item * Добавить механизм, создающий 25\% разброс значений каждого ограничения для каждого объекта. \end{enumerate} -\newpage -\printnomenclature[40mm] +% \newpage +% \printnomenclature[40mm] \end{document} diff --git a/jtc3-03-workshop.tex b/jtc3-03-workshop.tex index fed3e00..cdba610 100644 --- a/jtc3-03-workshop.tex +++ b/jtc3-03-workshop.tex @@ -56,7 +56,7 @@ \end{spreadtab} \subsection{Подробности} -\subsubsection{Организационный момент} +\subsubsection*{Организационный момент} \begin{itemize} \item \textbf{Цель этапа:} Позитивно начать урок, создать комфортную среду для обучения. \item \textbf{Тайминг:} 3-5 минут. @@ -68,7 +68,7 @@ \end{itemize} \end{itemize} -\subsubsection{Quiz} +\subsubsection*{Quiz} \begin{itemize} \item \textbf{Цель этапа:} Вовлечение аудитории в обратную связь. \item \textbf{Тайминг:} 5-7 минут (4 вопроса, по минуте на ответ). @@ -118,7 +118,7 @@ \end{enumerate} \end{itemize} -\subsubsection{Рассмотрение ДЗ} +\subsubsection*{Рассмотрение ДЗ} \begin{itemize} \item \textbf{Цель этапа:} Пояснить не очевидные моменты в формулировке ДЗ с лекции, синхронизировать прочитанный на лекции материал к началу семинара. \item \textbf{Тайминг:} 15-20 минут. @@ -131,11 +131,11 @@ \begin{itemize} \item Написать класс кота так, чтобы каждому объекту кота присваивался личный порядковый целочисленный номер; - \textbf{Вариант решения в приложении \ref{appendix:hw1}} + \textbf{Вариант решения в приложении \ref{appendix:sem3-hw1}} \item Написать классы кота и собаки, наследники животного. У всех есть три действия: бежать, плыть, прыгать. Действия принимают размер препятствия и возвращают булев результат. Три ограничения: высота прыжка, расстояние, которое животное может пробежать, расстояние, которое животное может проплыть. Следует учесть, что коты не любят воду. - \textbf{Вариант решения в приложении \ref{appendix:hw2}} + \textbf{Вариант решения в приложении \ref{appendix:sem3-hw2}} \item Добавить механизм, создающий 25\% разброс значений каждого ограничения для каждого объекта. @@ -157,7 +157,7 @@ \end{itemize} \end{itemize} -\subsubsection{Вопросы и ответы} +\subsubsection*{Вопросы и ответы} \begin{itemize} \item \textbf{Ценность этапа} Вовлечение аудитории в обратную связь, пояснение неочевидных моментов в материале лекции и другой проделанной работе. \item \textbf{Тайминг} 5-15 минут @@ -171,7 +171,7 @@ \end{itemize} \end{itemize} -\subsubsection{Задание 1} +\subsubsection*{Задание 1} \begin{itemize} \item \textbf{Ценность этапа} Создание класса и объекта. \item \textbf{Тайминг} 5 минут. @@ -184,7 +184,7 @@ \begin{itemize} \item Создать класс "Сотрудник" с полями: ФИО, должность, телефон, зарплата, возраст; - \textbf{Вариант исполнения класса в приложении \ref{appendix:ct1}} + \textbf{Вариант исполнения класса в приложении \ref{appendix:sem3-ct1}} \begin{lstlisting}[language=Java,style=JCodeStyle,caption={Создание объекта класса}] Employee employeeIvan = new Employee("Ivan", "Igorevich", @@ -194,7 +194,7 @@ Employee employeeIvan = new Employee("Ivan", "Igorevich", \end{itemize} \end{itemize} -\subsubsection{Задание 2} +\subsubsection*{Задание 2} \begin{itemize} \item \textbf{Ценность этапа} Манипуляция информацией об объекте. \item \textbf{Тайминг} 10 минут. @@ -259,7 +259,7 @@ Employee employeeIvan = new Employee("Ivan", "Igorevich", \end{itemize} \end{itemize} -\subsubsection{Задание 3} +\subsubsection*{Задание 3} \begin{itemize} \item \textbf{Ценность этапа} Создание и манипуляция множествами объектов. \item \textbf{Тайминг} 20-25 минут. @@ -335,7 +335,7 @@ Employee[] employees = { \end{itemize} \end{itemize} -\subsubsection{Задание 4} +\subsubsection*{Задание 4} \begin{itemize} \item \textbf{Ценность этапа} Манипуляция информацией об объекте. \item \textbf{Тайминг} 15-20 минут. @@ -410,7 +410,7 @@ for (int i = 0; i < employees.length; i++) { \end{itemize} \end{itemize} -\subsubsection{Задание 5} +\subsubsection*{Задание 5} \begin{itemize} \item \textbf{Ценность этапа} Соблюдение атомарности методов, независимость методов, манипулирующих данными от окружения. \item \textbf{Тайминг} 10-15 минут. @@ -445,7 +445,7 @@ private static float averageAge(Employee[] emp){ \end{lstlisting} \end{itemize} -\subsubsection{Домашнее задание} +\subsubsection*{Домашнее задание} \begin{itemize} \item \textbf{Ценность этапа} Задать задание для самостоятельного выполнения между занятиями. \item \textbf{Тайминг} 5-10 минут. @@ -512,7 +512,7 @@ for (int i = 0; i < employees.length; i++) { \end{itemize} \end{itemize} -\subsubsection{Рефлексия и завершение семинара} +\subsubsection*{Рефлексия и завершение семинара} \begin{itemize} \item \textbf{Цель этапа:} Привести урок к логическому завершению, посмотреть что студентам удалось, что было сложно и над чем нужно еще поработать \item \textbf{Тайминг:} 5-10 минут @@ -529,21 +529,22 @@ for (int i = 0; i < employees.length; i++) { \newpage \appendix -\section*{Приложения} -\addcontentsline{toc}{section}{Приложения} -\renewcommand{\thesubsection}{\Asbuk{subsection}} +\subsection*{Приложения} +\addcontentsline{toc}{subsection}{Приложения} +\setcounter{subsubsection}{0} +\renewcommand{\thesubsubsection}{\Asbuk{subsubsection}} -\subsection{Домашнее задание 1} -\label{appendix:hw1} +\subsubsection{Домашнее задание 1} +\label{appendix:sem3-hw1} \lstinputlisting[language=Java,style=JCodeStyle,caption={Кот}]{src/s03-hw1-cat.java} -\subsection{Домашнее задание 2} -\label{appendix:hw2} +\subsubsection{Домашнее задание 2} +\label{appendix:sem3-hw2} \lstinputlisting[language=Java,style=JCodeStyle,caption={Общий класс животного}]{src/s03-hw2-animal.java} \lstinputlisting[language=Java,style=JCodeStyle,caption={Кот}]{src/s03-hw2-cat.java} \lstinputlisting[language=Java,style=JCodeStyle,caption={Собака}]{src/s03-hw2-dog.java} \lstinputlisting[language=Java,style=JCodeStyle,caption={Марафон}]{src/s03-hw2-marathon.java} -\subsection{Практическое задание 1} -\label{appendix:ct1} +\subsubsection{Практическое задание 1} +\label{appendix:sem3-ct1} \lstinputlisting[language=Java,style=JCodeStyle,caption={Сотрудник}]{src/s03-ct1-employee.java} \end{document} diff --git a/jtc4-04-abstract.tex b/jtc4-04-abstract.tex index 8aa47d0..ea4cff6 100644 --- a/jtc4-04-abstract.tex +++ b/jtc4-04-abstract.tex @@ -5,7 +5,7 @@ \setlength{\columnsep}{22pt} \pagestyle{plain} \sloppy -\tableofcontents +%\tableofcontents \section{Специализация: ООП и исключения} \subsection{В предыдущем разделе} Была рассмотрена реализация объектно-ориентированного программирования в Java. Рассмотрели классы и объекты, а также наследование, полиморфизм и инкапсуляцию. Дополнительно был освещён вопрос устройства памяти. @@ -749,7 +749,7 @@ try (TestStream stream = new TestStream()) { \item для проверки напишите программу, преобразующую квадратный массив целых чисел 5х5 в сумму чисел в этом массиве, при этом, программа должна выбросить исключение, если строк или столбцов в исходном массиве окажется не 5. \end{enumerate} -\newpage -\printnomenclature[40mm] +% \newpage +% \printnomenclature[40mm] \end{document} diff --git a/jtc4-04-workshop.tex b/jtc4-04-workshop.tex index 6e6b543..1d99281 100644 --- a/jtc4-04-workshop.tex +++ b/jtc4-04-workshop.tex @@ -51,7 +51,7 @@ \end{spreadtab} \subsection{Подробности} -\subsubsection{Организационный момент} +\subsubsection*{Организационный момент} \begin{itemize} \item \textbf{Цель этапа:} Позитивно начать урок, создать комфортную среду для обучения. \item \textbf{Тайминг:} 3-5 минут. @@ -63,7 +63,7 @@ \end{itemize} \end{itemize} -\subsubsection{Quiz} +\subsubsection*{Quiz} \begin{itemize} \item \textbf{Цель этапа:} Вовлечение аудитории в обратную связь. \item \textbf{Тайминг:} 5-7 минут (4 вопроса, по минуте на ответ). @@ -101,7 +101,7 @@ \end{enumerate} \end{itemize} -\subsubsection{Рассмотрение ДЗ} +\subsubsection*{Рассмотрение ДЗ} \begin{itemize} \item \textbf{Цель этапа:} Пояснить не очевидные моменты в формулировке ДЗ с лекции, синхронизировать прочитанный на лекции материал к началу семинара. \item \textbf{Тайминг:} 15-20 минут. @@ -143,12 +143,12 @@ private static final class RowMismatchException extends RuntimeException { \item для проверки напишите программу, преобразующую квадратный массив целых чисел 5х5 в сумму чисел в этом массиве, при этом, программа должна выбросить исключение, если строк или столбцов в исходном массиве окажется не 5. - \textbf{Вариант решения представлен в приложении \ref{appendix:hw3}} + \textbf{Вариант решения представлен в приложении \ref{appendix:sem4-hw3}} \end{itemize} \end{itemize} -\subsubsection{Вопросы и ответы} +\subsubsection*{Вопросы и ответы} \begin{itemize} \item \textbf{Ценность этапа} Задать задание для самостоятельного выполнения между занятиями. \item \textbf{Тайминг} 5-15 минут @@ -162,7 +162,7 @@ private static final class RowMismatchException extends RuntimeException { \end{itemize} \end{itemize} -\subsubsection{Задание 1} +\subsubsection*{Задание 1} \begin{itemize} \item \textbf{Ценность этапа} Написание почти полноценной механики по краткому ТЗ. \item \textbf{Тайминг} 25-30 минут. @@ -180,7 +180,7 @@ private static final class RowMismatchException extends RuntimeException { \item В основном классе программы необходимо по-разному обработать исключения. \item Метод возвращает \code{true}, если значения верны или \code{false} в противном случае. \end{enumerate} - \textbf{Вариант исполнения класса в приложении \ref{appendix:ct1}} + \textbf{Вариант исполнения класса в приложении \ref{appendix:sem4-ct1}} \textbf{Вариант маршрута решения задачи} @@ -256,7 +256,7 @@ public static boolean checkCredentials(String login, String password, String con \end{itemize} -\subsubsection{Задание 2} +\subsubsection*{Задание 2} \begin{itemize} \item \textbf{Ценность этапа} Написание наброска пет-проекта, повторение информации об ООП, работа с исключениями. \item \textbf{Тайминг} 35-40 минут. @@ -280,7 +280,7 @@ public static boolean checkCredentials(String login, String password, String con \end{itemize} \item Вывести в консоль итоговое количество совершённых покупок после выполнения основного кода приложения. \end{enumerate} - \textbf{Вариант исполнения класса в приложении \ref{appendix:ct1}} + \textbf{Вариант исполнения класса в приложении \ref{appendix:sem4-ct1}} \textbf{Вариант маршрута решения задачи} @@ -366,7 +366,7 @@ public static Order buy(Customer who, Item what, int howMuch) { \end{lstlisting} \end{itemize} -\subsubsection{Домашнее задание} +\subsubsection*{Домашнее задание} \begin{itemize} \item \textbf{Ценность этапа} Задать задание для самостоятельного выполнения между занятиями. \item \textbf{Тайминг} 5-10 минут. @@ -430,7 +430,7 @@ private static void celebrate(Employee[] emp) { \end{enumerate} \end{itemize} -\subsubsection{Рефлексия и завершение семинара} +\subsubsection*{Рефлексия и завершение семинара} \begin{itemize} \item \textbf{Цель этапа:} Привести урок к логическому завершению, посмотреть что студентам удалось, что было сложно и над чем нужно еще поработать \item \textbf{Тайминг:} 5-10 минут @@ -447,20 +447,21 @@ private static void celebrate(Employee[] emp) { \newpage \appendix -\section*{Приложения} -\addcontentsline{toc}{section}{Приложения} -\renewcommand{\thesubsection}{\Asbuk{subsection}} +\subsection*{Приложения} +\addcontentsline{toc}{subsection}{Приложения} +\setcounter{subsubsection}{0} +\renewcommand{\thesubsubsection}{\Asbuk{subsubsection}} -\subsection{Домашнее задание 3} -\label{appendix:hw3} +\subsubsection{Домашнее задание 3} +\label{appendix:sem4-hw3} \lstinputlisting[language=Java,style=JCodeStyle,caption={Основная программа}]{src/s04-hw3-exceptional.java} -\subsection{Практическое задание 1} -\label{appendix:ct1} +\subsubsection{Практическое задание 1} +\label{appendix:sem4-ct1} \lstinputlisting[language=Java,style=JCodeStyle,caption={Логин}]{src/s04-ct1-sign.java} -\subsection{Практическое задание 2} -\label{appendix:ct2} +\subsubsection{Практическое задание 2} +\label{appendix:sem4-ct2} \lstinputlisting[language=Java,style=JCodeStyle,caption={Магазин}]{src/s04-ct2-shop.java} \end{document} diff --git a/jtc5-05-abstract.tex b/jtc5-05-abstract.tex index b6e0ccd..a450697 100644 --- a/jtc5-05-abstract.tex +++ b/jtc5-05-abstract.tex @@ -5,7 +5,7 @@ \setlength{\columnsep}{22pt} \pagestyle{plain} \sloppy -\tableofcontents +%\tableofcontents \section{Специализация: тонкости работы} \subsection{В предыдущем разделе} Рассмотрены понятия внутренних и вложенных классов; процессы создания, использования и расширения перечислений. Подробно рассмотрены исключения с точки зрения ООП, их философия и тесная связь с многопоточностью в Java, обработка, разделение понятия штатных и нештатных ситуаций. @@ -705,8 +705,8 @@ cat0 equal to cat3? false \item Написать метод поиска слова внутри файла. \end{enumerate} -\newpage -\printnomenclature[40mm] +% \newpage +% \printnomenclature[40mm] \end{document} diff --git a/jtc5-05-workshop.tex b/jtc5-05-workshop.tex index 962045a..260c538 100644 --- a/jtc5-05-workshop.tex +++ b/jtc5-05-workshop.tex @@ -50,7 +50,7 @@ \end{spreadtab} \subsection{Подробности} -\subsubsection{Организационный момент} +\subsubsection*{Организационный момент} \begin{itemize} \item \textbf{Цель этапа:} Позитивно начать урок, создать комфортную среду для обучения. \item \textbf{Тайминг:} 3-5 минут. @@ -62,7 +62,7 @@ \end{itemize} \end{itemize} -\subsubsection{Quiz} +\subsubsection*{Quiz} \begin{itemize} \item \textbf{Цель этапа:} Вовлечение аудитории в обратную связь. \item \textbf{Тайминг:} 5-7 минут (4 вопроса, по минуте на ответ). @@ -100,7 +100,7 @@ \end{enumerate} \end{itemize} -\subsubsection{Рассмотрение ДЗ} +\subsubsection*{Рассмотрение ДЗ} \begin{itemize} \item \textbf{Цель этапа:} Пояснить не очевидные моменты в формулировке ДЗ с лекции, синхронизировать прочитанный на лекции материал к началу семинара. \item \textbf{Тайминг:} 15-20 минут. @@ -280,7 +280,7 @@ private static boolean isInFile(String fileName, String search) throws IOExcepti \end{itemize} \end{itemize} -\subsubsection{Вопросы и ответы} +\subsubsection*{Вопросы и ответы} \begin{itemize} \item \textbf{Ценность этапа} Задать задание для самостоятельного выполнения между занятиями. \item \textbf{Тайминг} 5-15 минут @@ -294,7 +294,7 @@ private static boolean isInFile(String fileName, String search) throws IOExcepti \end{itemize} \end{itemize} -\subsubsection{Задание 1} +\subsubsection*{Задание 1} \begin{itemize} \item \textbf{Ценность этапа} Сохранение состояния приложения между запусками \item \textbf{Тайминг} 15-20 мин @@ -343,7 +343,7 @@ fos.close(); \end{itemize} \end{itemize} -\subsubsection{Задание 2} +\subsubsection*{Задание 2} \begin{itemize} \item \textbf{Ценность этапа} Загрузка состояния приложения при запуске \item \textbf{Тайминг} 15-20 мин @@ -395,7 +395,7 @@ System.out.println(Arrays.toString(ar10)); \end{itemize} \end{itemize} -\subsubsection{Задание 3} +\subsubsection*{Задание 3} \begin{itemize} \item \textbf{Ценность этапа} Работа с текстом (автоматизированный поиск и замена текста в файле или группе файлов) \item \textbf{Тайминг} 10-15 мин @@ -456,7 +456,7 @@ fos.write(sb.toString().getBytes()); \end{itemize} -\subsubsection{Задание 4} +\subsubsection*{Задание 4} \begin{itemize} \item \textbf{Ценность этапа} Работа с файловой системой \item \textbf{Тайминг} 15-20 мин @@ -501,7 +501,7 @@ void printContents("."); \end{itemize} \end{itemize} -\subsubsection{Задание 5 (необязательное)} +\subsubsection*{Задание 5 (необязательное)} \begin{itemize} \item \textbf{Ценность этапа} Описание часто недостающих механик операционной системы по «массовой» работе с файлами. \item \textbf{Тайминг} 15-20 мин @@ -528,7 +528,7 @@ for (String fileName : a) { \end{lstlisting} \end{itemize} -\subsubsection{Домашнее задание} +\subsubsection*{Домашнее задание} \begin{itemize} \item \textbf{Ценность этапа} Задать задание для самостоятельного выполнения между занятиями. \item \textbf{Тайминг} 5-10 минут. @@ -591,7 +591,7 @@ System.out.println(Arrays.toString(ar20)); \end{enumerate} \end{itemize} -\subsubsection{Рефлексия и завершение семинара} +\subsubsection*{Рефлексия и завершение семинара} \begin{itemize} \item \textbf{Цель этапа:} Привести урок к логическому завершению, посмотреть что студентам удалось, что было сложно и над чем нужно еще поработать \item \textbf{Тайминг:} 5-10 минут @@ -607,16 +607,4 @@ System.out.println(Arrays.toString(ar20)); \end{itemize} \newpage -\appendix -\section*{Приложения} -\addcontentsline{toc}{section}{Приложения} -\renewcommand{\thesubsection}{\Asbuk{subsection}} - -\subsection{Домашнее задание 3} -\label{appendix:hw3} -%\lstinputlisting[language=Java,style=JCodeStyle,caption={Основная программа}]{src/s04-hw3-exceptional.java} - \end{document} - - - \item [$*_2$]