29 декабря 2010

Экзамен 30 декабря

Группа 424, аудитория 3532, начало в 10:00. Так как экзаменаторов, судя по всему, только двое, а в аудитории дубак, то можно приходить попозже вместо того чтоб сидеть и мерзнуть в ожидании своей очереди. Одевайтесь потеплее и захватите термос

28 декабря 2010

Аттракцион невиданной щедрости

Тем, кто лучше всех себя проявил на практике* на экзамене достанется всего один вопрос вместо двух.

Список героев:

421 группа: Артём Зубрицкий, Александр Мельников,  Виктор Ниденс, Егор Усик

422 группа: Серафима Гольдвирт, Екатерина Жукова, Александр Сенов, Денис Сыров, Наталья Притыковская

424 группа: Александр Анисимов, Анна Блохина, Александр Киров, Антон Кореньков, Алексей Лукашев, Константин Невоструев.


* по мнению преподавателй практики

27 декабря 2010

13 декабря 2010

Выжимка из 70-страничного документа о правилах проведения сессии

Кросспост из сообщения Я.А.Кириленко кафедре системного программирования:


Добрый день!
Это писмьмо адресовано в первую очередь студентам, желающим продолжать
обучение на матмехе после предстоящей сессии. Я прошу старост и
активистов кросспостить в свои группы, чтобы гарантированно охватить
всех. Наверное, эта информация будет полезна и студентам других
специальностей, донесите и до них, пожалуйста.

Наверное, вы уже знаете,  что ужесточаются правила сессии. Считаю
своим долгом напомнить об этом ещё раз и дать некоторые разъяснения,
чтобы предупредить неверное трактование фактов.
Начну с того, что напомню простую истину: третий академический долг на
сессии -- это запуск транзакции "отчисление студента". Академическими
долгами являются "неуды" и "незачеты". "Неявки"  также превращаются в
задолженности, если в определённый срок не предоставлены документы,
подтверждающие "наличие уважительной причины пропуска".

И вроде бы ничего особо нового нет, но не тут то было.
Зачеты можно сдавать (читайте "закрывать академзадолженность по
зачету") ТОЛЬКО в установленные расписанием даты. Расписание
составляет деканат по заявкам преподавателей, НО с ограничениями.
Например, зачеты должны сдаваться до начала сессии должны.
Во-первых, как следствие из предыдущего, три "незачета" к началу
сессии -- ВЫЛЕТ с факультета в день начала сессии (28 дек 2010г).
Во-вторых, как следствие прочих ограничений, если зачет не сдан к
началу сессии, то следующая попытка ТОЛЬКО в день экзамена по данному
предмету, ЛИБО ТОЛЬКО ПОСЛЕ СЕССИИ.  Вывод: "незачет" к началу сессии
-- это академзадолженность как минимум до даты экзамена, а по многим
курсам и спецсеминарам -- вообще до "допсы" (то есть стипендия --
мимо). Ещё важное следствие: два незачета к началу сессии -- это ВЫЛЕТ
с факультета после первого же "неуда" на сессии.
Кстати, зачет в третий раз сдаётся комиссии, как экзамен. По факту --
это не хорошо и не плохо, просто требование.

Итак, резюмирую выше сказанное: требования ОЧЕНЬ СУРОВЫЕ, поэтому  к
началу сессии надо иметь ВСЕ зачеты. Отсутствие зачета к началу сессии
увеличивает шансы неосторожного студента вылететь ЕЩЁ ДО КОНЦА сессии.

"А напоследок я скажу":  продумывайте стратегию поведения на сессии
очень аккуратно.

Удачи,
Я.А.

25 ноября 2010

Мини-курс лекций "Анализ поисковых запросов"

Лекции "Анализ поисковых запросов", читает Павел Браславский, яндексоид из Екатеринбурга, в питерском CS клубе при ПОМИ. Вход свободный, возможно будет видеотрансляция. Первые две -- в субботу 27 ноября, следующие две в декабре.

http://logic.pdmi.ras.ru/csclub/searchqueryanalysis

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

Практика 25 ноября

Разминка


Какие из этих запросов найдут в таблице Employee(name, salary) имена сотрудников с максимальной зарплатой и собственно максимальную зарплату?

  1. SELECT name, MAX(salary) FROM Employee
  2. SELECT E1.name, E1.salary
    FROM Employee E1 LEFT OUTER JOIN Employee E2 ON (E1.salary < E2.salary)
    WHERE E2.name IS NULL
  3. SELECT name, MAX(salary) FROM Employee
    GROUP BY name
  4. SELECT name, salary FROM Employee WHERE salary = (SELECT MAX(salary) FROM Employee)

18 ноября 2010

Практика 18 ноября

Разминка

Вы хотите просуммировать суммы выплаченных вашим сотрудникам зарплат за год и вывести в результат табличку с ФИО и суммой. Какие из этих запросов сделают то что вы хотите?
В таблице Payments есть поля employee_id (id сотрудника), name (ФИО сотрудника), month (месяц выплаты) и payment (сумма выплаты).

  1. SELECT name, SUM(payment) FROM Payments GROUP BY employee_id
  2. SELECT name, SUM(payment) FROM Payments GROUP BY employee_id, name
  3. SELECT p2.name, p1.sum_payment FROM
        (SELECT employee_id, SUM(payment) AS sum_payment
         FROM Payments GROUP BY employee_id) AS p1
             JOIN
         Payments p2 ON (p1.employee_id = p2.employee_id)


Слайды

16 ноября 2010

Лекция Джеффа Дина в Стенфорде

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

http://doubleclix.wordpress.com/2010/11/11/google-a-study-in-scalability-and-a-little-systems-horse-sense/

Там есть и видео в формате MMSH который на windows наверное будет играться сам, а на Linux потребует установки, например, vlc.

Не понимаешь английский? Продолжай косить его в универе.

11 ноября 2010

Практика 11 ноября

Разминка


У вас есть таблицы A(id) и B(a_id, b). Какие из этих запросов найдут те A.id, которые НЕ упоминаются в B.a_id ?

  1. SELECT id FROM A WHERE id NOT IN (SELECT a_id FROM B)
  2. SELECT id FROM A EXCEPT SELECT a_id AS id FROM B
  3. SELECT id FROM A LEFT OUTER JOIN B ON (A.id = B.a_id) 
    WHERE B.a_id IS NULL

Слайды

(полноэкранные)

09 ноября 2010

Идея курсовой, а то и диплома, для любителей карт и crowdsourcing

У меня есть слабость к (географическим) картам, и я в свободное время вожусь с открытым картографическим проектом OpenStreetMap. Суть его в том, что пользователи несколькими способами рисуют карты, нанося дороги, реки, дома, достопримечательности и так далее, а результат под свободной лицензией принадлежит всему миру. Его можно например закачать на навигатор и использовать для ориентирования.



Помимо всего прочего, на карту можно наносить Points Of Interest -- магазины, аптеки, рестораны и прочие заведения, которые могут быть людям интересны. У нас в России с такими заведениями есть проблема: они быстро исчезают и заменяются другими. Магазин, просуществовавший три года, можно считать старожилом.

Для того чтоб информация на карте была постоянно свежей, нужно её постоянно поддерживать. Нужно добавлять новые заведения и сообщать об исчезновении старых. Для этого даже заведён специальный сайт OpenStreetBugs, на котором несложно сообщить об изменениях, но всё равно нормальному человеку нужно на этот сайт хотя бы заходить. Я с трудом представляю себе толпу энтузиастов, каждый день топающую на OpenStreetBugs вместо контактега или жежешечки.

Кстати о контактеге. Туда-то все топают каждый день и порой даже оттуда не вылезают. И более того, многие услужливо заносят туда кое-какую географическую информацию: кто точное место жительства, кто неточное, кто название ВУЗа или места работы. По этой информации можно понять, в каком районе человек может быть если не экспертом по части заведений, но по крайней мере может по дороге домой что-нибудь посмотреть.

Соответственно идея инженерная: сделать приложение для контактега, которое будет раз в день (иначе надоест) спрашивать пользователя "скажи, кафе 'Сачок' ещё работает или уже склеило ласты?". И две кнопки -- "да" и "нет". Ответ нужно записывать где-нибудь на server-side и потом обрабатывать. Если 10 человек скажут что "Сачок" накрылся, значит он наверное и правда накрылся и можно уведомить об этом смотрителя Петродворцового района на OpenStreetMaps/Bugs.

А идея математическая такая: я конечно не буду счастлив отвечать на вопросы про Купчино, где я почти никогда не бываю и даже про те места, где я бываю, я не буду счастлив отвечать 10 раз подряд. Нужна такая модель, которая будет разумно составлять пары (пользователь, POI) и показывать их. Учитывать географические данные пользователя. Учитывать как часто его уже спрашивали об этой точке. Учитывать насколько устарели данные об этой точке. Учитывать то что часто спрашивать нельзя и выбирать только наиболее актуальные вопросы.

Если кому интересно этим заняться, под моим руководством или под чьим-то ещё, feel free.

29 октября 2010

Вот как нужно работать в университете

http://googleappengine.blogspot.com/2010/10/research-project-appscale-at-university.html

Коротко содержание: ребята плакали-плакали что у них нет подходящей кластерной инфраструктуры для их проектов, а потом посмотрели на гугловский App Engine, им понравилось и они за два года сделали себе такой же, но с открытым кодом. И теперь счастливы. Один доцент и несколько аспирантов и студентов. Безо всяких там Интелов. Что-то мне подсказывает, что с трудоустройством у них проблем не будет.

А у нас, мать-перемать, кто только не крутится вокруг матмеха, а толком даже расписания нормального на сайте нет. Не стыдно?

28 октября 2010

Практика 28 октября

Разминка


Вопрос 1. Что получится в результате выполнения запроса?

Table1
a   b   c
---------
1   1   1
2   3   4
1   1   7
2   3   8

SELECT * FROM Table1 GROUP BY a


  1. Будет напечатана вся таблица 
  2. Для каждого значения "a" посчитают сумму в столбцах "b" и "c"
  3. Запрос не выполнится потому что не используются агрегатные функции
  4. Запрос не выполнится потому что в SELECT используются недопустимые в данном случае атрибуты
Вопрос 2. А с этим запросом и такой же таблицей что будет?

SELECT a, SUM(b) AS foo FROM Table1 GROUP BY a

1.
a foo
------
1 2
2 6

2.
a foo
------
1 2
2 2


Слайды
полноэкранные

16 октября 2010

Дни Суперкомпьютерных технологий в офисе Intel

Звучит громко, в реальности наверное будет поскромнее, но наверное всё равно интересно. Обратите внимание что требуется регистрация.




14 октября 2010

Практика 14 октября

Разминка


Вопрос 1. Сколько строк будет в результате SELECT'а?
CREATE TABLE Автомобиль(
    рег_номер CHAR(6) PRIMARY KEY, марка VARCHAR(20))

INSERT INTO Автомобиль (рег_номер, марка)
  VALUES ('м000ск', 'Субару')

INSERT INTO Автомобиль (рег_номер, марка)
  VALUES ('м001ск', 'Cубару')
INSERT INTO Автомобиль (рег_номер, марка)
  VALUES ('м002ск', 'Subaru')

SELECT * FROM Автомобиль  WHERE марка = 'Субару'

Вопрос 2. Сколько будет в результате выполнения запроса если в таблице N строк?

CREATE TABLE Foobar (id INT PRIMARY KEY, value INT)
SELECT * FROM Foobar f1 JOIN Foobar f2 ON (f1.id = f2.id)

  1. 0 строк
  2. N строк
  3. N*N строк
  4. Заранее неизвестно
  5. Запрос не выполнится
Слайды

07 октября 2010

Разминка

Вопрос 1.

Что произойдет в результате выполнения скрипта:


CREATE TABLE A (
  a1 INT, a2 VARCHAR, a3 NUMERIC, UNIQUE (a1, a2))


CREATE TABLE B (
  b1 VARCHAR, b2 NUMERIC, b3 INT,
  FOREIGN KEY (b1, b2) REFERENCES A(a2,a3))


  1. Скрипт не выполнится, потому что внешний ключ не может быть составным
  2. Скрипт не выполнится, потому что ссылочные атрибуты не являются ключом
  3. Скрипт не выполнится, потому что имена ссылающихся и ссылочных атрибутов разные
  4. Скрипт выполнится без ошибок

Вопрос 2.

Вы делаете связь многие-ко-многим между товарами и поставщиками у которой есть собственный атрибут, например, цена данного товара у данного поставщика. Вы хотите чтоб цена была уникальна для пары (товар, поставщик). Чего не хватает в этом операторе?


CREATE TABLE Goods_Supplier(
  goods_id INT FOREIGN KEY REFERECES Goods,
  supplier_id INT FOREIGN KEY REFERENCES Supplier,
  price NUMERIC (10, 2) CHECK (price >= 0))

  1. Да вроде всё на месте
  2. Ограничения UNIQUE для цены
  3. Ограничения UNIQUE для каждого из внешних ключей
  4. Ограничения UNIQUE для пары внешних ключей
  5. Ограничения UNIQUE для всей тройки атрибутов
Слайды

30 сентября 2010

Практика 30 сентября

Разминка


Вопрос 1. Что произойдет в результате выполнения скрипта:

1: CREATE TABLE A (a1 INT, a2 VARCHAR)
2: INSERT INTO A (a2, a1) VALUES ('12345', 12345)


  1. Скрипт упадет потому что порядок атрибутов в добавляемом кортеже не соответствует порядку атрибутов в таблице
  2. Скрипт упадет потому что строчка '12345' не поместится в отведенный атрибуту a2 тип
  3. Скрипт выполнится успешно


Вопрос 2. Вам даны синтаксические правила:

<рецепт> := <тип_блюда> название_блюда : <список_ингредиентов>
<тип_блюда> := СУП | САЛАТ | ЗАКУСКА
<список_ингредиентов> := <ингредиент> [,...n]
<ингредиент> := <название продукта> [<число> <единица измерения>]
<название_продукта> := ЛУК | ПОМИДОР | CОЛЬ | ВОДА | ХЛЕБ | МАСЛО
<единица_измерения> := ГР. | ШТ. | СТ.Л. | СТАК.
<число> -- вещественное число с точкой

В каком из этих рецептов есть синтаксическая ошибка и почему?

  1. СУП томатный : ПОМИДОР 1000 ГР., ВОДА 2 ШТ.
  2. САЛАТ пикантный : ЛУК 1 ШТ., ПОМИДОР 2 ШТ., МАСЛО СТ.Л.
  3. ЗАКУСКА Хлеб-Соль : ХЛЕБ, СОЛЬ

Слайды

23 сентября 2010

Практика 23 сентября

Разминка

Вопрос 1.
Пусть существует связь R между множествами сущностей A и B. Кардинальность участника A равна 1, кардинальность участника B равна *. Какое из этих утверждений является верным?


1. Один экземпляр сущности A может участвовать только в одном экземпляре связи
2. Один экземпляр сущности B может участвовать только в одном экземпляре связи
3. В одном экземпляре связи участвует один экземпляр сущности A и неограниченное количество экземпляров сущности B

Вопрос 2.
Пусть класс A наследует класс B, а тот наследует класс С. Пусть есть еще класс D. Какое из этих утверждений является НЕверным?


1. В сущности А есть все свойства определенные в классе С
2. Сущности A и B могут принимать участие во всех связях, в которых могут принимать участие сущности C
3. При удалении какой-либо сущности C удаляются все сущности A и B
4. Сущность C не может участвовать в связи R(A,D)

Слайды (полноэкранные)

16 сентября 2010

Практика 16 сентября

Разминка

Что из нижеперечисленного можно делать в компьютерном классе?

  1. Разговаривать по мобильному телефону с мамой
  2. Пытаться сотворить интересные вещи с вашим любимым новостным сайтом путем вбивания HTML кода в форуме
  3. Пробовать запускать SQL скрипты, написанные для MS SQL Server'а, в программе MS Access
  4. Сидеть в углу, жевать бутерброд и запивать его чаем, громко прихлебывая
Что можно сгенерировать из ER модели данных?
  1. SQL код
  2. Java код
  3. И то и другое
  4. Ничего


Практика, часть 1 (полнозкранные слайды)



Практика, часть 2 (полноэкранные слайды)

09 сентября 2010

СУБД: что, где, когда и у кого.

Коротко о главном.

Правила проведения сессии


Обратите дражайшее внимание на правила проведения сессии. Где найти присланный "сверху" 70-страничный документ не знаю (не на сайте матмеха же, на самом деле), но некоторые неленивые преподаватели сделали из него выжимку.


Где и когда

Лекции читаю я, Дмитрий Барашев, по четвергам на третьей паре, пока что в аудитории 03.

Практику в группах 423 и 424 тоже веду я и тоже по четвергам, практику в группах 421 и 422 ведёт Александр Дольник Анастасия Григорьева по средам.


Зачёт и экзамен

По курсу начная с этого, 2010 года сдаётся экзамен и это хорошо. Зачёта нет, но сдать экзамен без допуска по практике не получится.

На практике нужно научиться выполнять практические действия с настоящей живой СУБД и доказать ваше умение преподавателю. Качественное выполнение двух контрольных работ является необходимым условием, преподаватель волен добавлять дополнительные условия (например, домашние работы).

На экзамене, традиционно, два вопроса, подготовка, беседа с экзаменатором, получение оценки.

На экзамене можно пользоваться любой литературой и конспектами. На него не надо приходить, не прочитав хотя бы конспект. На нём не надо заниматься ручным ксерокопированием текста из конспекта на листочек.

Контакты

Дмитрий Барашев:

  • почта для общения на тему этого курса: dbms гавгав barashev.net
  • веб: http://barashev.net
  • вконтакте: http://vkontakte.ru/id6171*
    *не нужно нарываться на дружбу до окончания курса

Практика 10 сентября

Приступаем к анализу предметной области.

Слайды (полноэкранные)

Практические работы на весь семестр

Большое практическое задание, которое делается в течении семестра, на факультете во время практики или дома. Цель его -- подготовиться к контрольной. Считается, что тот, кто к домашней работе даже не притрагивался, тот к контрольной не готов, и только зря будет терять на ней время. Поэтому домашнюю работу надо делать и не имеет смысла списывать (даже если и получится подсунуть списанное, к контрольной это вас не подготовит). Ее можно делать вдвоем, можно (и нужно) консультироваться с о мной если вдруг что непонятно (и даже если всё понятно), можно делать дома и в аудитории, можно и нужно присылать результаты по почте.

Варианты работы (можно выбирать любой, если только все не кинутся делать один и тот же):

  1. Авиакомпания
  2. Звукозапись
  3. Багтрекер
  4. Кофе

10 июня 2010

Защита окончена!

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

Больше всего понравились:

  • Денис Рысцов c поисковиком по математическим формулам
  • Егор Елизаров с видеоплеером для Андроида на аппаратных стероидах
А также Даша Богданова с переносными смыслами, Дмитрий Василик с транзакциями для bigtable и ещё кто-то (Андрей Шевченко, кажется) со стереоизображениями на GPU. Было ещё несколько неплохих работ и порядочное количество какого-то белого шума. Респект рецензентам, не постеснявшимся заявить что описанная машинка "ремингтон" в соединении с выпрямителем, неоновой лампочкой и тумблером не содержит ничего необъясненного.

PS. Вот говорят, что в АФТУ перед объявлением оценок 40 минут препираются, и могут поставить "хорошо" даже если научрук вместе с рецензентом ставят "отлично". Врут наверное.

PPS. Я конечно же субъективен и предвзят, а пост проплачен

04 мая 2010

Наши люди в финале соревнования SIGMOD по программированию

Думаю что такое событие заслуживает рекламы.

Участники нашей группы исследования методов организации информации вышли в финал соревнования SIGMOD по программированию. Соревнование, если коротко, заключалось в написании распределённого движка для выполнения запросов над реляционными данными, в нём принимали участие 29 команд, в финал вышли 5. Финалисты представят свои работы на конференции SIGMOD Лидирует пока что довольно ожидаемо команда из Стенфорда.

Амбициозной целью соревнований является построение полностью открытой распределённой СУБД. В прошлом году сделали некую реализацию индексов, в этом её используют для работы движка, в следующем наверное будет что-то ещё. Список спонсоров соревнования внушает уважение.

Слабо кому-нибудь в следующем году повторить достижение, а? Это не ACM ICPC, проходить сквозь сито зональных соревнований не нужно, стрессового ограничения времени в несколько часов нет, решается вполне себе реальная задача. Вперёд, хватит в контакте то сидеть да в игрушки играться.

06 апреля 2010

Дни сантехника

Хоть и становятся дни сантехника всё скучнее, но чем не повод выпить и закусить потусоваться. Я собираюсь 8 и 9 быть в Ленэкспо, желающие поговорить ищите меня где-нибудь там. Если вдруг есть желающие сдать зачёт по СУБД, в количестве не более двух штук, то у вас будет шанс сделать это там в Ленэкспо в четверг с 12:00 до 14:00 (подходить чтоб получить случайно сгенерированные вопросы надо к 10:00. Заодно сможете и на Джеймса Гослинга  полюбоваться). Предварительно нужно заявить о своём желании по почте России.

30 марта 2010

А вот кому $5000 за студенческое программирование?

Summer of Code -- это отличная возможность провести лето на даче с пользой, создавая нетленный код под присмотром опытных инженеров из opensource проектов и получая за это немалые в общем-то деньги (вообще фантастика). Читайте анонс и спешите подавать заявки до 9 апреля!

09 марта 2010

Анонс лекции про Machine Learning

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


11 марта 2010 года в 13:00 в ауд. 405

руководитель группы в исследовательской лаборатории корпорации Siemens Dr. Bernhard Lang прочитает лекцию на тему

"Machine Learning and its application in industry"

Abstract:
Machine learning methods have achieved a degree of maturity that they are applied in really mission-critical control tasks. A short overview of state-of-the-art methods in Machine Learning will be given. Moreover, by presenting machine learning applications e.g. in automation systems for the steel industry key-factors and pre-conditions for the success of machine learning methods will be discussed.

Приглашаются студенты 2-4 курса, заинтересованные в участии в исследовательских проектах, методах машинного обучения, экспертных системах, логическом анализе данных (data mining) и смежных областях.

03 марта 2010

Спаси и сохрани в университетах лучших :)

Наткнулся недавно, с помощью друзей, на новую (относительно) идею-фикс небезызвестного профессора Ш. Идея заключается в том, чтоб IT конторы не брали только что закончившего университет перспективного специалиста к себе работать, а оплачивали вместо этого ему преподавание в университете, если конечно он сам хочет преподавать. Save the best, говорит нам профессор в своей традиционной неподражаемой манере.

Если бы я был IT конторой то мне было бы не очень понятно, чему такому за мои деньги сможет научить вчерашний студент, ни разу не нюхавший промышленного пороха и не написавший в своей жизни ни одной программы длиннее 1000 строк, не говоря уж о unit тестах. Разум в чистом виде и в Google-то не очень нужен, а уж в среднестатистической-то конторе он не нужен и подавно. Не умеешь довести свою фичу до конца, подумать про удобный и приятный UI, вылизать пикселы, написать скучные тесты и потом кропотливо фиксить баги? Иди сражайся дальше на олимпиадах. Не понимаю, как эти вещи сможет объяснить тот кто их не знает, будь он хоть трижды the best.

Я при этом кстати совершенно не против финансирования конторами учебных курсов, на которых настоящие инженеры учат более приближенным к реальности вещам (и может быть даже не очень настоящие инженеры заодно учат вещам более научным) и с удовольствием рекламирую Академию Современного Программирования.

Пост проплачен конечно же промышленностью, да.

UPD: коварная промышленность подкатила ещё мешок денег и попросила попиарить Computer Science клуб при ПОМИ.

01 марта 2010

Книги издательства O'Reilly online

Некий немецкий проект PaperC даёт online доступ к нескольким сотням книг издательства O'Reilly. Читать в средней степени убогости интерфейсе можно бесплатно, скачивать PDF -- за деньги. Выбор неплох. Вот "Database in Depth" Дейта почитать можно, например, или "Java Swing". Весьма неплохо, учитывая абсолютное отсутствие вменяемой литературы в наших книжных магазинах.

У ПаперЦа есть серьёзный недостаток -- весь интерфейс там блин на немецком (книги в основном на английском, хоть поначалу и не скажешь). Но у меня с моим близким к нулю знанием этого языка получилось таки продраться, зарегистрироваться и что-то там почитать.

Немного подробнее на хабре: http://habrahabr.ru/blogs/startup/85667/

24 февраля 2010

СУБД: Четверг 25 февраля

Кажется, есть желающие начать делать практику (своевременно!) поэтому скорее всего буду в компьютерных классах со второй пары. Искать информацию, в любом случае, на 4390

15 февраля 2010

Вакансии стажёров в EMC

Кто там хотел вакансии стажёров? Ловите: http://adhoceducation.blogspot.com/2010/01/emc-st-petersburg-sw-intern-positions.html

Следующий сеанс теорзачёта: 16 февраля

Как обычно, примерно с 11:15-11:30 в аудитории 4390

09 февраля 2010

И снова СУБД - 11 февраля

Я буду на матмехе 11 февраля, примерно со второй пары. Искать в 4390.

06 февраля 2010

Расслабься и получай удовольствие

В процессе распития вечерней рюмки чая с коллегами поднялась флеймообразующая тема. Коротко и несколько утрированно суть: ты обучался несколько лет чистой математике и все эти годы тебя и твоих товарищей учили что только математика есть Наука и Занятие Достойное Уважения, а в программисты идут те, кто матан или там матфизику ниасилил. И вдруг по какой-то причине ты переметнулся в программирование. На тебя смотрят как на изгоя (ну по крайней мере тебе так кажется) и ты чувствуешь себя не очень комфортно из-за того что предал настоящую науку и стал заниматься каким-то ремеслом. Что делать?

Мой ответ в трёх словах: расслабься и получай удовольствие. И немного более подробно (извините за многабукв):

  • Не существует априорного разделения на занятия достойные и недостойные уважения, даже если брать в расчёт только занятия для человека, близкого к математике. Существуют те, кто свою работу делает хорошо, честно, ответственно и с душой и те, кто свою работу делает в лучшем случае формально, а в худшем просто спустя рукава или откровенно саботируя. Вне зависимости от того, какая это конкретно работа, первые достойны всяческого уважения а вторых в меру возможностей надо избегать. Да здравствуют дворники, у которых чистый двор и повара, делающие вкусные блины, даже если они не умеют решить квадратное уравнение. Луч диареи тем учёным, которые в десятый раз за последние десять лет посылают одну и ту же работу под разными соусами на разные конференции и тем преподавателям, которые в аудитории отбывают номер, а к студентам обращаются на "ты" в духе "ну там, на задней парте! Скажи, к чему этот интеграл сходится?"
  • Отбрасывая все прочие (для многих очень важные) критерии, выбирать работу надо не по принципу "если я не буду крутым в матфизике то меня сочтут тупым", а так чтоб от работы ты получал кайф. Если ты испытываешь удовольствие от того что в Твиттере весь день люди со всего мира восхищаются твоей новой фичей, или от того что только что отловленный и пофикшенный баг сделал легче жизнь одной-единственной Елены Васильевны в бухгалтерии, то значит тебе стоит заниматься этим ремеслом.
  • Если кто-то считает тебя недоразвитым только из-за того что ты бросил математику, и не удосуживается хотя бы поинтересоваться, а чем ты там занимаешься в программировании и скольким тысячам людей ты своим делом принёс пусть небольшую, но пользу, то тебе придётся напрячься, но совсем немного. Надо напрячь полтора десятка мышц на лице и три на среднем пальце. Тебе сразу станет намного легче. 

14 января 2010

Летняя школа Microsoft про структурам данных и алгоритмам

Не могу не попиарить полезное мероприятие. Пять курсов, один интересней другого, предлагает вам послушать в середине августа в Санкт-Петербурге компания Microsoft. Не пропускайте, срок предварительной регистрации истекает через месяц, а срок подачи заявки через два.

Статья Страуструпа об обучении программистов в университетах

В январском номере Communication of the ACM Бьярн Страуструп рассуждает о том, что выпускаемые университетами "программисты" программировать-то на самом деле не умеют, и о причинах такого явления. Статья совсем небесспорная и в немалой степени ориентированная на американскую систему образования, но и российским студентам (да и преподавателям, и руководителям предприятий) есть что в ней почитать. Перевод на русский язык читайте на хабрахабре.

Вообще этот номер CACM удался, там кроме Страуструпа показывают ещё очередной раунд битвы титанов по поводу Map-Reduce.