<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://mit.spbau.ru/sewiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dievsky</id>
		<title>SEWiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://mit.spbau.ru/sewiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dievsky"/>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Dievsky"/>
		<updated>2026-06-07T19:24:42Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%B1%D0%B8%D0%BD%D0%B0%D1%82%D0%BE%D1%80%D0%B8%D0%BA%D0%B0_2012&amp;diff=2079</id>
		<title>Комбинаторика 2012</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%B1%D0%B8%D0%BD%D0%B0%D1%82%D0%BE%D1%80%D0%B8%D0%BA%D0%B0_2012&amp;diff=2079"/>
				<updated>2012-12-07T14:22:52Z</updated>
		
		<summary type="html">&lt;p&gt;Dievsky: Добавлено задание №7.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор - Омельченко Александр Владимирович&lt;br /&gt;
&lt;br /&gt;
Практика - Краско Евгений&lt;br /&gt;
&lt;br /&gt;
Практика - Диевский Алексей&lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
* [[Media:Глава_1.pdf| Глава 1]]&lt;br /&gt;
* [[Media:Глава_2.pdf| Глава 2]]&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
* [[Media:Homework1-1.pdf| Домашнее задание №1]]&lt;br /&gt;
* [[Media:Homework2.pdf| Домашнее задание №2]]&lt;br /&gt;
* [[Media:Homework3.pdf| Домашнее задание №3]]&lt;br /&gt;
* [[Media:Homework4.pdf| Домашнее задание №4]]&lt;br /&gt;
* [[Media:Homework5.pdf| Домашнее задание №5]]&lt;br /&gt;
* [[Media:Homework6.pdf| Домашнее задание №6]]&lt;br /&gt;
* [[Media:Homework7.pdf| Домашнее задание №7]]&lt;br /&gt;
&lt;br /&gt;
== Список литературы ==&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
* [https://docs.google.com/spreadsheet/ccc?key=0AtjSko0XIgLWdHZLQ3haNHVxZHFlVVlGTExTZXNPWkE&amp;amp;pli=1#gid=3| Результаты домашних работ]&lt;/div&gt;</summary>
		<author><name>Dievsky</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Homework7.pdf&amp;diff=2078</id>
		<title>Файл:Homework7.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Homework7.pdf&amp;diff=2078"/>
				<updated>2012-12-07T14:22:15Z</updated>
		
		<summary type="html">&lt;p&gt;Dievsky: Комбинаторика №7&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Комбинаторика №7&lt;/div&gt;</summary>
		<author><name>Dievsky</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_2012&amp;diff=1611</id>
		<title>Машинное обучение 2012</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_2012&amp;diff=1611"/>
				<updated>2012-10-02T19:19:51Z</updated>
		
		<summary type="html">&lt;p&gt;Dievsky: Вёрстка&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор - Николенко С. И.&lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
=== Крестики-нолики ===&lt;br /&gt;
&lt;br /&gt;
Требуется написать программу, которая обучается играть за первого игрока (крестики) против фиксированной стратегии второго игрока (нолики). В случае ничейного результата партия считается проигранной крестиками.&lt;br /&gt;
В качестве стратегии второго использовать следующую: если нолики могут своим ходом составить ряд из трех нолей, то они делают этот ход. Если такого хода нет, то ход выбирается случайно равновероятно из всех незанятых клеток.&lt;br /&gt;
Попробовать две стратегии обучения: TD (когда после хода ценность позиции сдвигается в сторону ценности новой позиции) и стратегию, которая премирует все позиции которые встретились в партии, если крестики победили и депремирует, если проиграли.&lt;br /&gt;
В качестве стратегии выбора хода крестиков реализовать \epsilon-жадную и температурную. &lt;br /&gt;
Программа должна, непрерывно обучаясь, провести 100 раз по 1000 партий и для каждой тысячи вывести число побед крестиков в консоль или в файл.&lt;br /&gt;
Задача зачитывается при наличии кода и четырёх файлов (для всех сочетаний стратегии поведения и стратегии обучения), показывающих динамику числа побед.&lt;br /&gt;
&lt;br /&gt;
=== Про монетку ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующую игру: У вас есть сумма от 1 до 99 монет, вы делаете ставку и подбрасываете монетку. Если выпал &amp;quot;орёл&amp;quot;, то ставка удваивается, иначе теряется. Цель игры набрать ровно 100 монет.&lt;br /&gt;
Зафиксируем базовую стратегию: Если сумма меньше или равна 50 монетам, то ставим всё, иначе недостающую до 100 сумму. Пользуясь данной стратегией, проэмулировать по 100 игр из каждого начального состояния.&lt;br /&gt;
По результатам эмуляции для каждого положения вычислить &amp;quot;взвешенный успех&amp;quot; --- долю игр, прошедших через это состояние, закончившихся успехом.&lt;br /&gt;
По результатам вычисления выбрать новую стратегию ставок --- жадную, по отношению к новым весам позиций.&lt;br /&gt;
Повторить такую процедуру до схождения стратегии (до момента, когда ставки перестанут меняться).&lt;br /&gt;
Провести такое моделирование для разной вероятности выпадения орла --- 0.4, 0.5, 0.6 и вывести получившиеся оптимальные стратегии.&lt;br /&gt;
Задача зачитывается при наличии кода и трёх файлов (для трёх вероятностей выпадения орла), содержащих полученную стратегию в виде пар чисел &amp;quot;состояние&amp;quot;--&amp;quot;ставка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Блекджек ===&lt;br /&gt;
&lt;br /&gt;
Задача: научиться играть в блекджек против дилера с фиксированной стратегией.&lt;br /&gt;
&lt;br /&gt;
Правила игры: игроку и дилеру сдаётся по две карты. Если у игрока 21 очко при сдаче, то дилер открывает свою руку и они сравниваются. Если этого не произошло, то игра продолжается по правилам, описанным далее. Игрок видит свои карты и одну карту дилера. Каждый ход игрок выбирает одну из двух возможностей: взять еще карту или остановиться. Ходы игрока продолжаются до тех пор, пока он не выберет &amp;quot;остановиться&amp;quot; или не наберёт больше 21 очка. Карты имеют следующую стоимость в очках: туз --- 1 или 11 по выбору игрока, остальные картинки 10, остальные карты по своему значению.&lt;br /&gt;
Если игрок набрал больше 21, то он считается проигравшим. Если игрок остановился, то дилер начинает набирать карты.&lt;br /&gt;
&lt;br /&gt;
Стратегия 1: Дилер набирает, пока у него не будет 17 или больше, и останавливается.&lt;br /&gt;
&lt;br /&gt;
Стратегия 2: Дилер набирает, пока у него не будет столько же, сколько у игрока, и останавливается.&lt;br /&gt;
&lt;br /&gt;
Предполагая, что каждая следующая карта достается из новой колоды, обучить стратегию поведения игрока. Начав со стратегии &amp;quot;останавливаться&amp;quot; на 20 и 21 проэмулировать ряд партий и построить вес успешности позиций, считая, что победа дает одно очко, поражение --- минус одно, ничья --- ноль.&lt;br /&gt;
В качестве новой стратегии взять жадную стратегию при полученных весах. Повторять до сходимости. Позицией считать сумму карт в руке, открытую карту (ее стоимость) дилера и факт наличия в руке туза, которого вы считаете за 11.&lt;br /&gt;
Задача зачитывается при наличии кода и описания полученных стратегий игрока, для двух стратегий дилера. Стратегия игрока описывается, как решения игрока (&amp;quot;взять&amp;quot; или &amp;quot;остановиться&amp;quot;) при заданном числе очков в руке, открытой карты дилера и наличия в руке туза за 11 очков.&lt;br /&gt;
&lt;br /&gt;
== Список литературы ==&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;/div&gt;</summary>
		<author><name>Dievsky</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_2012&amp;diff=1610</id>
		<title>Машинное обучение 2012</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_2012&amp;diff=1610"/>
				<updated>2012-10-02T19:17:33Z</updated>
		
		<summary type="html">&lt;p&gt;Dievsky: Ещё опечаток&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор - Николенко С. И.&lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
1. Крестики-нолики.&lt;br /&gt;
&lt;br /&gt;
Требуется написать программу, которая обучается играть за первого игрока (крестики) против фиксированной стратегии второго игрока (нолики). В случае ничейного результата партия считается проигранной крестиками.&lt;br /&gt;
В качестве стратегии второго использовать следующую: если нолики могут своим ходом составить ряд из трех нолей, то они делают этот ход. Если такого хода нет, то ход выбирается случайно равновероятно из всех незанятых клеток.&lt;br /&gt;
Попробовать две стратегии обучения: TD (когда после хода ценность позиции сдвигается в сторону ценности новой позиции) и стратегию, которая премирует все позиции которые встретились в партии, если крестики победили и депремирует, если проиграли.&lt;br /&gt;
В качестве стратегии выбора хода крестиков реализовать \epsilon-жадную и температурную. &lt;br /&gt;
Программа должна, непрерывно обучаясь, провести 100 раз по 1000 партий и для каждой тысячи вывести число побед крестиков в консоль или в файл.&lt;br /&gt;
Задача зачитывается при наличии кода и четырёх файлов (для всех сочетаний стратегии поведения и стратегии обучения), показывающих динамику числа побед.&lt;br /&gt;
&lt;br /&gt;
2. Про монетку.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующую игру: У вас есть сумма от 1 до 99 монет, вы делаете ставку и подбрасываете монетку. Если выпал &amp;quot;орёл&amp;quot;, то ставка удваивается, иначе теряется. Цель игры набрать ровно 100 монет.&lt;br /&gt;
Зафиксируем базовую стратегию: Если сумма меньше или равна 50 монетам, то ставим всё, иначе недостающую до 100 сумму. Пользуясь данной стратегией, проэмулировать по 100 игр из каждого начального состояния.&lt;br /&gt;
По результатам эмуляции для каждого положения вычислить &amp;quot;взвешенный успех&amp;quot; --- долю игр, прошедших через это состояние, закончившихся успехом.&lt;br /&gt;
По результатам вычисления выбрать новую стратегию ставок --- жадную, по отношению к новым весам позиций.&lt;br /&gt;
Повторить такую процедуру до схождения стратегии (до момента, когда ставки перестанут меняться).&lt;br /&gt;
Провести такое моделирование для разной вероятности выпадения орла --- 0.4, 0.5, 0.6 и вывести получившиеся оптимальные стратегии.&lt;br /&gt;
Задача зачитывается при наличии кода и трёх файлов (для трёх вероятностей выпадения орла), содержащих полученную стратегию в виде пар чисел &amp;quot;состояние&amp;quot;--&amp;quot;ставка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Блекджек.&lt;br /&gt;
&lt;br /&gt;
Задача научиться играть в блекджек против дилера с фиксированной стратегией.&lt;br /&gt;
&lt;br /&gt;
Правила игры: игроку и дилеру сдаётся по две карты. Если у игрока 21 очко при сдаче, то дилер открывает свою руку и они сравниваются. Если этого не произошло, то игра продолжается по правилам, описанным далее. Игрок видит свои карты и одну карту дилера. Каждый ход игрок выбирает одну из двух возможностей: взять еще карту или остановиться. Ходы игрока продолжаются до тех пор, пока он не выберет &amp;quot;остановиться&amp;quot; или не наберёт больше 21 очка.&lt;br /&gt;
Если игрок набрал больше 21, то он считается проигравшим. Если игрок остановился, то дилер начинает набирать карты. Стратегия 1: Дилер набирает, пока у него не будет 17 или больше, и останавливается. Стратегия 2: Дилер набирает, пока у него не будет столько же, сколько у игрока, и останавливается.&lt;br /&gt;
Карты имеют следующую стоимость в очках: туз --- 1 или 11 по выбору игрока, остальные картинки 10, остальные карты по своему значению.&lt;br /&gt;
Предполагая, что каждая следующая карта достается из новой колоды, обучить стратегию поведения игрока. Начав со стратегии &amp;quot;останавливаться&amp;quot; на 20 и 21 проэмулировать ряд партий и построить вес успешности позиций, считая, что победа дает одно очко, поражение --- минус одно, ничья --- ноль.&lt;br /&gt;
В качестве новой стратегии взять жадную стратегию при полученных весах. Повторять до сходимости. Позицией считать сумму карт в руке, открытую карту (ее стоимость) дилера и факт наличия в руке туза, которого вы считаете за 11.&lt;br /&gt;
Задача зачитывается при наличии кода и описания полученных стратегий игрока, для двух стратегий дилера. Стратегия игрока описывается, как решения игрока (&amp;quot;взять&amp;quot; или &amp;quot;остановиться&amp;quot;) при заданном числе очков в руке, открытой карты дилера и наличия в руке туза за 11 очков.&lt;br /&gt;
&lt;br /&gt;
== Список литературы ==&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;/div&gt;</summary>
		<author><name>Dievsky</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_2012&amp;diff=1609</id>
		<title>Машинное обучение 2012</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_2012&amp;diff=1609"/>
				<updated>2012-10-02T19:14:11Z</updated>
		
		<summary type="html">&lt;p&gt;Dievsky: Исправление опечаток&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор - Николенко С. И.&lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
1. Крестики-нолики.&lt;br /&gt;
&lt;br /&gt;
Требуется написать программу, которая обучается играть за первого игрока (крестики) против фиксированной стратегии второго игрока (нолики). В случае ничейного результата партия считается проигранной крестиками.&lt;br /&gt;
В качестве стратегии второго использовать следующую: если нолики могут своим ходом составить ряд из трех нолей, то они делают этот ход. Если такого хода нет, то ход выбирается случайно равновероятно из всех незанятых клеток.&lt;br /&gt;
Попробовать две стратегии обучения: TD (когда после хода ценность позиции сдвигается в сторону ценности новой позиции) и стратегию, которая премирует все позиции которые встретились в партии, если крестики победили и депремирует, если проиграли.&lt;br /&gt;
В качестве стратегии выбора хода крестиков реализовать \epsilon-жадную и температурную. &lt;br /&gt;
Программа должна, непрерывно обучаясь, провести 100 раз по 1000 партий и для каждой тысячи вывести число побед крестиков в консоль или в файл.&lt;br /&gt;
Задача зачитывается при наличии кода и четырёх файлов (для всех сочетаний стратегии поведения и стратегии обучения), показывающих динамику числа побед.&lt;br /&gt;
&lt;br /&gt;
2. Про монетку.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующую игру: У вас есть сумма от 1 до 99 монет, вы делаете ставку и подбрасываете монетку. Если выпал &amp;quot;орёл&amp;quot;, то ставка удваивается, иначе теряется. Цель игры набрать ровно 100 монет.&lt;br /&gt;
Зафиксируем базовую стратегию: Если сумма меньше или равна 50 монетам, то ставим всё, иначе недостающую до 100 сумму. Пользуясь данной стратегией, проэмулировать по 100 игр из каждого начального состояния.&lt;br /&gt;
По результатам эмуляции для каждого положения вычислить &amp;quot;взвешенный успех&amp;quot; --- долю игр, прошедших через это состояние, закончившихся успехом.&lt;br /&gt;
По результатам вычисления выбрать новую стратегию ставок --- жадную, по отношению к новым весам позиций.&lt;br /&gt;
Повторить такую процедуру до схождения стратегии (до момента, когда ставки перестанут меняться).&lt;br /&gt;
Провести такое моделирование для разной вероятности выпадения орла --- 0.4, 0.5, 0.6 и вывести получившиеся оптимальные стратегии.&lt;br /&gt;
Задача зачитывается при наличии кода и трёх файлов (для трёх вероятностей выпадения орла), содержащих полученную стратегию в виде пар чисел &amp;quot;состояние&amp;quot;--&amp;quot;ставка&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Блек-Джек.&lt;br /&gt;
Задача научиться играть в Блек-Джек против диллера с фиксированной стратегией.&lt;br /&gt;
Правила игры: игроку и диллеру сдается по две карты. Если у игрока 21 очко при сдаче, то диллер открывает свою руку и они сравниваются. Если этого не произошло, то игра продолжается по правилам описанным далее. Игрок видит свои карты и одну карту диллера. Каждый ход игрок выбирает одну из двух возможностей: взять еще карту или остановиться. Ходы игрока продолжаются до тех пор пока он не выберет &amp;quot;остановиться&amp;quot; или не наберет больше 21 очка.&lt;br /&gt;
Если игрок набрал больше 21, то он считается проигравшим. Если игрок остановился, то диллер начинает набирать карты. Стратегия 1: Диллер набирает пока у него не будет 17 или больше и останавливается. Стратегия 2: Диллер набирает пока у него не будет столько же сколько у игрока и останавливается.&lt;br /&gt;
Карты имеют следующую стоимость в очках: Туз --- 1 или 11 по выбору игрока, остальные картинки 10, остальные карты по своему значению.&lt;br /&gt;
Предполагая, что каждая следующая карта достается из новой колоды, обучить стратегию поведения игрока. Начав со стратегии останавливаться на 20 и 21 проэмулировать ряд партий и построить вес успешности позиций, считая, что победа дает одно очко, поражение --- минус одно, ничья --- ноль.&lt;br /&gt;
В качестве новой стратегии взять жадную стратегию при полученных весах. Повторять до сходимости. Позицией считать сумму карт в руке, открытую карту (ее стоимость) диллера и факт наличия в руке туза, которого вы считаете за 11.&lt;br /&gt;
Задача зачитывается при наличии кода и описания полученных стратегий игрока, для двух стратегий диллера. Стратегия игрока описывается, как решения игрока (взять или остановится) при заданном числе очков в руке, открытой карты диллера и наличия в руке туза за 11 очков.&lt;br /&gt;
&lt;br /&gt;
== Список литературы ==&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;/div&gt;</summary>
		<author><name>Dievsky</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=IntroductionToProgrammingLanguages&amp;diff=1012</id>
		<title>IntroductionToProgrammingLanguages</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=IntroductionToProgrammingLanguages&amp;diff=1012"/>
				<updated>2012-02-18T11:40:19Z</updated>
		
		<summary type="html">&lt;p&gt;Dievsky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Введение в языки программирования'''&lt;br /&gt;
&lt;br /&gt;
Лектор - Дмитрий Юрьевич [http://www.matmex.spb.ru/photoalbum/person_teachers_BulychevDY_1.html Булычев]&lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
* [http://code.google.com/p/aptu-tex/source/browse/formallang/les1/les.tex Лекция №1] 10.02.2012&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
* [Задание №1] срок сдачи 17 февраля 2011&lt;br /&gt;
написать генерирующее расширения для программы возведения в степень&lt;br /&gt;
&lt;br /&gt;
    int exp (int x, int n) {&lt;br /&gt;
       int y = 1;&lt;br /&gt;
       while (n) {&lt;br /&gt;
           if (n % 2) y *= x;&lt;br /&gt;
           n /= 2;&lt;br /&gt;
           x *= x;&lt;br /&gt;
       }&lt;br /&gt;
       return y;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Это генерирующее расширение должно для своего единственного параметра n печатать остаточную программу, полученную специализацией функции exp на это значение n. Если это генерирующее расширение сохранит в себе какие-то черты exp, будет совсем хорошо.&lt;br /&gt;
&lt;br /&gt;
== Программа курса ==&lt;br /&gt;
&lt;br /&gt;
* 1. Языки программирования, синтаксис, семантика, прагматика. Когнитивные особенности человеческого мышления и их влияние на развитие языков программирования.&lt;br /&gt;
* 2. Языки программирования в ретроспективе. Процедурное, объектно-ориентированное, логическое и функциональное программирование. Предметно-ориентированные языки. Языки вне классификации. &lt;br /&gt;
* 3. Абстрактный и конкретный синтаксис. Статическая и динамическая семантика. Компиляция и интерпретация. Проекции Футамуры-Ершова.&lt;br /&gt;
* 4. Генеративный и аналитический подходы к описанию синтаксиса. Формальные грамматики, иерархия Хомского. &lt;br /&gt;
* 5. Регулярные языки и конечные автоматы. Применение регулярных выражений в народном хозяйстве (grep/sed/awk) и для лексического анализа (lex/flex). Отсутствие бесконтекстной лексики в реальных языках программирования.&lt;br /&gt;
* 7. Контекстно-свободные грамматики. Нормальные формы Хомского и Грейбах. Алгоритмы Эрли и Кока-Янгера-Касами. Неконтекстосвободность реальных языков программирования.&lt;br /&gt;
* 6. Нисходящий анализ. Возврат и заглядывание вперед. Класс языков LL(k). Рекурсивный спуск, магазинные автоматы, парсер-комбинаторы, PEG, &amp;quot;скаредный&amp;quot; разбор. GLL. Инструменты нисходящего анализа (Parsec, ANTLR и пр.)&lt;br /&gt;
* 7. Восходящий анализ, классы LR(k) и LALR(k). GLR. Инструменты восходящего анализа (yacc/bison).&lt;br /&gt;
* 8. Двухуровневые и атрибутные грамматики, вопросы применения на практике.&lt;br /&gt;
* 9. Идентификация. Область видимости и область действия. Статическое и динамическое, раннее и позднее связывание. &lt;br /&gt;
* 10. Энергичность и ленивость. Call-by-name, call-by-value, call-by-reference.&lt;br /&gt;
* 11. Строгость, чистота, прозрачность по ссылкам.&lt;br /&gt;
* 12. Языки с типами и языки без типов. Статическая и динамическая типизация. &lt;br /&gt;
* 13. Номинальная и структурная эквивалентность типов. Простейшие конструкторы.&lt;br /&gt;
* 14. Типы с кванторами и что они означают. Универсальные и экзистенциальные типы. &lt;br /&gt;
* 15. Subtyping. Структурный и номинальный subtyping. &lt;br /&gt;
* 16. Динамическая семантика языков. Операционная семантика большого и малого шага.&lt;br /&gt;
* 17. Денотационный подход к описанию семантики. &lt;br /&gt;
* 18. Аксиоматическая семантика. Верификация программ. Design by contract.&lt;br /&gt;
* 19. Когерентность языков программирования и машинных архитектур. Языково-специфичные архитектуры, виртуальные машины и JIT-компиляция.&lt;br /&gt;
* 20*. Структура рабочей программы. Код, данные, библиотеки, поддержка времени исполнения.&lt;br /&gt;
* 21*. Задача генерации кода. Генерация кода путем интерпретации.&lt;br /&gt;
* 22*. Восходящее переписывание деревьев и динамическое программирование (BURS).&lt;br /&gt;
* 23*. Алгоритмы распределения регистров. Распределение регистров и раскраска графов.&lt;br /&gt;
* 24*. Параллелизм на уровне инструкций. Планирование инструкций.&lt;br /&gt;
* 25*. Анализ потока управления. Глубинное остовное дерево, доминирование, анализ циклической структуры программ. Сводимость. Устранение недостижимого кода, оптимальная линеаризация.&lt;br /&gt;
* 26*. Анализ потока данных. Полурешеточная модель. RD, LV, AE, UEU. Устраненние мертвого кода, экономия общих подвыражений, понижение силы операций, чистка циклов.&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;nowiki&amp;gt;* - вопросы будут рассмотрены при наличии времени.&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
== Список литературы ==&lt;br /&gt;
* 1. S.Muchnik. Advanced Compiler Design &amp;amp; Implementation. Academic Press, Morgan Kaufmann, 1998.&lt;br /&gt;
* 2. А.Ахо, Р.Сети, С.Ульман. Компиляторы: принципы, технологии, инструменты. Вильямс, 2003.&lt;br /&gt;
* 3. А.Ахо, С.Ульман. Теория синтаксического анализа, перевода и компиляции. Том 1. М., &amp;quot;Мир&amp;quot;, 1978.&lt;br /&gt;
* 4. F.Nielsen. Principles of Program Analysis. Springer, 2005.&lt;br /&gt;
* 5. F.Nielse, H-R.Nielsen. Semantics with Applications. Wiley Professional Computing, 1992.&lt;br /&gt;
* 6. B.Pierce. Types and Programming Languages. MIT Press, 2002.&lt;br /&gt;
* 7. T.Пратт. Языки программирования: разработка и реализация. 1978.&lt;br /&gt;
* 8. Б.К.Мартыненко. Языки и трансляции. Из-во СПбГУ, 2008.&lt;br /&gt;
&lt;br /&gt;
== Список групп для выполнения задач ==&lt;br /&gt;
&lt;br /&gt;
* 1. [Haskell] Мартынов Семён, Башоров Залим, Казенюк Сергей, Витвицкий Александр, Тугарёв Денис.&lt;br /&gt;
* 2. Кринкин Михаил, Лазарев Сергей, Фофанова Мария, Бандурин Дмитрий, Ждан Анна&lt;br /&gt;
* 3. [JAVA] Сорокин Артём, Коровин Алексей, Опейкин Александр, Шеставин Дмитрий, Владислав Савельев&lt;br /&gt;
* 4. [C++] Иванов Антон, Крашенинникова Ксения, Лепенькин Ярослав, Диевский Алексей, Кормишин Сергей&lt;br /&gt;
* 5. Певзнер Алина, Князев Сергей&lt;br /&gt;
* 6.&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;nowiki&amp;gt;* Не более 5 человек в каждой группе; старайтесь выравнивать группы по уровню.&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://caml.inria.fr/ocaml/release.en.html Latest OCaml release]&lt;br /&gt;
* [http://caml.inria.fr/pub/docs/manual-ocaml/index.html Documentation and user’s manual]&lt;/div&gt;</summary>
		<author><name>Dievsky</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=IntroductionToProgrammingLanguages&amp;diff=992</id>
		<title>IntroductionToProgrammingLanguages</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=IntroductionToProgrammingLanguages&amp;diff=992"/>
				<updated>2012-02-13T18:25:03Z</updated>
		
		<summary type="html">&lt;p&gt;Dievsky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Введение в языки программирования'''&lt;br /&gt;
&lt;br /&gt;
Лектор - Дмитрий Юрьевич [http://www.matmex.spb.ru/photoalbum/person_teachers_BulychevDY_1.html Булычев]&lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
* [http://code.google.com/p/aptu-tex/source/browse/formallang/les1/les.tex Лекция №1] 10.02.2012&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
* [Задание №1] срок сдачи 17 февраля 2011&lt;br /&gt;
написать генерирующее расширения для программы возведения в степень&lt;br /&gt;
&lt;br /&gt;
    int exp (int x, int n) {&lt;br /&gt;
       int y = 1;&lt;br /&gt;
       while (n) {&lt;br /&gt;
           if (n % 2) y *= x;&lt;br /&gt;
           n /= 2;&lt;br /&gt;
           x *= x;&lt;br /&gt;
       }&lt;br /&gt;
       return y;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Это генерирующее расширение должно для своего единственного параметра n печатать остаточную программу, полученную специализацией функции exp на это значение n. Если это генерирующее расширение сохранит в себе какие-то черты exp, будет совсем хорошо.&lt;br /&gt;
&lt;br /&gt;
== Программа курса ==&lt;br /&gt;
&lt;br /&gt;
* 1. Языки программирования, синтаксис, семантика, прагматика. Когнитивные особенности человеческого мышления и их влияние на развитие языков программирования.&lt;br /&gt;
* 2. Языки программирования в ретроспективе. Процедурное, объектно-ориентированное, логическое и функциональное программирование. Предметно-ориентированные языки. Языки вне классификации. &lt;br /&gt;
* 3. Абстрактный и конкретный синтаксис. Статическая и динамическая семантика. Компиляция и интерпретация. Проекции Футамуры-Ершова.&lt;br /&gt;
* 4. Генеративный и аналитический подходы к описанию синтаксиса. Формальные грамматики, иерархия Хомского. &lt;br /&gt;
* 5. Регулярные языки и конечные автоматы. Применение регулярных выражений в народном хозяйстве (grep/sed/awk) и для лексического анализа (lex/flex). Отсутствие бесконтекстной лексики в реальных языках программирования.&lt;br /&gt;
* 7. Контекстно-свободные грамматики. Нормальные формы Хомского и Грейбах. Алгоритмы Эрли и Кока-Янгера-Касами. Неконтекстосвободность реальных языков программирования.&lt;br /&gt;
* 6. Нисходящий анализ. Возврат и заглядывание вперед. Класс языков LL(k). Рекурсивный спуск, магазинные автоматы, парсер-комбинаторы, PEG, &amp;quot;скаредный&amp;quot; разбор. GLL. Инструменты нисходящего анализа (Parsec, ANTLR и пр.)&lt;br /&gt;
* 7. Восходящий анализ, классы LR(k) и LALR(k). GLR. Инструменты восходящего анализа (yacc/bison).&lt;br /&gt;
* 8. Двухуровневые и атрибутные грамматики, вопросы применения на практике.&lt;br /&gt;
* 9. Идентификация. Область видимости и область действия. Статическое и динамическое, раннее и позднее связывание. &lt;br /&gt;
* 10. Энергичность и ленивость. Call-by-name, call-by-value, call-by-reference.&lt;br /&gt;
* 11. Строгость, чистота, прозрачность по ссылкам.&lt;br /&gt;
* 12. Языки с типами и языки без типов. Статическая и динамическая типизация. &lt;br /&gt;
* 13. Номинальная и структурная эквивалентность типов. Простейшие конструкторы.&lt;br /&gt;
* 14. Типы с кванторами и что они означают. Универсальные и экзистенциальные типы. &lt;br /&gt;
* 15. Subtyping. Структурный и номинальный subtyping. &lt;br /&gt;
* 16. Динамическая семантика языков. Операционная семантика большого и малого шага.&lt;br /&gt;
* 17. Денотационный подход к описанию семантики. &lt;br /&gt;
* 18. Аксиоматическая семантика. Верификация программ. Design by contract.&lt;br /&gt;
* 19. Когерентность языков программирования и машинных архитектур. Языково-специфичные архитектуры, виртуальные машины и JIT-компиляция.&lt;br /&gt;
* 20*. Структура рабочей программы. Код, данные, библиотеки, поддержка времени исполнения.&lt;br /&gt;
* 21*. Задача генерации кода. Генерация кода путем интерпретации.&lt;br /&gt;
* 22*. Восходящее переписывание деревьев и динамическое программирование (BURS).&lt;br /&gt;
* 23*. Алгоритмы распределения регистров. Распределение регистров и раскраска графов.&lt;br /&gt;
* 24*. Параллелизм на уровне инструкций. Планирование инструкций.&lt;br /&gt;
* 25*. Анализ потока управления. Глубинное остовное дерево, доминирование, анализ циклической структуры программ. Сводимость. Устранение недостижимого кода, оптимальная линеаризация.&lt;br /&gt;
* 26*. Анализ потока данных. Полурешеточная модель. RD, LV, AE, UEU. Устраненние мертвого кода, экономия общих подвыражений, понижение силы операций, чистка циклов.&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;nowiki&amp;gt;* - вопросы будут рассмотрены при наличии времени.&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
== Список литературы ==&lt;br /&gt;
* 1. S.Muchnik. Advanced Compiler Design &amp;amp; Implementation. Academic Press, Morgan Kaufmann, 1998.&lt;br /&gt;
* 2. А.Ахо, Р.Сети, С.Ульман. Компиляторы: принципы, технологии, инструменты. Вильямс, 2003.&lt;br /&gt;
* 3. А.Ахо, С.Ульман. Теория синтаксического анализа, перевода и компиляции. Том 1. М., &amp;quot;Мир&amp;quot;, 1978.&lt;br /&gt;
* 4. F.Nielsen. Principles of Program Analysis. Springer, 2005.&lt;br /&gt;
* 5. F.Nielse, H-R.Nielsen. Semantics with Applications. Wiley Professional Computing, 1992.&lt;br /&gt;
* 6. B.Pierce. Types and Programming Languages. MIT Press, 2002.&lt;br /&gt;
* 7. T.Пратт. Языки программирования: разработка и реализация. 1978.&lt;br /&gt;
* 8. Б.К.Мартыненко. Языки и трансляции. Из-во СПбГУ, 2008.&lt;br /&gt;
&lt;br /&gt;
== Список групп для выполнения задач ==&lt;br /&gt;
&lt;br /&gt;
* 1. Мартынов Семён, Башоров Залим, Казенюк Сергей, Витвицкий Александр, Тугарёв Денис.&lt;br /&gt;
* 2. Кринкин Михаил, Лазарев Сергей, Фофанова Мария&lt;br /&gt;
* 3. Сорокин Артём&lt;br /&gt;
* 4. Иванов Антон, Крашенинникова Ксения, Лепенькин Ярослав, Диевский Алексей&lt;br /&gt;
* 5.&lt;br /&gt;
* 6.&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;nowiki&amp;gt;* Не более 5 человек в каждой группе; старайтесь выравнивать группы по уровню.&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://caml.inria.fr/ocaml/release.en.html Latest OCaml release]&lt;br /&gt;
* [http://caml.inria.fr/pub/docs/manual-ocaml/index.html Documentation and user’s manual]&lt;/div&gt;</summary>
		<author><name>Dievsky</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=854</id>
		<title>Алгоритмы и структуры данных</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=854"/>
				<updated>2012-01-16T03:04:25Z</updated>
		
		<summary type="html">&lt;p&gt;Dievsky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://www.lektorium.tv/course/?id=22823&lt;br /&gt;
&lt;br /&gt;
==Экзамен==&lt;br /&gt;
'''17.01.2012'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Начало в '''10.00''' &amp;lt;br/&amp;gt;&lt;br /&gt;
1.5 ч. на подготовку&amp;lt;br/&amp;gt;&lt;br /&gt;
15 минут на ответ.&amp;lt;br/&amp;gt;&lt;br /&gt;
Заходить получать билеты будете, действительно, с интервалом в минут 15, поэтому рекомендую заранее определиться с порядком&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примерно в 14 прервёмся на час на обед, поэтому последний вопрос до обеда будет выдан в 12-15.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Порядок получения билетов:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
10.00 Фофанова М.&amp;lt;br/&amp;gt;&lt;br /&gt;
10.15 Краско Е.&amp;lt;br/&amp;gt;&lt;br /&gt;
10.30 Кудинкин А.&amp;lt;br/&amp;gt;&lt;br /&gt;
10.45 Крашенинникова К.&amp;lt;br/&amp;gt;&lt;br /&gt;
11.00 Башоров З.&amp;lt;br/&amp;gt;&lt;br /&gt;
11.15 Кринкин М.&amp;lt;br/&amp;gt;&lt;br /&gt;
11.30 Кононенко В.&amp;lt;br/&amp;gt;&lt;br /&gt;
11.45 Казенюк С.&amp;lt;br/&amp;gt;&lt;br /&gt;
12.00 Коровин А.&amp;lt;br/&amp;gt;&lt;br /&gt;
12.15 Певзнер А.А.&amp;lt;br/&amp;gt;&lt;br /&gt;
15.00 Шеставин Д.В.&amp;lt;br/&amp;gt;&lt;br /&gt;
15.15 Опейкин А.&amp;lt;br/&amp;gt;&lt;br /&gt;
15.30 Кормишин С. &amp;lt;br/&amp;gt;&lt;br /&gt;
15.45 Кузьмин А.В.&amp;lt;br/&amp;gt;&lt;br /&gt;
16.00 Мартынов С.&amp;lt;br/&amp;gt;&lt;br /&gt;
16.15 Гуменюк С.С.&amp;lt;br/&amp;gt;&lt;br /&gt;
16.30 Бандурин Д.В.&amp;lt;br/&amp;gt;&lt;br /&gt;
16.45 Лепенькин Я.А.&amp;lt;br/&amp;gt;&lt;br /&gt;
17.00 Диевский А.В.&amp;lt;br/&amp;gt;&lt;br /&gt;
17.15 &amp;lt;br/&amp;gt;&lt;br /&gt;
17.30 &amp;lt;br/&amp;gt;&lt;br /&gt;
17.45 &amp;lt;br/&amp;gt;&lt;br /&gt;
18.00 Великий А.В &amp;lt;br/&amp;gt;&lt;br /&gt;
18.15 &amp;lt;br/&amp;gt;&lt;br /&gt;
18.30 &amp;lt;br/&amp;gt;&lt;br /&gt;
18.45 &amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dievsky</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%94%D0%BE%D0%BC%D0%B0%D1%88%D0%BD%D0%B5%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%22Unix_%D0%B8_%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B8%22&amp;diff=729</id>
		<title>Домашнее задание &quot;Unix и Скриптовые языки&quot;</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%94%D0%BE%D0%BC%D0%B0%D1%88%D0%BD%D0%B5%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%22Unix_%D0%B8_%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B8%22&amp;diff=729"/>
				<updated>2011-11-24T19:46:44Z</updated>
		
		<summary type="html">&lt;p&gt;Dievsky: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Домашнее задание по модулям Python ==&lt;br /&gt;
# NamPy, SciPy, Matplotlib: Кринкин Михаил, Кузьмин Александр, Лазарев Сергей, Диевский Алексей&lt;br /&gt;
# PIL: Великий Алексей, Кононенко Василий&lt;br /&gt;
# NetworkX: Коровин Алексей, Гуменюк Станислав, Кормишин Сергей, Дмитрий Шеставин, Владислав Савельев&lt;br /&gt;
# Socket: Евгений Краско, Опейкин Александр, Сорокин Артём, Ярослав Лепенькин, Фофанова Мария&lt;br /&gt;
# SMTPlib, POPlib:&lt;br /&gt;
# wxPython:&lt;br /&gt;
# pyQwt: Мартынов Семён, Князев Сергей, Казенюк Сергей&lt;br /&gt;
# Tkinter:&lt;br /&gt;
# thread, threading: Иванов Антон, Бандурин Дмитрий, Крашенинникова Ксения, Певзнер Алина,  Башоров Залим, Ждан Анна&lt;br /&gt;
&lt;br /&gt;
== Домашнее задание №6 (на ??.11.2011) ==&lt;br /&gt;
&lt;br /&gt;
# Вывести греческий алфавит&lt;br /&gt;
# Реализовать длинную арифметику &amp;lt;b&amp;gt;(ЧЕСТНО!)&amp;lt;/b&amp;gt;&lt;br /&gt;
# Используя модуль ElementTree, вывести в древовидном виде RSS ленту&lt;br /&gt;
# Подсчитать на странице с результатами поиска Google статистику по доменам первого уровня&lt;br /&gt;
&lt;br /&gt;
Необходимо выполнить (хотя бы) любые 3 задания!&lt;br /&gt;
&lt;br /&gt;
== Домашнее задание №5 (на 27.10.2011) ==&lt;br /&gt;
&lt;br /&gt;
# http://www.pythonchallenge.com/&lt;br /&gt;
# Посчитать количество существительных в романе «Война и мир». Смотреть на Pymorphy&lt;br /&gt;
# Найдите все составные числа меньшие N, которые представимы в виде произведения двух простых чисел.&lt;br /&gt;
# Написать функцию, вычисляющую произведение двух матриц (матрица – список списков). Также написать функцию для вывода такой матрицы в красивом виде.&lt;br /&gt;
# Посчитать все корни N-ой степени из -1&lt;br /&gt;
&lt;br /&gt;
Задания 3, 4, 5 - обязательны для выполнения!&lt;br /&gt;
&lt;br /&gt;
== Домашнее задание №4 (на 06.10.2011) ==&lt;br /&gt;
&lt;br /&gt;
# Изменить файлы таким образом, чтобы в промпте пользователя отображалась текущая дата и время&lt;br /&gt;
# Исправить пример, таким образом, чтобы при конвертировании изменялось только расширение файла&lt;br /&gt;
#: OPERATION=docToPdf&lt;br /&gt;
#: SUFFIX=pdf&lt;br /&gt;
#: directory=$PWD&lt;br /&gt;
#: for file in $directory/*&lt;br /&gt;
#: do&lt;br /&gt;
#:   filename=$file&lt;br /&gt;
#:   $OPERATION $file &amp;gt; &amp;quot;$filename.$SUFFIX&amp;quot;&lt;br /&gt;
#:   rm -f $file&lt;br /&gt;
#: done&lt;br /&gt;
# Написать Bash-скрипт, который дописывает к имени каждого файла в директории букву &amp;quot;z&amp;quot;, оставляя при этом расширение без изменений.&lt;br /&gt;
# Измените нужные файлы таким образом, чтобы при входе в систему каждый пользователь получал в терминале приветствие вроде &amp;quot;Hi, USER!&amp;quot; (с конкретным именем пользователя). Если это root, напишите ему что-то особенное. Если пользователь в качестве оболочки использует не bash, то напишите ему что-нибудь страшное.&lt;br /&gt;
# Напишите Bash-скрипт, который печатает список всех пользователей в системе. При запуске с ключом -b должны печататься только пользователи, использующие оболочку Bash.&lt;br /&gt;
#: Указание. Посмотрите в файл /etc/passwd&lt;br /&gt;
# Напишите Bash-скрипт, который выдает n штук случайных паролей, каждый длиной m. Числа m и n должны задаваться в параметрах. Если параметры не заданы, то должно выводиться сообщение об ошибке. Пароли могут содержать буквы латиницы в верхнем и нижнем регистре, а также цифры.&lt;br /&gt;
#: Указание. Случайную информацию можно брать из /dev/random и /dev/urandom (чем они отличаются?). Могут как-то помочь утилиты tr и fold.&lt;br /&gt;
# Напишите Bash-скрипт, который получает из Интернета страничку нашего курса с Вики и выводит список дат, в которые были лекции.&lt;br /&gt;
#: Указание. Может помочь утилита wget.&lt;/div&gt;</summary>
		<author><name>Dievsky</name></author>	</entry>

	</feed>