Практикум на ЭВМ (261, 4 семестр)

Новости

    • 18.04 - вместо пары обязательно посещение семинара по теме: http://se.math.spbu.ru/SE/se_events/jvm.2011
    • Шевчик Юлия - система типов Хиндли-Милнера, алгоритм унификации.
    • Климов Иван - понятие области видимости
    • Колантаевская Анна - многопоточное программирование на Java
    • Забранский Дмитрий - структура .class файла
    • Белокуров Дмитрий - типизированное лямбда-исчисление
    • Монькин Александр - generics
    • 14.03 - Бусыгина Мария Александровна расскажет про загрузку классов в JVM.
    • Изменился адрес svn: https://svn.math.spbu.ru/svn/study/09/x61/ . Обновите рабочие копии.

Задания

Задание 1

    • Парсер и интерпретатор языка арифметических выражений расширенного идентификаторами и конструкцией let: 'let <id>=<expr> in <expr>'
    • Например: let x = 2*2 in 3 * (let y = 1 in y+x)
    • Своя реализация HashMap

Задание 2

    • Анонимные функции и вызов: (fun x -> x+1) 5
    • Реализовать три стратегии вычислений
      • Normal
      • Call-by-value
      • Lazy
    • Дополнительный тип скобок: begin ... end

Задание 3

    • Последовательность выражений:
    • expr1; epxr2
    • print
    • Динамическая типизация:
      • int
      • boolean
      • float
      • функции: a -> b
    • логические:
      • if expr then expr1 else expr2
      • Логические операции: || && !
      • Сравнение: = <> > < >= <=

Задание 4:

    • Редактор для языка
      • Должен "хорошо" выглядеть си соответствовать ожиданиям пользователя.
      • Подсветка синтаксиса через ранее реализованный Lexer
      • Подсветка ошибок в коде.
      • Запуск / консоль запуска.

Задание 5:

    • В составе следующих команд реализовать ИСР (первым в списке отмечен ответственный):
      • Симонов, Климов, Колантаевская
      • Забранский, Бусыгина, Монькин, Шевчик
      • Белокуров, Пигуль, Царёва
    • Минимальные требования и темы для исследований перечислены тут
    • Проекты выкладывать в SVN по адресу https://svn.math.spbu.ru/svn/study/09/x61/public/ (добавить индивидуальное имя проекта)

Успеваемость

2010-2011.IT.261

Требования к оформлению

    • Правильное и единообразное форматирование и заголовок с указанием копирайта
    • Регулярная публикация результатов в svn
    • Работоспособность
    • Наличие тестов
    • "Красота" кода

Зачёт

Для зачёта необходимо набрать 70 баллов. Возможные пути:

    • Посещение 5 из 7 оставшихся занятий: +20 баллов
    • (при этом посещением считается только личная явка при достаточной самостоятельной работе подтверждённой в svn)
    • 5 заданий:
    • максимум 10 баллов - если выполнены сроком в 1 неделю после выдачи
    • максимум 5 баллов - если позже
    • Рассказ на выданную тему - максимум 15 баллов (не в срок - 7 баллов)
    • Курсовая - максимум 15 баллов
    • * курсовая необходима для зачёта

Отчет по курсовой

Форма отчета: доклад о проделанной работе с презентацией.

Тема: желательно рассказать о каком-нибудь проекте, не связанным непосредственно с учебой.

Типичная структура отчета такова (разумеется, допустимы отступления):

- Введение -- 10 - 20%. Предназначено для краткого описания предметной области и задачи, решаемой в курсовой работе.

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

- Обзор средств, подходов, и пр. -- 20-30%. Обзор должен содержать явно сформулированные цели и критерии сравнения, которые должны коррелировать с требованиями к искомому решению исходной задачи. В конце обзора должны быть сформулированы выводы, демонстрирующие актуальность выбранной темы работы и поставленных в ней задач.

- Описание алгоритма, решения, всплываваших проблем -- 50%. Может содержать несколько разделов, для каждой возникшей задачи детально описывается способ ее решения, алгоритмы и т.п., приводится аргументированное обоснование всех принятых решений и отказов от возможных альтернатив.

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