<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_%D0%B8_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_2016%2F2017%2F168-2</id>
	<title>Основы и методология программирования 2016/2017/168-2 - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_%D0%B8_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_2016%2F2017%2F168-2"/>
	<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_%D0%B8_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_2016/2017/168-2&amp;action=history"/>
	<updated>2026-06-07T01:32:52Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://www.wikicshse.ru/index.php?title=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_%D0%B8_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_2016/2017/168-2&amp;diff=1534&amp;oldid=prev</id>
		<title>imported&gt;Akashin: /* Семинары */</title>
		<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_%D0%B8_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_2016/2017/168-2&amp;diff=1534&amp;oldid=prev"/>
		<updated>2016-12-14T10:48:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Семинары&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Общая информация ==&lt;br /&gt;
&lt;br /&gt;
Репозиторий с кодом с семинаров: https://github.com/akashin/HSE_CPP_Seminars&lt;br /&gt;
&lt;br /&gt;
Почта: kashin.andrej@gmail.com&lt;br /&gt;
&lt;br /&gt;
== Семинары ==&lt;br /&gt;
&lt;br /&gt;
=== 02.11.2016 ===&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&lt;br /&gt;
How to install Linux?&lt;br /&gt;
* Take Ubuntu from https://www.ubuntu.com/ and install it on you laptop&lt;br /&gt;
* Install it on https://www.virtualbox.org/&lt;br /&gt;
* Get Digital Ocean / Amazon machine through [https://education.github.com/pack github student pack] and code using SSH there&lt;br /&gt;
* For the first lesson you can use https://www.tutorialspoint.com/unix_terminal_online.php for practice&lt;br /&gt;
&lt;br /&gt;
Useful Unix tools:&lt;br /&gt;
* Navigation: ls, cd, &lt;br /&gt;
* Work with file system: cp, mv, rm&lt;br /&gt;
* Work with files: cat, head, tail, sort, uniq, wc&lt;br /&gt;
* Interaction between programs: pipes, redirection, &amp;lt;, &amp;gt;, &amp;gt;&amp;gt;, stdin, stdout, stderr&lt;br /&gt;
* Text editors and IDEs: vim, Atom, CLion&lt;br /&gt;
&lt;br /&gt;
Get C++ compiler:&lt;br /&gt;
* OSX: brew install homebrew/versions/llvm38&lt;br /&gt;
* Ubuntu: sudo apt-get install clang-3.8&lt;br /&gt;
&lt;br /&gt;
Copiling code:&lt;br /&gt;
* Compilers: clang++, g++&lt;br /&gt;
* Useful flags: -Wall -Wextra -Wconvertion&lt;br /&gt;
&lt;br /&gt;
Running code:&lt;br /&gt;
* ./a.out &amp;lt; input.txt&lt;br /&gt;
&lt;br /&gt;
Installing cpplint:&lt;br /&gt;
* pip install cpplint --user&lt;br /&gt;
* Or download here https://github.com/google/styleguide/blob/gh-pages/cpplint/cpplint.py&lt;br /&gt;
&lt;br /&gt;
* Более удобная консоль iTerm2 для OSX: https://www.iterm2.com/&lt;br /&gt;
&lt;br /&gt;
===== Zsh =====&lt;br /&gt;
Замена стандартного интерпретатора Bash, гибкий в настройке, поддерживает много полезных плагинов&lt;br /&gt;
* Руководство по установке: https://gist.github.com/derhuerst/12a1558a4b408b3b2b6e&lt;br /&gt;
* Плагины: https://github.com/robbyrussell/oh-my-zsh&lt;br /&gt;
&lt;br /&gt;
===== Vim =====&lt;br /&gt;
* Хороший туториал: https://github.com/mhinz/vim-galore&lt;br /&gt;
&lt;br /&gt;
===== Сайты для изучения UNIX инструментов =====&lt;br /&gt;
* Online judge для задач с использованием unix инструментов: https://www.hackerrank.com/domains/shell/bash&lt;br /&gt;
* Изучение команд linux в форме CTF соревнования: http://overthewire.org/wargames/bandit/&lt;br /&gt;
* Набор отличных гайдов про Линукс и Bash: http://ryanstutorials.net/&lt;br /&gt;
&lt;br /&gt;
==== C++ ====&lt;br /&gt;
&lt;br /&gt;
Ссылка на контест: https://official.contest.yandex.ru/contest/3154/problems/&lt;br /&gt;
&lt;br /&gt;
* Хорошая онлайн документация по C++: http://en.cppreference.com/w/&lt;br /&gt;
* Список математических функций доступных в C++: http://en.cppreference.com/w/cpp/numeric/math&lt;br /&gt;
&lt;br /&gt;
==== C++ books ====&lt;br /&gt;
* Хорошая и очень подробная книга по C++ http://www.stroustrup.com/4th.html&lt;br /&gt;
* Список литературы по C++ на любой вкус и с подробным описанием: http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list/388282#388282&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== 03.11.2016 ===&lt;br /&gt;
&lt;br /&gt;
Материалы семинара: https://github.com/akashin/HSE_CPP_Seminars/tree/master/03.11.2016&lt;br /&gt;
&lt;br /&gt;
* Список манипуляторов выходного потока для форматирования вывода: http://en.cppreference.com/w/cpp/io/manip&lt;br /&gt;
* Целочисленные типы с фиксированной шириной: http://en.cppreference.com/w/cpp/types/integer&lt;br /&gt;
&lt;br /&gt;
==== Fun facts ====&lt;br /&gt;
* Быстрое вычисление квадратного корня, которое использовалось в Quake 3: https://en.wikipedia.org/wiki/Fast_inverse_square_root&lt;br /&gt;
&lt;br /&gt;
-------------- &lt;br /&gt;
&lt;br /&gt;
=== 09.11.2016 ===&lt;br /&gt;
&lt;br /&gt;
Материалы семинара: https://github.com/akashin/HSE_CPP_Seminars/tree/master/09.11.2016&lt;br /&gt;
&lt;br /&gt;
* Список методов контейнера std::vector&amp;lt;T&amp;gt;: http://en.cppreference.com/w/cpp/container/vector&lt;br /&gt;
* Сравнение передачи параметров в функцию по ссылке и по значению: https://www.cs.fsu.edu/~myers/c++/notes/references.html&lt;br /&gt;
* Параметры фукнций со значением по умолчанию: http://www.learncpp.com/cpp-tutorial/77-default-parameters/&lt;br /&gt;
&lt;br /&gt;
=== 23.11.2016 ===&lt;br /&gt;
&lt;br /&gt;
Разбор контрольной: https://github.com/akashin/HSE_CPP_Seminars/tree/master/Quiz/17.11.2016/1&lt;br /&gt;
&lt;br /&gt;
* Библиотека алгоритмов: http://en.cppreference.com/w/cpp/algorithm&lt;br /&gt;
На семинаре мы реализовали:&lt;br /&gt;
* rotate&lt;br /&gt;
* merge&lt;br /&gt;
* partitiion&lt;br /&gt;
&lt;br /&gt;
Бонусное задание: почитать как работает stable_partition без дополнительной памяти.&lt;br /&gt;
&lt;br /&gt;
* Библиотека контейнеров: http://en.cppreference.com/w/cpp/container&lt;br /&gt;
Бонусное задание: придумать как имитировать erase для priority_queue используя unordered_set.&lt;br /&gt;
&lt;br /&gt;
=== 30.11.2016 ===&lt;br /&gt;
&lt;br /&gt;
Материалы семинара: https://github.com/akashin/HSE_CPP_Seminars/tree/master/30.11.2016&lt;br /&gt;
&lt;br /&gt;
* Реализовали std::reverse для RandomAccessIterator и BidirectionalIterator&lt;br /&gt;
* Аккуратно решили задачу про Спиральку: https://github.com/akashin/HSE_CPP_Seminars/blob/master/homeworks/3/spiral.cpp&lt;br /&gt;
* Реализовали свой Underlying контейнер для стека основанный на std::set&lt;br /&gt;
&lt;br /&gt;
=== 1.12.2016 ===&lt;br /&gt;
&lt;br /&gt;
Контрольная.&lt;br /&gt;
&lt;br /&gt;
Решения первого варианта: https://github.com/akashin/HSE_CPP_Seminars/tree/master/Quiz/01.12.2016/2&lt;br /&gt;
&lt;br /&gt;
=== 7.12.2016 ===&lt;br /&gt;
&lt;br /&gt;
Материалы семинара: https://github.com/akashin/HSE_CPP_Seminars/tree/master/07.12.2016&lt;br /&gt;
&lt;br /&gt;
* Обсудили задачи со второй контрольной&lt;br /&gt;
* Полезный инструмент для работы с построчным считыванием, std::stringstream: http://doc.bccnsoft.com/docs/cppreference_en/cppsstream/all.html&lt;br /&gt;
* Пример того, как обойти проблему одновременного применения cin и getline: http://stackoverflow.com/a/164694&lt;br /&gt;
* Решили задачу про декодирование UTF-8&lt;br /&gt;
* Поговорили про переопределение операторов внутри класса vs снаружи класса&lt;br /&gt;
* Написали класс Bitset с методами set/get/count&lt;br /&gt;
&lt;br /&gt;
Бонус:&lt;br /&gt;
* Реализовать оператор [] для Bitset&amp;#039;а&lt;br /&gt;
* Посчитать количество единичных бит в числе с помощью арифметических операций, число которых пропорционально количеству единичных бит&lt;br /&gt;
&lt;br /&gt;
=== 14.12.2016 ===&lt;br /&gt;
&lt;br /&gt;
* Обсудили стандартные ошибки на ревью и критерии зачета.&lt;br /&gt;
Список наиболее частых ошибок: https://github.com/akashin/HSE_CPP_Seminars/blob/master/Review.md&lt;br /&gt;
&lt;br /&gt;
* Обсудили задачу по реализации dense Полинома из домашнего задания и реализовали большинство методов (кроме /, %, &amp;amp;, gcd).&lt;/div&gt;</summary>
		<author><name>imported&gt;Akashin</name></author>
	</entry>
</feed>