<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://iu5bmstu.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=95.24.239.246</id>
	<title>Кафедра ИУ5 МГТУ им. Н.Э.Баумана, студенческое сообщество - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://iu5bmstu.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=95.24.239.246"/>
	<link rel="alternate" type="text/html" href="https://iu5bmstu.ru/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/95.24.239.246"/>
	<updated>2026-04-30T05:35:35Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://iu5bmstu.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_(10_%D1%81%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D1%80)&amp;diff=5131</id>
		<title>Категория:Технологии программирования (10 семестр)</title>
		<link rel="alternate" type="text/html" href="https://iu5bmstu.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_(10_%D1%81%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D1%80)&amp;diff=5131"/>
		<updated>2015-05-25T20:19:43Z</updated>

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