Практикум на ЭВМ (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
- Динамическая типизация:
- 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%. Может содержать несколько разделов, для каждой возникшей задачи детально описывается способ ее решения, алгоритмы и т.п., приводится аргументированное обоснование всех принятых решений и отказов от возможных альтернатив.
- Заключение, выводы, дальнейшие направления исследований по теме, описание результата. Результаты должны быть согласованы с целью работы.