Java vm 2013 — различия между версиями
Материал из SEWiki
(→Домашнее задание 1 (дедлайн 19.09)) |
|||
Строка 5: | Строка 5: | ||
== Лекции == | == Лекции == | ||
[https://docs.google.com/file/d/0B21c1yb3OpowWFl5ei1wcDQ3ejA/edit Лекция 1] | [https://docs.google.com/file/d/0B21c1yb3OpowWFl5ei1wcDQ3ejA/edit Лекция 1] | ||
+ | |||
+ | [https://docs.google.com/file/d/0B21c1yb3OpowcFJtVm1PU1VHMkk/edit?usp=sharing Лекция 2] | ||
+ | |||
+ | [https://docs.google.com/file/d/10csywBp2gxzCGLU50ve0YnrXgoT5CEGHc6J2XPt2zS5IvqMFTetav_Ilj03W/edit?usp=sharing Лекция 3] | ||
+ | |||
+ | [http://www.slideshare.net/AlexanderPodkhalyuzin/scala-lecture-4 Лекция 4] | ||
== Домашние задания == | == Домашние задания == | ||
− | === Домашнее задание 1 (дедлайн 19.09) === | + | === Домашнее задание 1 (дедлайн 19/09) === |
+ | |||
+ | # Найти GCD чисел a и b, а также коэффициенты линейного представления GCD числами a и b. | ||
+ | # Написать ковариантный неизменяемыый стэк с методами push, pop и toString. | ||
+ | # Написать быструю сортировку массива. | ||
+ | # Написать реализацию длинной арифметики с методами +, -, *, /. | ||
+ | |||
+ | === Домашнее задание 2 (дедлайн 26/09) === | ||
+ | |||
+ | # Написать три конверсии A => B, A => C, B => C лишь двумя implicit функциями. | ||
+ | # Расширить java.util.ArrayList методами map, flatMap, foreach, filter, sorted. | ||
+ | # (*) Implement class Complex(re: Double, im: Double). It should contain following operators: +, -, *, /, ^. Override toString, equals, hashCode methods. Complex companion should contain I constant. And possibility to write code like Re(z), Im(z). Also add methods conjugation, sqrt, abs. Add auxiliary constructor from String. It should be possible to use all operators with other numeric types on the left and on the right side (probably with import). Note that for every task part you can write code with any implementation and complexity (like two sqrt values or one). All of this is up to you. | ||
+ | |||
+ | === Домашнее задание 3 (дедлайн 07/11) === | ||
+ | |||
+ | Написать интерпретируемый язык программирования. Синтаксис и все остальное - дело вашего вкуса. Базовая спецификация следующая: | ||
+ | # Динамически типизируемый. У целых и вещественных чисел нет переполнения. | ||
+ | # Можно объявлять целые, вещественные и стоковые литералы. | ||
+ | # Можно объявлять переменные и функции. В функциях можно задавать значения по умолчанию. | ||
+ | # Можно эти переменные и функции вызывать. | ||
+ | # Можно создавать структуры без наследования. Просто данные и, возможно, какие-то методы. | ||
− | + | === Домашнее задание 4 (дедлайн 26/10) === | |
− | + | Написать программу на Scala, где мы зарабатываем deadlock только с помощью lazy val. | |
− | + | === Домашнее задание по Kotlin === | |
− | + | Поучаствовать в [http://kotlin.jetbrains.org/challenge/ α-тренировке]. Сроки проведения - 16/10 - 15/11 | |
− | == Условия получения | + | == Условия получения зачета == |
Задания и успешные самостоятельные это способ лишить себя сдачи зачета, а в противоположном случае это способ сдавать зачет гораздо сложнее чем коллеги. | Задания и успешные самостоятельные это способ лишить себя сдачи зачета, а в противоположном случае это способ сдавать зачет гораздо сложнее чем коллеги. | ||
Строка 25: | Строка 51: | ||
== Ссылки == | == Ссылки == | ||
+ | [https://docs.google.com/spreadsheet/ccc?key=0Am1c1yb3OpowdHNZLUxlZU96M3MtQk91QXpzUjQ3TlE&usp=sharing Успеваемость] |
Текущая версия на 03:54, 17 октября 2013
Лектор - Александр Подхалюзин.
Практика - Александр Подхалюзин.
Содержание
Лекции
Домашние задания
Домашнее задание 1 (дедлайн 19/09)
- Найти GCD чисел a и b, а также коэффициенты линейного представления GCD числами a и b.
- Написать ковариантный неизменяемыый стэк с методами push, pop и toString.
- Написать быструю сортировку массива.
- Написать реализацию длинной арифметики с методами +, -, *, /.
Домашнее задание 2 (дедлайн 26/09)
- Написать три конверсии A => B, A => C, B => C лишь двумя implicit функциями.
- Расширить java.util.ArrayList методами map, flatMap, foreach, filter, sorted.
- (*) Implement class Complex(re: Double, im: Double). It should contain following operators: +, -, *, /, ^. Override toString, equals, hashCode methods. Complex companion should contain I constant. And possibility to write code like Re(z), Im(z). Also add methods conjugation, sqrt, abs. Add auxiliary constructor from String. It should be possible to use all operators with other numeric types on the left and on the right side (probably with import). Note that for every task part you can write code with any implementation and complexity (like two sqrt values or one). All of this is up to you.
Домашнее задание 3 (дедлайн 07/11)
Написать интерпретируемый язык программирования. Синтаксис и все остальное - дело вашего вкуса. Базовая спецификация следующая:
- Динамически типизируемый. У целых и вещественных чисел нет переполнения.
- Можно объявлять целые, вещественные и стоковые литералы.
- Можно объявлять переменные и функции. В функциях можно задавать значения по умолчанию.
- Можно эти переменные и функции вызывать.
- Можно создавать структуры без наследования. Просто данные и, возможно, какие-то методы.
Домашнее задание 4 (дедлайн 26/10)
Написать программу на Scala, где мы зарабатываем deadlock только с помощью lazy val.
Домашнее задание по Kotlin
Поучаствовать в α-тренировке. Сроки проведения - 16/10 - 15/11
Условия получения зачета
Задания и успешные самостоятельные это способ лишить себя сдачи зачета, а в противоположном случае это способ сдавать зачет гораздо сложнее чем коллеги.