Архив‎ > ‎Весна 2011‎ > ‎

Практикум на ЭВМ (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/ (добавить индивидуальное имя проекта)
Успеваемость

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

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

Зачёт

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

Типичная структура отчета такова (разумеется, допустимы отступления):
- Введение -- 10 - 20%. Предназначено для краткого описания предметной области и задачи, решаемой в курсовой работе.
 Здесь надо ввести основные понятия, обосновать актуальность, явно сформулировать цель работы, описать практическую значимость ожидаемого результата.
- Обзор средств, подходов, и пр. -- 20-30%. Обзор должен содержать явно сформулированные цели и критерии сравнения, которые должны коррелировать с требованиями к искомому решению исходной задачи. В конце обзора должны быть сформулированы выводы, демонстрирующие актуальность выбранной темы работы и поставленных в ней задач.
- Описание алгоритма, решения, всплываваших проблем -- 50%. Может содержать несколько разделов, для каждой возникшей задачи детально описывается способ ее решения, алгоритмы и т.п., приводится аргументированное обоснование всех принятых решений и отказов от возможных альтернатив.
- Заключение, выводы, дальнейшие направления исследований по теме, описание результата. Результаты должны быть согласованы с целью работы.

Comments