Категория:Технологии программирования (10 семестр): различия между версиями
ILobster (обсуждение | вклад) мНет описания правки |
|||
(не показаны 33 промежуточные версии 4 участников) | |||
Строка 1: | Строка 1: | ||
<p>{{Предмет | name=Технологии программирования | prepod=[[Тарнакин А.О.]] | lections=? | seminars=нет | labs=3 | dzs= | <p>{{Предмет | name=Технологии программирования | prepod=[[Тарнакин А.О.]] | lections=? | seminars=нет | labs=3 | dzs=нет | rks=нет | signif=по желанию | what=экзамен}}</p> | ||
Технологии программирования. А конкретно - [http://ru.wikipedia.org/wiki/Java Java]. | Технологии программирования. А конкретно - [http://ru.wikipedia.org/wiki/Java Java]. | ||
Строка 10: | Строка 10: | ||
Всего 3 лабораторных. | Всего 3 лабораторных. | ||
Выполняются на языке Java. ПО для разработки можно загрузить [http://www.oracle.com/technetwork/java/javase/downloads/index.html здесь]. Необходимы <code>JRE</code> и <code>JDK</code>. В качестве <code>IDE</code> вполне хватит <code>NetBeans</code>. Сервером приложений лучше выбрать <code>Apache Tomcat</code>, а не <code>GlassFish</code>. | |||
Как можно заметить, описания работ даны в очень общем виде, без подробных требований. По этому поводу прямая речь от преподавателя: <blockquote>''Задания умышленно не детализирую, мне интересно посмотреть на ваше творчество.''</blockquote> | |||
Сдача лабораторных (и курсовой) происходит по принципу "чем раньше - тем проще". В начале вообще по коду ничего отвечать не надо и нет дополнительных заданий. Но начиная где-то с мая сдать станет ощутимо сложнее. | |||
=== Лабораторная работа №1 === | |||
Работа с базовыми классами стандартных пакетов <code>java.io</code>, <code>java.net</code>, <code>java.util</code>. | |||
Задание: | |||
* необходимо получить содержимое web-странички, проиндексировать слова в нём (в содержимом) и результаты сохранить в файл; | |||
* программа должна быть исполнена в виде консольного приложения, позволяющего выбирать адрес web-страницы и имя файла, в который будут сохранены результаты; | |||
* программу необходимо компилировать и запускать без помощи IDE (но сам код можно писать и в IDE). | |||
Ссылки по теме: | |||
* [http://en.wikibooks.org/wiki/Java_Programming/Understanding_a_Java_Program как устроена Java-программа]; | |||
* [http://www.skipy.ru/technics/likbez.html#hello компиляция и запуск из консоли Windows]; | |||
* [http://docs.oracle.com/javase/tutorial/essential/io/ основы ввода/вывода]; | |||
* [http://docs.oracle.com/javase/6/docs/api/java/net/package-summary.html#package_description работа с сетью]; | |||
* [http://docs.oracle.com/javase/tutorial/collections/index.html контейнерные классы]. | |||
Проникнуться предметной областью поможет [http://www.youtube.com/watch?v=96UQEVK05kM эта песня]. | |||
=== Лабораторная работа №2 === | |||
Выполняется на базе ЛР №1. | |||
Работа с БД, многопоточность, синхронизация, журналирование. | |||
Задание: | |||
* программа должна быть выполнена как многопоточное приложение, использующее <code>java.util.concurrent</code> и позволяющее ограничивать загрузку процессора; | |||
* индексация каждой странички должна производиться в отдельном потоке, содержимое сохранять в БД тройками вида '''<code>слово - частота упоминания на странице - страница</code>'''. Найденные на страничке ссылки ('''<code><nowiki>href="http://..."</nowiki></code>''') должны обрабатываться отличным от текущего потоком; | |||
* программа должна выполнять поиск по словам и выводить адреса проиндексированных ранее страничек в порядке, пропорциональном частоте появления слова на страничке; | |||
* программа должна писать отладочные сообщения посредством стандартных механизмов [http://ru.wikipedia.org/wiki/Slf4J SLF4J]. | |||
Ссылки по теме: | |||
* драйвера для работы с БД: | |||
** [http://jdbc.postgresql.org/ PostgreSQL]; | |||
** [http://www.mysql.com/products/connector/ MySQL]; | |||
** [http://hsqldb.org/ HyperSQL]; | |||
* [http://en.wikipedia.org/wiki/Java_Database_Connectivity работа с БД]; | |||
* [http://docs.oracle.com/javase/tutorial/essential/concurrency/index.html многопоточность]; | |||
** [http://docs.oracle.com/javase/tutorial/essential/concurrency/highlevel.html синхронизация потоков] (чтобы не писать свой велосипед); | |||
* [http://www.rsdn.ru/forum/java/3622844.1 вопросы для самоконтроля]. | |||
=== Лабораторная работа №3 === | |||
Выполняется на базе ЛР №2. | |||
Создание web-сервисов. | |||
Задание: | |||
* программа должна быть выполнена в виде web-приложения, индексирующего в фоновом режиме содержимое страничек, и обрабатывать поисковые запросы посредством [http://ru.wikipedia.org/wiki/REST REST] web-сервиса. | |||
Ссылки по теме: | |||
* [http://habrahabr.ru/post/38730/ архитектура REST]; | |||
* [http://www.devx.com/Java/Article/42873 RESTful веб-сервисы и Java]; | |||
* [http://docs.jboss.org/resteasy/docs/1.1.GA/userguide/html_single/index.html руководство по работе с RESTful веб-сервисами на Java] - перечислены все методы и их параметры; | |||
* [http://javadev.ru/Eclipse_Web_Tools_Platform/ пример создания веб-приложения с сервлетом] - очень помогает разобраться, только не надо делать оттуда всё подряд. Всё необходимое находится в итерациях 2 и 3, где про сервлет и класс <code>Database</code>; | |||
* [http://jersey.java.net/use/getting-started.html Jersey] и [http://jersey.java.net/nonav/documentation/latest/user-guide.html документация по Jersey]; | |||
* [http://www.blogsoncloud.com/jsp/blogs/restful-web-service-using-jersey.jsp пример создания веб-сервиса с Jersey] - используется <code>Eclipse</code>; | |||
* [http://www.vogella.com/articles/REST/article.html и ещё один пример веб-службы на Jersey] - также используется <code>Eclipse</code>; | |||
* [http://vichargrave.com/restful-web-service-development-with-netbeans-and-tomcat-tutorial/ ещё один пример с Jersey] - используется <code>NetBeans</code> и <code>Tomcat</code>; | |||
* [http://forum.vingrad.ru/forum/topic-242617/kw-restful-jax--maven-jersey.html веб-сервис на Maven]. | |||
Если решите делать на [http://ru.wikipedia.org/wiki/SOAP SOAP] - передумайте обратно. [[Тарнакин А.О. | Тарнакин]] и все правильные чуваки не одобряют. | |||
=== Готовые лабораторные работы === | |||
{| class="wikitable" | |||
! Год !! Вариант исполнения !! Работа !! Описание !! Ссылка | |||
|- align="center" | |||
| 2013 || 1 || ЛР №1 || сбор только русских слов через RegExp<br>Notepad++, командная строка || [http://yadi.sk/d/14F6O7jx2vpNM загрузить] | |||
|- align="center" | |||
| 2013 || 1 || ЛР №2 || СУБД PostgreSQL (схема БД есть), настройки из config.ini<br>NetBeans || [http://yadi.sk/d/GbiQltGJ4CGK5 загрузить] | |||
|- align="center" | |||
| 2013 || 1 || ЛР №3 || СУБД PostgreSQL (схема БД из ЛР №2)<br>NetBeans, Apache Tomcat || [http://yadi.sk/d/HQi0_xfK3nKxa загрузить] | |||
|- align="center" | |||
| 2013 || 2 || все || Описание доступно по ссылке || [https://github.com/zhukovRoman/Java github] | |||
|- align="center" | |||
| 2013 || 3 || все || СУБД PostgreSQL (схема БД прилагается)<br>NetBeans, GlassFish || [http://yadi.sk/d/qAFbbk2M3plxW загрузить] | |||
|- align="center" | |||
| 2015 || * || все || С 2015 г. Тарнакин выдал новые задания по лабам. Изобретаем свой Google. Задание прилагается. || [https://yadi.sk/d/hiE06eOugvYrS загрузить] | |||
|} | |||
== Курсовая работа == | == Курсовая работа == | ||
Строка 16: | Строка 102: | ||
== Экзамен == | == Экзамен == | ||
Автоматов нет. Пропуски лекций не влияют ни на что. Сроки сдачи лабораторных и курсовой не влияют ни на что, даже если вы всё сделали ещё в первый месяц семестра <small>(задротам очень припечёт)</small>. Никаких привелегированных списков нет, все сдают одинаково: и ботаны, и нормальные люди. | |||
Списать легко, и Тарнакин знает, что почти все списывают. Но при ответе нужно разбираться в том, что ты списал, иначе оценка будет удручающая. | |||
В билете два теоретических вопроса. Задач / практики нет. | |||
Загрузки: | |||
* [http://yadi.sk/d/ciqV8cTk5Dpci вопросы к экзамену] | |||
* [http://yadi.sk/d/mosnXDEV63YZg ответы на вопросы] (передаются от потока к потоку, есть косяки, Тарнакин про них знает) | |||
== Литература == | == Литература == |
Текущая версия от 16:21, 28 мая 2015
|
Технологии программирования. А конкретно - Java.
Лекции
За явкой следить не будут. Вики-конспектов не будет, потому что лекции даются не для конспектирования. Весь материал тут.
Лабораторные работы
Всего 3 лабораторных.
Выполняются на языке Java. ПО для разработки можно загрузить здесь. Необходимы JRE
и JDK
. В качестве IDE
вполне хватит NetBeans
. Сервером приложений лучше выбрать Apache Tomcat
, а не GlassFish
.
Как можно заметить, описания работ даны в очень общем виде, без подробных требований. По этому поводу прямая речь от преподавателя:
Задания умышленно не детализирую, мне интересно посмотреть на ваше творчество.
Сдача лабораторных (и курсовой) происходит по принципу "чем раньше - тем проще". В начале вообще по коду ничего отвечать не надо и нет дополнительных заданий. Но начиная где-то с мая сдать станет ощутимо сложнее.
Лабораторная работа №1
Работа с базовыми классами стандартных пакетов java.io
, java.net
, java.util
.
Задание:
- необходимо получить содержимое web-странички, проиндексировать слова в нём (в содержимом) и результаты сохранить в файл;
- программа должна быть исполнена в виде консольного приложения, позволяющего выбирать адрес web-страницы и имя файла, в который будут сохранены результаты;
- программу необходимо компилировать и запускать без помощи IDE (но сам код можно писать и в IDE).
Ссылки по теме:
- как устроена Java-программа;
- компиляция и запуск из консоли Windows;
- основы ввода/вывода;
- работа с сетью;
- контейнерные классы.
Проникнуться предметной областью поможет эта песня.
Лабораторная работа №2
Выполняется на базе ЛР №1.
Работа с БД, многопоточность, синхронизация, журналирование.
Задание:
- программа должна быть выполнена как многопоточное приложение, использующее
java.util.concurrent
и позволяющее ограничивать загрузку процессора; - индексация каждой странички должна производиться в отдельном потоке, содержимое сохранять в БД тройками вида
слово - частота упоминания на странице - страница
. Найденные на страничке ссылки (href="http://..."
) должны обрабатываться отличным от текущего потоком; - программа должна выполнять поиск по словам и выводить адреса проиндексированных ранее страничек в порядке, пропорциональном частоте появления слова на страничке;
- программа должна писать отладочные сообщения посредством стандартных механизмов SLF4J.
Ссылки по теме:
- драйвера для работы с БД:
- работа с БД;
- многопоточность;
- синхронизация потоков (чтобы не писать свой велосипед);
- вопросы для самоконтроля.
Лабораторная работа №3
Выполняется на базе ЛР №2.
Создание web-сервисов.
Задание:
- программа должна быть выполнена в виде web-приложения, индексирующего в фоновом режиме содержимое страничек, и обрабатывать поисковые запросы посредством REST web-сервиса.
Ссылки по теме:
- архитектура REST;
- RESTful веб-сервисы и Java;
- руководство по работе с RESTful веб-сервисами на Java - перечислены все методы и их параметры;
- пример создания веб-приложения с сервлетом - очень помогает разобраться, только не надо делать оттуда всё подряд. Всё необходимое находится в итерациях 2 и 3, где про сервлет и класс
Database
; - Jersey и документация по Jersey;
- пример создания веб-сервиса с Jersey - используется
Eclipse
; - и ещё один пример веб-службы на Jersey - также используется
Eclipse
; - ещё один пример с Jersey - используется
NetBeans
иTomcat
; - веб-сервис на Maven.
Если решите делать на SOAP - передумайте обратно. Тарнакин и все правильные чуваки не одобряют.
Готовые лабораторные работы
Год | Вариант исполнения | Работа | Описание | Ссылка |
---|---|---|---|---|
2013 | 1 | ЛР №1 | сбор только русских слов через RegExp Notepad++, командная строка |
загрузить |
2013 | 1 | ЛР №2 | СУБД PostgreSQL (схема БД есть), настройки из config.ini NetBeans |
загрузить |
2013 | 1 | ЛР №3 | СУБД PostgreSQL (схема БД из ЛР №2) NetBeans, Apache Tomcat |
загрузить |
2013 | 2 | все | Описание доступно по ссылке | github |
2013 | 3 | все | СУБД PostgreSQL (схема БД прилагается) NetBeans, GlassFish |
загрузить |
2015 | * | все | С 2015 г. Тарнакин выдал новые задания по лабам. Изобретаем свой Google. Задание прилагается. | загрузить |
Курсовая работа
Страница курсовой работы находится здесь.
Экзамен
Автоматов нет. Пропуски лекций не влияют ни на что. Сроки сдачи лабораторных и курсовой не влияют ни на что, даже если вы всё сделали ещё в первый месяц семестра (задротам очень припечёт). Никаких привелегированных списков нет, все сдают одинаково: и ботаны, и нормальные люди.
Списать легко, и Тарнакин знает, что почти все списывают. Но при ответе нужно разбираться в том, что ты списал, иначе оценка будет удручающая.
В билете два теоретических вопроса. Задач / практики нет.
Загрузки:
- вопросы к экзамену
- ответы на вопросы (передаются от потока к потоку, есть косяки, Тарнакин про них знает)
Литература
- Хорстман, Корнел - "Java 2";
- Википедия.
Эта категория в данный момент пуста.