Категория:Технологии программирования (10 семестр): различия между версиями

Материал из Кафедра ИУ5 МГТУ им. Н.Э.Баумана, студенческое сообщество
Перейти к навигации Перейти к поиску
 
(не показана 31 промежуточная версия 4 участников)
Строка 1: Строка 1:
<p>{{Предмет | name=Технологии программирования | prepod=[[Тарнакин А.О.]] | lections=? | seminars=нет | labs=3 | dzs=? | rks=? | signif=по желанию | what=экзамен}}</p>
<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].
Строка 11: Строка 11:
Всего 3 лабораторных.
Всего 3 лабораторных.


Выполняются на языке Java. ПО для разработки можно загрузить [http://www.oracle.com/technetwork/java/javase/downloads/index.html здесь].
Выполняются на языке 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 ===
=== Лабораторная работа №1 ===
Строка 24: Строка 28:
Ссылки по теме:
Ссылки по теме:
* [http://en.wikibooks.org/wiki/Java_Programming/Understanding_a_Java_Program как устроена Java-программа];
* [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/tutorial/essential/io/ основы ввода/вывода];
* [http://docs.oracle.com/javase/6/docs/api/java/net/package-summary.html#package_description работа с сетью];
* [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://docs.oracle.com/javase/tutorial/collections/index.html контейнерные классы].
Проникнуться предметной областью поможет [http://www.youtube.com/watch?v=96UQEVK05kM эта песня].


=== Лабораторная работа №2 ===
=== Лабораторная работа №2 ===
Строка 60: Строка 67:


Ссылки по теме:
Ссылки по теме:
* [http://jersey.java.net/use/getting-started.html Jersey];
* [http://habrahabr.ru/post/38730/ архитектура REST];
** [http://jersey.java.net/nonav/documentation/latest/user-guide.html документация по Jersey].
* [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 загрузить]
|}


== Курсовая работа ==
== Курсовая работа ==
Строка 68: Строка 102:


== Экзамен ==
== Экзамен ==
Автоматов нет. Пропуски лекций не влияют ни на что. Сроки сдачи лабораторных и курсовой не влияют ни на что, даже если вы всё сделали ещё в первый месяц семестра <small>(задротам очень припечёт)</small>. Никаких привелегированных списков нет, все сдают одинаково: и ботаны, и нормальные люди.
Списать легко, и Тарнакин знает, что почти все списывают. Но при ответе нужно разбираться в том, что ты списал, иначе оценка будет удручающая.
В билете два теоретических вопроса. Задач / практики нет.
Загрузки:
* [http://yadi.sk/d/ciqV8cTk5Dpci вопросы к экзамену]
* [http://yadi.sk/d/mosnXDEV63YZg ответы на вопросы] (передаются от потока к потоку, есть косяки, Тарнакин про них знает)


== Литература ==
== Литература ==

Текущая версия от 16:21, 28 мая 2015

Технологии программирования
Преподаватель: Тарнакин А.О.
Лекций: ?
Семинаров: нет
Лабораторных работ: 3
Домашних заданий: нет
Рубежных контролей: нет
Ходить: по желанию
Что сдавать: экзамен

Технологии программирования. А конкретно - Java.

Лекции

За явкой следить не будут. Вики-конспектов не будет, потому что лекции даются не для конспектирования. Весь материал тут.

Лабораторные работы

Всего 3 лабораторных.

Выполняются на языке Java. ПО для разработки можно загрузить здесь. Необходимы JRE и JDK. В качестве IDE вполне хватит NetBeans. Сервером приложений лучше выбрать Apache Tomcat, а не GlassFish.

Как можно заметить, описания работ даны в очень общем виде, без подробных требований. По этому поводу прямая речь от преподавателя:

Задания умышленно не детализирую, мне интересно посмотреть на ваше творчество.

Сдача лабораторных (и курсовой) происходит по принципу "чем раньше - тем проще". В начале вообще по коду ничего отвечать не надо и нет дополнительных заданий. Но начиная где-то с мая сдать станет ощутимо сложнее.

Лабораторная работа №1

Работа с базовыми классами стандартных пакетов java.io, java.net, java.util.

Задание:

  • необходимо получить содержимое web-странички, проиндексировать слова в нём (в содержимом) и результаты сохранить в файл;
  • программа должна быть исполнена в виде консольного приложения, позволяющего выбирать адрес web-страницы и имя файла, в который будут сохранены результаты;
  • программу необходимо компилировать и запускать без помощи IDE (но сам код можно писать и в IDE).

Ссылки по теме:

Проникнуться предметной областью поможет эта песня.

Лабораторная работа №2

Выполняется на базе ЛР №1.

Работа с БД, многопоточность, синхронизация, журналирование.

Задание:

  • программа должна быть выполнена как многопоточное приложение, использующее java.util.concurrent и позволяющее ограничивать загрузку процессора;
  • индексация каждой странички должна производиться в отдельном потоке, содержимое сохранять в БД тройками вида слово - частота упоминания на странице - страница. Найденные на страничке ссылки (href="http://...") должны обрабатываться отличным от текущего потоком;
  • программа должна выполнять поиск по словам и выводить адреса проиндексированных ранее страничек в порядке, пропорциональном частоте появления слова на страничке;
  • программа должна писать отладочные сообщения посредством стандартных механизмов SLF4J.

Ссылки по теме:

Лабораторная работа №3

Выполняется на базе ЛР №2.

Создание web-сервисов.

Задание:

  • программа должна быть выполнена в виде web-приложения, индексирующего в фоновом режиме содержимое страничек, и обрабатывать поисковые запросы посредством REST web-сервиса.

Ссылки по теме:

Если решите делать на 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. Задание прилагается. загрузить

Курсовая работа

Страница курсовой работы находится здесь.

Экзамен

Автоматов нет. Пропуски лекций не влияют ни на что. Сроки сдачи лабораторных и курсовой не влияют ни на что, даже если вы всё сделали ещё в первый месяц семестра (задротам очень припечёт). Никаких привелегированных списков нет, все сдают одинаково: и ботаны, и нормальные люди.

Списать легко, и Тарнакин знает, что почти все списывают. Но при ответе нужно разбираться в том, что ты списал, иначе оценка будет удручающая.

В билете два теоретических вопроса. Задач / практики нет.

Загрузки:

Литература

Эта категория в данный момент пуста.