Слайд 2
Тема: программирование для ОС Linux
Зачем?
Получение востребованных знаний
TOP500, big
data, серверы и т.д.
Посмотреть как оно “за кулисами”, обучение
Есть
исходные коды всего, можно “вырасти” в кого угодно: специалиста по компиляторам (разобрав gcc), специалиста по СУБД (PostgreSQL), специалиста по графике (разобрав пару 3D движков) и т.д.
Существует точка зрения, что университетское обучение проигрывает самостоятельной работе (вышеупомянутое обучение методом разбора) по результативности
Альтернативная ос
Знакомство с принципами индустриальной разработки
Доступ к профессиональному сообществу
Слайд 3
TOP500, источник: wikipedia
Слайд 4
Тема: программирование для ОС Linux
Знакомство с ОС, командная
строка
Введение в скриптовый язык
Работа с файлами
Управление данными
Отладка, юнит-тестирование, контроль
версий
Многопоточное программирование
Сокеты
… если успеем, то: QT, работа с СУБД и еще куча всего
Слайд 5
Как будем заниматься
Опросы
Читаем литературу и делимся знаниями с
преподавателем
Контрольные
“Допуск” к сдаче следующих ДЗ (против любителей не ходить,
а в конце принести всё)
Домашние задания
Очевидно
Хвосты с прошлого семестра
Да, я не забыл
Постараюсь сделать SVN
Самостоятельная работа – необходима!
Интернет, курс Симуни
Слайд 6
Чтение литературы
План (с книгами и номерами страниц) –
по ссылке
https://docs.google.com/document/d/138WLPhTkmurIbqTilvW-sEYvAC-Qn0CT-PtuXPR1OqI/edit?usp=sharing
Опросы будут проходить по четвергам
Не прочтете – не
сможете выполнить практическое задание.
Слайд 7
Литература
Обязательный список:
Основы программирования в Linux, 4-е издание. Нэйл
Мэтью, Ричард Стоунс. Бхв Петербург 2009.
Linux. Руководство программиста. Дж.
Фуско. --- СПб.: Питер 2011. --- 448с.
Linux: программирование в примерах. А. Роббинс. Изд. 3-е./Пер. с англ. --- М.: КУДИЦ-ПРЕСС, 2008. --- 656 с.
Дополнительный:
Любые другие книги, которые сочтете нужными
MAN, лучшая замена всему вышеперечисленному, но на английском языке
Слайд 8
Домашнее задание
Поставить виртуальную машину, а в нее –
Ubuntu
Поставить инструментарий по своему усмотрению
Редакторы: vim, emacs, nano, code::blocks,
QTCreator, …
Midnight Commander (подобен FAR’у, сильно упрощает жизнь)
Отладчик Valgrind (понадобится позднее)
Систему контроля версий SVN (понадобится позднее)
Написать, откомпилировать и запустить “hello world”
Потратить оставшееся время на освоение командной строки
В пятницу предъявить мне результаты труда
Слайд 9
Инструкции (не очень детальные)
Ставим VirtualBox
Там более-менее всё очевидно
Ставим
Ubuntu (рекомендуется 12.04)
Запустите VB и создайте новую VM, там
выберите Linux и Ubuntu
Память: минимум 512МБ, не отдавайте более половины что есть в системе
Диск: создайте новый типа VDI, фиксированного размера, рекомендуют хотя бы 8 ГБ, берите 20 ГБ и хватит на всё (для наших задач)
Настройки->Подключить CD-диск
Следуйте инструкциям установки
Выньте диск
Подробные инструкции на английском языке http://www.psychocats.net/ubuntu/virtualbox
Установка Ubuntu http://www.ubuntu.com/download/help/install-desktop-long-term-support
Слайд 10
Что упростит жизнь
Если экран фиксированного размера или тормозит,
то challenge: самостоятельно поставить Guest Additions
http://www.virtualbox.org/manual/ch04.html
Настройка двунаправленного буфера копирования
(свойства виртуальной машины)
Интернет должен работать из коробки
Перекидывать файлы через SVN
Слайд 11
Полезные команды (пока - “заклинания”)
ls, rm, mv, cd,
ps, …
mc – избавит от всего что выше, ну
почти
grep <шаблон поиска>
nano <имя файла>
sudo apt-get install <имя пакета>
g++ <имя файла>
Что же это такое?
Ключик --help, например ls --help
man <часть заклинания>
google.com
Слайд 12
Задание на сегодня
(выполняется на си)
Дан список списков,
где каждый подсписок это названия некоторого города. Гарантируется, что
списки попарно не пересекаются.
Вам дан на вход список посещенных городов.
Задача: вывести неповторяющийся список городов, с сохранением порядка относительно первого посещения. Кроме того, необходимо совершить этот вывод в канонической форме. Каноническое название города это первый элемент соответствующего списка.
Вход не должен быть регистрозависимым
Представление данных на ваш выбор: можно массив строк, можно списки и т.д. Однако названия городов обязательно представляются в виде строк.
Все кто покажут на паре, будут освобождены от демонстрации и запуска этой программы в Linux.