info at fenster.name

fenster.name

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

Ни в коем случае не хочу пытаться создать копию algolist'а и подобных коллекций алгоритмов. Здесь выложена только информация, которая была мне нужна для курсов программирования, которые я вёл в Новосибирском государственном университете, и она изложена именно так, как нужно было мне для моих занятий. Автор всех текстов — я, если иное не указано явно.

Александр Фенстер, fenster@fenster.name

Методы программирования, алгоритмы

Маленькие (две-три страницы в каждом) файлики, в которых «на пальцах» объясняется та или иная тема.

  1. Сложность алгоритмов: pdf (текст готовился для школьников, поэтому изложение несколько «на пальцах»)
  2. Массивы. Поиск, алгоритмы сортировки: быстрая, пирамидальная: pdf
  3. Списки (с примерами на C): pdf
  4. Структуры данных (стек, очередь, дек, куча): pdf
  5. Бинарные деревья: pdf
  6. Вычисления на стеке (разбор и вычисление значения выражения): pdf
  7. Вычислительная геометрия (пока самый минимум): pdf

Информация по языку C

Информация сгруппирована так, как удобно мне для проведения занятий, поэтому одни и те же сведения могут быть более чем в одном файле. Семинары первого семестра — курс «для начинающих», лекции второго семестра — «для продолжающих».

Лучшей книгой для изучения языка C была и остаётся книга Кернигана и Ритчи, которую легко найти как в интернете, так и в книжных магазинах. Если вас заставляют изучать C, я советую вам начать не с моего сайта и не с какого-либо ещё, а именно с этой небольшой книжки. Впрочем, почему-то мало кто из студентов следует этой рекомендации — это одна из причин, по которой я всё же решил написать конспекты своих семинаров.

Конспекты семинаров по C первого семестра изучения программирования на ММФ и ФИТ НГУ (к сожалению, только три месяца из четырёх):

  1. Основы языка C, простейшие программы: pdf
  2. Посимвольный ввод/вывод, массивы: pdf
  3. Указатели, функция scanf, передача массивов в функцию: pdf
  4. Бинарный поиск; сложность алгоритмов; строки: pdf
  5. Строки (продолжение); файлы: pdf
  6. Ветвящаяся рекурсия: pdf
  7. Алгоритмы сортировки: pdf
  8. Динамическая память: pdf
  9. Структуры; динамические списки: pdf
  10. Работа со списками: pdf
  11. Стеки и очереди; бинарные деревья: pdf

Конспекты лекций по C второго семестра изучения программирования на ФИТ НГУ (и здесь, к сожалению, только чуть больше половины):

  1. Сборка программы из нескольких файлов: pdf
  2. Указатели: pdf
  3. Указатели (продолжение), stdarg: pdf
  4. Обзор функций ввода-вывода: pdf
  5. Обзор функций работы со строками: pdf
  6. Типы данных: pdf
  7. Хранение данных: массивы, списки: pdf
  8. Препроцессор: pdf
  9. Динамические структуры данных: pdf

Просто небольшие тексты по двум важным темам:

  1. Ввод и вывод: pdf
  2. Динамическая память: pdf

Информация по языку C++

Конспекты семинаров по ООП в C++ для студентов ММФ НГУ. Очень краткое изложение теории, необходимой для выполнения заданий.

  1. Введение в ООП на C++: классы, объекты, поля, методы, операторы: pdf
  2. Перегрузка операторов [], += и прочих: pdf
  3. Шаблоны (основные сведения): pdf
  4. Операторы * и ->, реализация итераторов: pdf
  5. Наследование: pdf

Программирование в GNU/Linux

  1. Основные команды, использование редактора vim: pdf
  2. Использование отладчика gdb: pdf

Программирование на языке Lisp

  1. Э. Хювёнен, Й. Сеппянен. Мир Лиспа. Два тома: pdf (1, 2), djvu (1, 2).
    Это достаточно старая книга, которую сейчас довольно трудно (но вполне возможно) найти в бумажном виде. Я советую вам пролистать её «для общего развития», даже если сам по себе язык Лисп вас не интересует. А уж если вас заставляют учить Лисп на занятиях, лучшего пособия по нему вы не найдёте.
  2. Замыкания в Common Lisp: pdf

Программирование в Borland C++ Builder

  1. Создание визуальных компонентов во время выполнения программы: html
  2. Работа с Borland Database Engine: html

Тексты, не относящиеся к перечисленным темам

  1. Попытка сделать конспект для 8 класса школы по компьютерным сетям: pdf
  2. Проблемы преподавания языка C неподготовленной аудитории: pdf
  3. Выявление плагиата при проверке студенческих программ: pdf