Программа дисциплины Современные объектно-ориентированные языки программирования для направления 010500. 62 «Прикладная математика и информатика»



Скачать 99.72 Kb.
Дата08.04.2013
Размер99.72 Kb.
ТипПрограмма дисциплины
Правительство Российской Федерации
Федеральное государственное автономное образовательное учреждение высшего профессионального образования

«Национальный исследовательский университет

«Высшая школа экономики»
Факультет БИЗНЕС-ИНФОРМАТИКИ

Отделение ПРИКЛАДНОЙ МАТЕМАТИКИ И ИНФОРМАТИКИ

Программа дисциплины
Современные объектно-ориентированные языки программирования
для направления 010500.62 «Прикладная математика и информатика» подготовки бакалавров

Автор: Носков А.А. (alexey.noskov@gmail.com)



Рекомендована секцией УМС

«Прикладная математика

и информатика»
Председатель

__________________ Кузнецов С.О.

«_____» __________________ 20___ г.

Одобрена на заседании кафедры

Анализа данных

и искусственного интеллекта
Зав. кафедрой

__________________ Кузнецов С.О.

«_____» __________________ 20___ г.

Утверждена УС факультета

бизнес-информатики
Ученый секретарь

__________________ Фомичев В.А.

« ____» ___________________20___ г.






Москва


I.Пояснительная записка

Автор программы


преподаватель А.А.Носков

Требования к студентам


Предполагаются базовые знания по дисциплине «Информатика и программирование», полученные на 1-2 курсах бакалавриата.

Аннотация


Объектно-ориентированная парадигма  одна из самых распространенных в современном программировании, она поддерживается большинством промышленных языков программирования, на базе нее построено огромное количество библиотек и приложений. В предлагаемом курсе рассматриваются основные принципы объектно-ориентированного проектирования и их применение на базе языка Java.

Первый модуль курса посвящен изучению языка Java и состоит из практических занятий по построению объектных программ в интегрированной среде разработки Eclipse. Во втором модулей предполагается изучение средств языка Java по построению графического пользовательского интерфейса, работы с базами данных и построению многопоточных приложений. Третий модуль посвящен выполнению практического задания. Полученные навыки будут полезны при выполнении выпускных квалификационных работ (на 4 курсе).

Учебные задачи курса


Основная задача курса – изучение принципов объектно-ориентированного программирования на примере языка Java:

  • Понимать основные концепции объектно-ориентированного программирования

  • Уметь писать программы на языке Java и использованием ее стандартной библиотеки;

  • Уметь использовать технологии языка Java для построения графических приложений и работы с реляционными базами данных;

  • Иметь представления об отличиях других объектно-ориентированных языков программирования.


II.Тематический план курса
«Современные объектно-ориентированные языки программирования»




Название темы

Всего часов по дисциплине

Аудиторные часы

Самосто-ятельная работа










Лекции

Сем. и практика занятия




1

Основы языка и стандартной библиотеки Java

26

6

6

14

2

Технологии разработки Java-приложений

8

2

2

4

3

Графические библиотеки AWT и Swing

26

6

6

14

4

Работа с базами данных в Java

16

4

4

8

5

Многопоточное и распределенное программирование

16

4

4

8

6

Элементы функционального программирования на Java

8

2

2

4

7

Примеры других объектно-ориентированных языков

8

2

2

4




Итого

108

26

26

56


III.Источники информации

Базовый учебник


  1. Брюс Эккель, Философия Java. – Спб.: Издательство «Питер», 2009.

Основная литература


  1. Герберт Шилдт, Swing: руководство для начинающих – Вильямс, 2007.

  2. Brian Goetz, Tim Peierls, Java Concurrency in Practice. Addison-Wesley, 2006.

  3. Бернард Ван Хейк, JDBC: Java и базы данных – Лори, 1999

Дополнительная литература


  1. Joshua Marinacci, Chris Adamson. Swing Hacks.Tips and Tools for Killer GUIs – O'Reilly Media, 2005

  2. .David Flanagan Yukihiro Matsumoto. The Ruby Programming Language – O'Reilly



IV.Формы контроля и структура итоговой оценки


Курс читается в первом, втором и третьем модулях.

Текущий контроль – контрольная работа (60мин.) в первом модуле,

домашнее задание в первом модуле.

Итоговый контроль – устный зачет (80 мин.) в конце третьего модуля.

Результирующая оценка за текущий контроль рассчитывается следующим образом:

Отекущий = 0,4·Ок/р + 0,6·Од/з

Решения домашних заданий, выдаваемых к семинарским занятиям, оцениваются в баллах и учитываются в рабочей ведомости, в итоге по ним получается оценка Осам.работа.

Итоговая оценка по курсу выставляется по следующей формуле:

Оитоговая = 0,2 Озачет + 0,3·Отекущий + 0,5·Осам. работа

где Озачет – оценка за работу непосредственно на зачете.

В случае пропусков занятий студент может досдать все домашние задания не позднее чем за 10 дней до зачета – в этом случае они учитываются в итоговой оценке обычным способом.

Таблица соответствия оценок по десятибалльной и системе зачет/незачет


Оценка по 10-балльной шкале

Оценка по 5-балльной шкале

1

незачет

2




3




4

зачет

5




6




7




8




9




10





Таблица соответствия оценок по десятибалльной и пятибалльной системе


По десятибалльной шкале

По пятибалльной системе

1 – неудовлетворительно

2 – очень плохо

3 – плохо

неудовлетворительно – 2

4 – удовлетворительно

5 – весьма удовлетворительно

удовлетворительно – 3

6 – хорошо

7 – очень хорошо

хорошо – 4

8 – почти отлично

9 – отлично

10 – блестяще

отлично – 5


V.Содержание курса
«Современные объектно-ориентированные языки программирования»

Тема 1. Основы языка и стандартной библиотеки Java


Язык Java. Виртуальная машина JVM. Базовые конструкции языка. Определение методов. Примитивные и ссылочные типы. Классы и объекты. Абстрактные методы и классы. Интерфейсы. Система пакетов. Модификаторы доступа. Массивы. Стандартные коллекции: LinkedList, ArrayList, HashSet, TreeSet. Словари HashMap и TreeMap. Сравнение объектов на равенство и упорядочивание. Параметризованные классы и методы. Верхние и нижние границы типов. Работа со строками в Java. Регулярные выражения. Потоки ввода и вывода. Работа со стандартным вводом/выводом. Работа с файлами. Загрузка классов. ClassLoader.

Основная литература


  1. Брюс Эккель, Философия Java. – Спб.: Издательство «Питер», 2009.

Тема 2. Технологии разработки Java-приложений


Модульное тестирование. JUnit. Разработка через тестирование. Управление проектом с помощью Maven. Зависимости проекта. Документация с использованием JavaDoc. Создание сайта проекта. Системы контроля версий. Централизованные и распределенные системы контроля версий.

Основная литература


  1. Брюс Эккель, Философия Java. – Спб.: Издательство «Питер», 2009.

Тема 3. Графические библиотеки AWT и Swing


Базовые компоненты Swing. Контейнеры. Подписка на события и обработка событий. Лайоуты и их использование. Концепция модель-вид. Диалоговые окна. Стандартные диалоговые окна: открытие файла, сохранение файла, вывод на печать. Графические средства создания интерфейса. Различные стили отображения в Swing.

Основная литература


  1. Герберт Шилдт, Swing: руководство для начинающих – Вильямс, 2007.

Дополнительная литература


  1. .Joshua Marinacci, Chris Adamson. Swing Hacks.Tips and Tools for Killer GUIs – O'Reilly Media, 2005

Тема 4. Работа с базами данных в Java


Общая информация о реляционной модели. Язык SQL. Интерфейс работы с базами данных JDBC. Встроенная база данных HSQLDB. Объектно-реляционное отображение. Библиотека Hibernate.

Основная литература


  1. Бернард Ван Хейк, JDBC: Java и базы данных – Лори, 1999


Тема 5. Многопоточное и распределенное программирование


Многопоточное программирование. Синхронизация. Взаимные блокировки и борьба с ними. Примитивы синхронизации пакета java.util.concurrent. Безблокировочные алгоритмы. Атомарные операции. Пакет java.util.concurrent.atomic. Распределенные приложения на Java с использованием RMI.

Основная литература


  1. Брюс Эккель, Философия Java. – Спб.: Издательство «Питер», 2009.

  2. Brian Goetz, Tim Peierls, Java Concurrency in Practice. Addison-Wesley, 2006.

Тема 6. Элементы функционального программирования на Java


Представление функций в Java. Функции высшего порядка. Библиотека Functional Java. Библиотека Google Guava.

Основная литература


  1. .Брюс Эккель, Философия Java. – Спб.: Издательство «Питер», 2009.

Тема 7. Примеры других объектно-ориентированных языков


Динамическое ООП. Языки Python и Ruby. Прототипное ООП. Язык JavaScript.

Основная литература


  1. .David Flanagan Yukihiro Matsumoto. The Ruby Programming Language – O'Reilly

VI.Тематика заданий по формам текущего контроля

Примеры лабораторных работ


  1. Работа со стандартными коллекциями Java

  2. Разработка текстового редактора

  3. Разработка интерфейса к базе данных

  4. Разработка распределенного графического редактора



Примеры домашних заданий


    1. Реализация отмены в текстовом редакторе

    2. Реализация различных стилей в графическом редакторе

VII.Вопросы для оценки качества освоения дисциплины


Тема 1.

  1. В чем разница между примитивными и ссылочными типами?

  2. Какие существуют примитивные типы?

  3. Какие числа представимы типами byte, short, int и long?

  4. В чем разница между прямоугольным и ступенчатым массивом?

  5. В чем разница между массивом и списком?

  6. В чем разница между LinkedList и ArrayList? Когда какой из них предпочтительнее для использования?

  7. В чем разница между TreeMap и HashMap? Когда какой из них предпочтительнее для использования?

  8. Зачем нужен ClassLoader?

Тема 2.

  1. Зачем необходимо модульное тестирование?

  2. Какие функции выполняет Maven?

  3. Как объявляются зависимости проекта в Maven?

  4. Как осуществляется генерация документации для Java-кода?

Тема 3.

  1. В чем разница между графическими библиотеками Swing и AWT?

  2. Какие компоненты присутствуют в библиотеке Swing?

  3. Какие компоненты присутствуют в библиотеке AWT?

  4. Как осуществляется подписка на события в библиотеке Swing?

  5. Какой компонент используется для отображения текста со стилями?

  6. С помощью какого класса осуществляется создание изображений в Java?

Тема 4.

  1. Что такое реляционная база данных?

  2. Какие основные операции предоставляет язык SQL?

  3. С помощью какой технологии осуществляется работа с реляционными базами данных в Java?

  4. Что такое объектно-реляционное отображение?

  5. Какие существуют библиотеки для объектно-реляционного отображения?

  6. Как реализуется наследование при объектно-реляционном отображении?

Тема 5.

  1. Что такое поток и чем он отличается от процесса?

  2. Для чего нужна синхронизация?

  3. Что такое взаимная блокировка?

  4. Как можно избежать взаимных блокировок в программе?

  5. Какие примитивы синхронизации предоставляет пакет java.util.concurrent?

  6. Для чего нужна технология Java RMI?

Тема 6.

  1. Как представляются функции в Java?

  2. Что такое функция высшего порядка?

  3. Какие основные операции высшего порядка применимы к спискам?

Тема 7.

  1. В чем отличие динамической типизации от статической?

  2. Какие существуют языки с динамической типизацией?

  3. Что такое прототипное ООП?

  4. В чем разница между классом и прототипом?


Авторы программы: _____________________________/ Носков А.А. /


Похожие:

Программа дисциплины Современные объектно-ориентированные языки программирования для направления 010500. 62 «Прикладная математика и информатика» iconПрограмма дисциплины математический анализ и обыкновенные дифференциальные уравнения. Дополнительные главы для направления 010500. 62 «Прикладная математика и информатика»
Для направления 010500. 62 – «Прикладная математика и информатика» подготовки бакалавра. 2 курс
Программа дисциплины Современные объектно-ориентированные языки программирования для направления 010500. 62 «Прикладная математика и информатика» iconПрограмма дисциплины языки программирования по направлению 010500 «Прикладная математика и информатика» (бакалавриат)
Языки программирования по направлению 010500 «Прикладная математика и информатика» (бакалавриат)
Программа дисциплины Современные объектно-ориентированные языки программирования для направления 010500. 62 «Прикладная математика и информатика» iconПрограмма дисциплины Численные методы для направления 010500. 62 «Прикладная математика и информатика» подготовки бакалавра
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления 010500. 62 «Прикладная...
Программа дисциплины Современные объектно-ориентированные языки программирования для направления 010500. 62 «Прикладная математика и информатика» iconПрограмма дисциплины Дифференциальные уравнения для направления 010500. 62 – «Прикладная математика и информатика»
Дифференциальные уравнения для направления 010500. 62 «Прикладная математика и информатика» подготовки бакалавра
Программа дисциплины Современные объектно-ориентированные языки программирования для направления 010500. 62 «Прикладная математика и информатика» iconПрограмма дисциплины Практикум на ЭВМ для направления 010500. 62 Прикладная математика и информатика подготовки бакалавров
Программа дисциплины Практикум на ЭВМ (обработка данных сложной структуры) для подготовки бакалавров по направлению 010500. 62 (бакалаврская...
Программа дисциплины Современные объектно-ориентированные языки программирования для направления 010500. 62 «Прикладная математика и информатика» iconПрограмма дисциплины Теория управления и системный анализ для направления 010500. 62 «Прикладная математика и информатика» подготовки бакалавра
Общая задача линейного программирования и ее связь со стандартной и канонической задачами
Программа дисциплины Современные объектно-ориентированные языки программирования для направления 010500. 62 «Прикладная математика и информатика» iconПрограмма дисциплины Современные проблемы прикладной математики и информатики для направления 010500. 68 «Прикладная математика и информатика»
Математические и статистические высшей математики методы в экономике на факультете экономики
Программа дисциплины Современные объектно-ориентированные языки программирования для направления 010500. 62 «Прикладная математика и информатика» iconПрограмма дисциплины Культурология для направления 010500. 62 «Прикладная математика и информатика» подготовки бакалавра

Программа дисциплины Современные объектно-ориентированные языки программирования для направления 010500. 62 «Прикладная математика и информатика» iconПрограмма дисциплины Сложность вычислений для направления 010500. 68 «Прикладная математика и информатика» подготовки магистров
Предполагается базовое знание теории вероятностей, умение вычислять сложность операций для задач из области программирования
Программа дисциплины Современные объектно-ориентированные языки программирования для направления 010500. 62 «Прикладная математика и информатика» iconПрограмма дисциплины Математический анализ Для направления 010500. 62 «Прикладная математика и информатика» подготовки бакалавра

Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org