В данной работе рассказывается об опыте проведения практикумов по программированию на математико-механическом факультете СПбГУ у студентов специальностей, ориентированных на подготовку программистов. Описывается формат занятий, методы оценивания успеваемости, освещенные темы, разработанные модули учебных программ и используемая в курсе литература. Подробно описывается опыт применения методики домашнего чтения с проверкой усвоенного материала. Рассматривается входное тестирование, по результатам которого программа курса адаптируется для каждой группы. Наконец, в работе представлен обзор подобных методик как с практической стороны - указываются примеры подобного устройства занятий из Computer science curriculum 2013, так и с теоретической - разбираются научные работы, исследующие роль домашнего чтения по специальности в обучении студентов. Данная статья является попыткой поделиться удачным опытом построения программ.