LINUX.ORG.RU

Хороших задачников по программированию тред

 ,


5

4

Разыскиваю задачники по программированию, как отечественных авторов, так и заграничных. Нужны как на стандартные структуры данных и алгоритмы, так и с нетривиальными формулировками. Пока что нашёл книги Пратта, Вирта и Ченя.

Спасибо всем откликнувшимся.

Ответ на: комментарий от LongLiveUbuntu

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

anonymous ()

А. Шень «Программирование: теоремы и задачи»

Книга написана в убеждении, что программирование имеет свой предмет, не сводящийся ни к конкретным языкам и системам, ни к методам построения быстрых алгоритмов. Кто-то однажды сказал, что можно убедить в правильности алгоритма, но не в правильности программы. Одна из целей книги — попытаться продемонстрировать, что это не так.
В принципе, возможность практического исполнения программ не является непременным условием изучения программирования. Однако она является сильнейшим стимулом — без такого стимула вряд ли у кого хватит интереса и терпения.
Выбранный жанр книги по необходимости ограничивает ее «программированием в малом», оставляя в стороне необходимую часть программистского образования — работу по модификации больших программ.
Кажется, Хоар сказал, что эстетическая прелесть программы — это не архитектурное излишество, а то, что отличает в программировании успех от неудачи. Если, решая задачи из этой книги, читатель почувствует прелесть хорошо написанной программы, в которой «ни убавить, ни прибавить», и сомнения в правильности которой кажутся нелепыми, то автор будет считать свою цель достигнутой.
Характер глав различен: в одних предлагается набор мало связанных друг с другом задач с решениями, в других по существу излагается один-единственный алгоритм. Темы глав во многом пересекаются, и мы предпочли кое-какие повторения формальным ссылкам.
Уровень трудности задач и глав весьма различен. Мы старались включить как простые задачи, которые могут быть полезны для начинающих, так и трудные задачи, которые могут посадить в лужу сильного школьника. (Хоть и редко, но это бывает полезно.)
В качестве языка для записи программ был выбран паскаль. Возможно, Модула-2 или Оберон были бы более изящным выбором, но пока что они менее доступны.
Неудачный опыт писания «популярных» учебников по программированию учит: никакого сюсюканья — писать надо так, чтобы потом самим было не стыдно прочесть.
Практически все задачи и алгоритмы, разумеется, не являются новыми (В некоторых редких случаях приведены ссылки на конкретную книгу или конкретного человека). Вместе с тем мы надеемся, что в некоторых случаях алгоритмы (и особенно доказательства) изложены более коротко и отчётливо.
Это не только и не столько учебник для школьника, сколько справочник и задачник для преподавателя, готовящегося к занятию.
Об «авторских правах»: право формулировать задачу и объяснять её решение является неотчуждаемым естественным правом всякого, кто на это способен. В соответствии с этим текст (в ASCII и TEX-версиях) является свободно распространяемым.

papin-aziat ()

Конечно «Исскуство программирования», там в каждой теме есть задачи, разделенные по уровню сложности. Знаю людей, которые по 10+ лет прораммистами работают, а некоторые задачи осилить не могут, что намекает, что отрасль катится в гавно.

Bobby_ ()
Ответ на: комментарий от Bobby_

Знаю людей, которые по 10+ лет прораммистами работают, а некоторые задачи осилить не могут, что намекает, что отрасль катится в гавно

Это говорит о том, что синтетические задачи из книги, и реальные проблемы реальных систем - совершенно разные вещи. Кто-то архитектор, кто-то строитель.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от Bobby_

Ни на чем не основанное утверждение. Похоже на старческое брюзжание :) С типичным пояснением «кто виноват», и мудрым экспертным мнением «что делать» ;) Поясню, что высмеиваю мнение что неумение решать синтетические задачи влияет на практические результаты.

I-Love-Microsoft ★★★★★ ()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

неумение решать синтетические задачи влияет на практические результаты.

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

Типичный вопрос «Оцените сложность поиска произвольного элемента в матрице KxL? Упорядоченной матрице KxL?».

Bobby_ ()