Книжная полка: Сегодня разговор более предметный — обзор нескольких книг, уровень изложения в которых вполне доступен подросткам, увлекшимся программированием. Книги располагаются не в порядке моего субъективного рейтинга или личных предпочтений, а случайным образом. Буду рад комментариям, обсуждению и рекомендациям литературы, которая не попала в этот список (не такой уж, кстати, и длинный).

1. Программирование на Java для детей, родителей, дедушек и бабушек . Автор Яков Файн.

Видно из названия, что книга позиционируется как первый учебник для новичка. Изучаемый язык — Java. В предисловии автор заявляет примерный возраст, в котором уже можно начинать учиться программировать, — 11 лет. На мой взгляд, это, конечно, несколько рановато, но лет с 12-13 уже вполне можно начинать осваивать Java, особенно под присмотром учителя. Книга впервые была издана в 2004 году на английском языке. В 2011-м была переведена на русский, текст при этом подвергся коррекции, дополнениям и изменениям.

В первой части книги поясняются основные принципы работы в IDE Eclipse, далее автор переходит к основам объектно-ориентированного программирования и объясняет такие понятия, как класс и объект, затем изучаются основные конструкции языка Java. Также здесь поясняются такие понятия, как апплеты, исключения, потоки, чтение данных из файлов. В книге разбирается несколько примеров, даются практические задания, ссылки на материалы для дополнительного чтения (правда, на английском языке). Книга неплохо оформлена. Объем — чуть более 200 страниц.

Общая субъективная оценка — 4 из 5.

2. C# для школьников. Учебное пособие. Автор М. Драйер.

Книга Мартина Драйера издана в 2011 году. Кстати, она распространяется свободно, текст ее доступен на сайте Microsoft. Сейчас автор занимается разработкой программного обеспечения, но в прошлом был школьным учителем. Книга рассчитана на читателей 12-16 лет.

В качестве среды для обучения используется Microsoft Visual C# Express Edition. С первых же страниц книги вводятся понятия класса и объекта. В забавной игровой форме объясняется, зачем нужны эти понятия и как их использовать. Далее вводится понятия метода, а также объясняется, что такое наследование.

Следующая часть книги посвящена изучению начальных принципов работы с Windows Forms.

В последней части учебного пособия кратко поясняется, что такое XML, а также дается вводная информация о том, что такое базы данных.

В целом впечатление от книги двоякое. С одной стороны, достаточно интересно объясняются азы объектно-ориентированного подхода в программировании, а с другой — все остальное дается очень скомкано, при этом непонятно, почему так сделано. Общий объем книги — всего 120 страниц.

Общая субъективная оценка — 2,5 из 5.

3. Занимательное программирование: Visual Basic. Книга для детей, родителей и учителей. Авторы С. Симонович, Г. Евсеев

Была издана уже давно, в 2001 году. Заявленный возраст читателей — 12-15 лет. Книга позиционируется как самоучитель, материал подан так, что даже новичок должен освоить предлагаемые темы самостоятельно.

В начале книги сделан краткий исторический экскурс, в котором рассказывается, как и когда появились компьютеры, на очень простых примерах объясняется, что такое программирование, рассказывается о том, какие бывают языки программирования, когда они родились и почему они разные. Далее речь идет о разных подходах в программировании, поясняется, что такое процедурное программирование и чем от него отличается объектно-ориентированное программирование.

Затем авторы переходят к объяснению азов программирования на Microsoft Visual Basic, попутно объясняя, как хранится информация на компьютере, как устроена файловая система. Постепенно создаваемые программы усложняются, добавляются новые компоненты и некоторые языковые конструкции.

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

Общий объем книги — 300 страниц.

В целом, учитывая возраст книги, а также стиль изложения, субъективная оценка — 3 из 5.

4. Занимательное программирование. Самоучитель. Автор М. Мозговой.

Издана в 2005 году. В этой книге не рассматривается какой-либо язык программирования, фактически она представляет собой сборник задач из различных областей знаний. Предполагается, что читатель уже знаком с основами программирования, а также уже приобрел опыт в программировании, знает, как решать типовые задания (такие как сортировка и подобные). Примеры решений в книге приводятся на языке Object Pascal.

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

Общий объем книги — 200 страниц.

Субъективная оценка — 4 из 5, но стоит помнить, что книга не является в полной мере именно учебником по программированию.

5. Как программировать на C++. Авторы Х. М. Дейтел, П. Дж. Дейтел.

Еще одна книга, которая изначально не была предназначена в качестве учебника для подростков. Однако я поместил эту книгу в данный обзор, поскольку она подкупает своей структурированностью и подробным изложением материала (более 1000 страниц!). Книга выдержала уже пять изданий. Тут есть все, начиная от вводных глав о том, что такое компьютер, и заканчивая стандартной библиотекой шаблонов и основами UML.

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

В книге более 20 глав.

На мой взгляд, эту книгу можно вполне использовать как самоучитель. Кому можно посоветовать это издание? Думаю, вполне подойдет для старшеклассников (10-11 класс), хотя и для студентов книга тоже будет полезна.

Однако учитывая количество страниц и относительную сложность излагаемого материала, ставлю субъективную оценку 3,5 из 5.

6. Программирование от нуля до... Самоучитель для детей. Автор А.А. Галахов.

Данная книга отсутствует в моей коллекции, поэтому могу только процитировать описание, выуженное из сети:

«Эта книга — вводный курс программирования, предназначенный для школьников и студентов, желающих научиться основам этого искусства. Хотя речь в ней идет о достаточно сложных вещах, она написана простым и доступным языком. Более того, для упрощения освоения излагаемого материала автор предлагает собственную надстройку для популярного языка программирования Турбо Паскаль — Русский Паскаль. Это позволит юным читателям в самом начале сложного и интересного пути не заботиться о запоминании английских слов или их сокращений и писать программы на родном русском языке. В книге на простых игровых примерах рассмотрены все важнейшие темы программирования на языке Турбо Паскаль и даны основы объектно-ориентированного программирования в среде Windows с использованием пакета Delphi. Для работы с ней не требуется предварительной подготовки и достаточно лишь основ компьютерной грамотности».

Издана в 2006 году, фактически представляет из себя учебник по Pascal. По содержанию можно сделать вывод, что в книге даются основы Pascal и не более того. Предполагаемый возраст целевой аудитории — 14-15 лет.

К сожалению, действительно полезной литературы по азам программирования, такой, которую можно предложить подростку, не так уж и много. Однако я в дальнейшем планирую продолжать поиск и отбор таких книг и собираюсь делиться найденной информацией с вами, с уважаемым сообществом программистов сайт.


PROCESSING - JAVA для
{
школьников,
студентов,
учёных,
художников и
дизайнеров
}

Подробный самоучитель

Ява (Java ) – один из наиболее популярных языков программирования в мире. Во всемирной сети вы без труда найдёте множество таблиц, диаграмм, опросов и мнений, отражающих сравнительную популярность языков программирования.

Они, безусловно, отличаются друг от друга, но Ява и Си-шарп всегда и неизменно присутствуют в первых рядах рейтингов популярности. И это тем более верно, когда речь заходит об «учебных» языках, которые используются для обучения программированию. Тогда к Яве и Си-шарпу можно присовокупить Питон , но этот язык программирования не очень популярен в России.

Лидирующую позицию Явы в современном мире легко объяснить:

· Программы, написанные на Яве , работают под управлением практически всех операционных систем: Windows , Linux , FreeBSD , Solaris , Apple Mac OS и Android .

· Второе достоинство Явы вытекает из первого: программы могут работать и на настольных компьютерах, и на ноутбуках, и на лэптопах, и на планшетах, и на смартфонах, и на мобильных телефонах. Как утверждают разработчики этого языка программирования, программы, написанные на Яве , работают на миллиардах устройств во всём мире!

· На Яве можно писать программы различного назначения: игровые, графические, мультимедийные, научные, учебные, для работы с базами данных и для Интернета

· С самого рождения язык программирования Ява активно используется в обучении программированию, поскольку его синтаксис довольно прост и схож с синтаксисом таких классических языков программирования, как С и С++, но при этом в Яве отсутствуют некоторые сложные для понимания конструкции и элементы, характерные для них (например, указатели и явное выделение памяти под массивы), что облегчает как изучение языка, так и разработку программ на нём. Кроме того, Ява полностью поддерживает современную объектно-ориентированную парадигму и в то же время позволяет писать программы в простом, процедурном стиле и даже в функциональном . Таким образом, Ява - мультипарадигменный язык программирования. Для начинающих программистов особенно важно, что компилятор Явы даёт безопасный код, в отличие от многих других языков программирования: С , С++, паскаля или Дельфи .

Впрочем, не следует забывать, что язык программирования Ява предназначен прежде всего для профессиональных разработчиков программ, поэтому изучить его совсем непросто. А для начинающих программистов разработан специальный язык программирования Processing , научиться программировать на котором ничуть не труднее, чем на бейсике или паскале .

Processing можно представить себе как некую надстройку над Явой , облегчающую изучение этого языка программирования и разработку программ на нём.

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

Processing позволяет писать программы легко и быстро. Недаром все проекты на этом языке называются скетчами , то есть набросками , и хранятся в папке, которая называется альбомом . Это действительно могут быть «черновики» больших программ или их частей, которые затем потребуют лишь незначительной доводки в профессиональной среде разработки вроде Eclipse или NetBeans . Но и на языке Processing можно писать вполне законченные, самостоятельные, полнофункциональные программы и апплеты, многочисленные примеры которых можно найти в Интернете.

Апплет Dragon Tail 3 D с сайта www . openprocessing . org

Но Processing не только лучшее средство для обучения программированию, но и мощный инструмент для учёных, художников, дизайнеров – для всех, кому нужны компьютерная графика и интерактивные мультимедийные программы. Этим специалистам, круг интересов которых довольно далёк от программирования, теперь не нужно долго и кропотливо изучать все премудрости программирования на Яве - Processing предоставляет им всё необходимое для научной и художественной деятельности, а с помощью дополнительных инструментов и библиотек возможности языка Processing ограничиваются только их фантазией!

Достаточно посмотреть на потрясающие работы Джареда Тарбелла (J ared T arbell, см. рис. ниже), чтобы убедиться в этом. Причём эти картины не нарисованы рукой художника, а построены по более или менее простым математическим формулам.


Работы Джареда Тарбелла

В своей книге Мэт Пирсон приводит пример программы, состоящей всего из 24 строк кода, которая при каждом запуске выдаёт новый рисунок.

Работы Мэта Пирсона

Кстати говоря, и предыдущие картины получены с помощью случайных (рандомизированных) алгоритмов, которые добавляют «помехи» и «шумы» к основному рисунку.

Случайные алгоритмы дали начало новому направлению в искусстве, которое называют Generative Art (GenArt ). Художников, работающих в этом жанре, называют алгористами (алгоритмическими артистами, художниками).

Трудно поверить, но эти изображения получены с помощью простых геометрических фигур: точек, прямых и кривых линий, эллипсов и прямоугольников.

Эта книга поможет вам быстро изучить основы программирования и компьютерной графики, и вы сможете самостоятельно рисовать красивые узоры, решать задачи, писать игры и разрабатывать компьютерные модели по биологии, физике, химии.

Вторая книга - Компьютерные игры, симуляторы и модели: Наглядное программирование на языке P rocessing/ J ava - на многочисленных проектах показывает, как это сделать на практике.

Начните обучаться программированию с языка Java! Вы познакомитесь с языком программирования Java, узнаете правила создания программы на языке Java и структуру такой программы. Вы научитесь работать с переменными и основными алгоритмическими конструкциями. Познакомившись с основами объектно-ориентированного программирования и основами компьютерной графики языка Java, вы начнете самостоятельную работу с графическими изображениями. На занятиях курса вы сами создадите компьютерную игру «Новогодний дождь» с различными уровнями сложности!

Внимание! Для успешного обучения на этом курсе требуется предварительная подготовка. Если вы не проходили курс предварительной подготовки, нужно убедиться, что вы достаточно подготовлены к курсу. Выполните задание ниже для проверки своих знаний. Если вы справитесь, можете смело записываться на курс.

Задание для проверки уровня подготовки к курсу

  1. Создайте каталог с именем proj на диске C:
  2. Скопируйте любой файл с флешки в созданный ранее каталог proj на диске C:
  3. Откройте текстовый редактор (Word, Notepad - любой из тех, с которыми приходилось работать/использовать). Создайте новый текстовый файл и сохраните его в каталог С:\proj с именем file.txt
  4. Откройте созданный ранее файл с именем file.txt в текстовом редакторе. Введите любой текст и сохраните файл.
  5. Скопируйте сохраненный ранее файл file.txt на флешку.
  • Базовая компьютерная подготовка. Windows 10/8.1. Microsoft Word, Excel, PowerPoint 2016/2013 (для школьников)
  • Базовая компьютерная подготовка. Windows 10/8.1. Microsoft Word, Excel, PowerPoint 2016/2013 (для старшеклассников)
  • Java входит в четверку самых востребованных языков программирования в мире! Владеющий им не останется без работы!
  • Зная Java, Вы можете создать практически все, что угодно: приложения для настольных операционных систем Windows, Linux, Mac OS, мобильные приложения под Android, сайты.
  • Отличный старт для начинающих, прививает культуру программирования!
  • В процессе занятий ученики создают компьютерную игру, что очень интересно детям и подросткам!
  • Как показывают разные исследования, заработная плата программистов Java на 30-40 % выше, чем в среднем по рынку

Продолжайте обучение программированию на языке Java! Программирование охватывает все области нашей жизни: от экономики до развлечений, от медицины до космических исследований. Обучаясь программированию, вы будете развивать внимательность, терпеливость, настойчивость, склонность к интеллектуальной деятельности, умение самостоятельно принимать решения. Вы получите практические навыки, которые всегда пригодятся вам в дальнейшем! Это полезнее и интереснее онлайн-игр и компьютерных клубов!

После успешного окончания курса «Основы программирования на языке Java для школьников. Модуль 2» вы получите свидетельство 1С, признанное не только в России, но и за рубежом.

  • Java входит в четверку самых востребованных языков программирования в мире! Владеющий им не останется без работы!
  • Зная Java, Вы можете создать практически все, что угодно: приложения для настольных операционных систем Windows, Linux, Mac OS, мобильные приложения под Android, сайты.
  • Отличный старт для начинающих, прививает культуру программирования!
  • В процессе занятий ученики создают компьютерную игру, что очень интересно детям и подросткам!
  • Как показывают разные исследования, заработная плата программистов Java на 30-40 % выше, чем в среднем по рынку.

Программа курса

Модуль 1. Занятие №1

  • Обработка событий при работе с мышью.
  • Отслеживание нажатых клавиш мыши.
  • Определение позиции курсора мыши на экране.
  • Создание программы для рисования мышью.

Модуль 2. Занятие №2

  • Введение в интернет разработку, понятие апплета.
  • Использование элементов формы: метка, текстовое поле, кнопка.
  • Создание простого калькулятора с использованием элементов формы.

Модуль 3. Занятие №3

  • Окончание процесса создания приложения калькулятора.
  • Преобразование приложения калькулятора в апплет.
  • Создание HTML – страницы с апплетом калькулятора.
  • Различные область видимости переменных внутри класса.
  • Передача параметров в методы класса и возвращение методами значений, оператор this.
  • Понятие ссылки на объект, оператор null.

Модуль 4. Занятие №4

  • Изучение структуры веб-страницы.
  • Основы HTML, JavaScript, CSS.
  • Принципы создания статического сайта с интерактивным содержимым, созданным на Java.

Модуль 5. Занятие №5

  • Принципы создания динамического сайта, понятие CMS.
  • Создание веб-страницы с использованием HTML, CSS, JavaScript.

Модуль 6. Занятие №6

  • Предназначение реестра Windows.
  • Структура реестра Windows.
  • Создание поздравительного приложения Windows, блокирующего действия пользователя – реализация интерфейса.

Модуль 7. Занятие №7

  • Окончание создания поздравительного блокировщика Windows.
  • Создание запускаемого JAR – архива блокировщика.
  • Запись поздравительного блокировщика в реестр, автозагрузку Windows.

Модуль 8. Занятие №8

  • Основы работы с файловой системой.
  • Работа с диалогами выбора файла и выбора цвета.

Модуль 9. Занятие №9

  • Практическая часть – 30 минут. Самостоятельное решение задач.
  • Введение в визуальную разработку форм в среде Eclipse.
  • Пример создания приложения с использованием визуального редактора.
  • Создание приложения с элементами компьютерной графики с использованием визуального редактора.

Модуль 10. Занятие №10

  • Практическая часть – 30 минут. Самостоятельное решение задач.
  • Создание веб-страницы с построением диаграмм, с взаимодействием через JavaScript.
  • Создание приложения Windows с анимацией движения.

Аудиторная нагрузка в классе с преподавателем: 20 ак. ч.

По окончании курса проводится итоговая аттестация в виде теста на последнем занятии или на основании оценок практических работ, выполняемых во время обучения.

Большинство современных детей играет в компьютерные игры. А хотелось ли вам самим когда-нибудь написать игру? Возможно, не только хотелось, но вы их и писали. Такое же желание посещает многих школьников. Правда, в отличие от вас, они не знают с чего начать, даже какой язык выбрать. Это и есть отправная точка, которая может стать хорошим стимулом для изучения программирования.
Одно дело играть, а другое дело разрабатывать. Пусть это небольшая двумерная компьютерная игра, но она «греет душу» намного сильнее, чем любая крутая купленная. И все потому, что эта игра ваша! Вы – ее создатель, разработчик, вы - творец! Вот появляется фон, вот - лабиринт, а потом и танк на игровом поле. Еще добавим программного кода, и танк начинает ездить по лабиринту. Так, шаг за шагом рождается игра, которая создается по сценарию ее творца. При этом каждая задумка требует усилий - подумать, написать, отладить. Не все получается сразу… А вот навыки программирования оттачиваются очень хорошо. Стоит написать несколько игрушек и вот уже обеспечен начальный уровень в программировании, заложен фундамент для будущей профессиональной деятельности.

Какой язык выбрать начинающему программисту?


Практически перед каждым начинающим программистом стоит вопрос - какой язык программирования выбрать? Одним из хороших вариантов, на наш взгляд, является язык программирования Java. И для этого есть веские основания.
Во-первых, Java практически всегда входит в четверку самых востребованных языков программирования в мире. Это значит, что изучение Java полезно не только для получения навыков программирования, но и в профессиональном плане.
Во-вторых, Java позволяет охватить широкий спектр разработки - это приложения для настольных операционных систем Windows, Linux, Mac OS, мобильные приложения под Android, веб-разработка, включая интерактивные приложения, подобие Flash приложений. Изучая Java, скучать не приходится!
В-третьих, этот язык проще для начинающих, чем языки С/С++, которые хорошо изучать уже после освоения Java, а не перед ним.
В-четвертых, Java является языком строгой типизации, что прививает хорошие привычки при написании программного кода.
Совсем немного языков программирования, которые является подходящими для начинающих по всем этим пунктам сразу.

Как заинтересовать школьника программированием?


Стремительное развитие компьютерных технологий требует прилива новых кадров. Кто является опорой в ближайшем будущем для сферы разработки программного обеспечения? Это наши школьники. Как повысить уровень владения программированием у студентов? Начать закладывать необходимые навыки еще в школе! Принцип такой же, как и при подготовке спортсменов.
Школьника просто необходимо заинтересовать и увлечь программированием. Большинство еще не способны подойти к изучению программирования, как к овладению своей будущей профессией. Поэтому заинтересованность и увлеченность стоят для школьников на первом месте. Именно такая основная цель ставилась при создании нашего курса «Основы программирования на языке Java». В его основе - различные направления разработки, которые могут привлечь внимание школьника. Это разработка игр, элементы компьютерной графики, построение интерфейса пользователя, веб-разработка. Курс рассчитан на обучение «с нуля» и кроме пробуждения увлеченности программированием закладывает основы и открывает талантливых школьников не только для преподавателей, но и для самих школьников. Ведь не каждый школьник знает о своих способностях к программированию, чтобы об этом узнать - надо попробовать. Чем раньше откроется талант - тем лучше! Материал курса подается так, что на каждом занятии ребята узнают что-то новое и интересное.

Несколько слов о структуре курса


Курс состоит из четырех модулей, обычно его изучение занимает 2 года обучения по 1 занятию в неделю. В первом модуле (полгода) ребята (возраст обычно 11-13 лет) знакомятся с минимальным объемом теории по Java, в том числе с объектно-ориентированным подходом. Происходит знакомство с инструментами игровой направленности: таймер, работа с изображениями, работа с клавиатурой, генерация случайных чисел. Вооружившись необходимыми знаниями, начинаем процесс создания небольшой компьютерной игры. От начала до конца шаг за шагом, вместе с преподавателем, происходит подробный обзор создания игры.
Во втором модуле знакомимся с созданием различных приложений на языке Java. Изучаются работа с мышью, операции с файлами, построение интерфейса пользователя, базы данных, создание веб-страницы, разработка калькулятора.
Третий модуль погружает школьников в веб-разработку, детально разбирается создание сайта. Изучаются основные моменты, которые понадобятся начинающему веб-разработчику.
Первые три модуля преподаются в стиле подачи нового материала и решения небольших задач для закрепления знаний.
Последний, четвертый модуль, это чистая практика. Ребятам предлагается самостоятельно написать три известные компьютерные игры: Змейка, Морской бой, Пасьянс-Косынка. Преподаватель является помощником, который дает рекомендации и подсказывает в затруднительных ситуациях.

Примеры выступлений наших ребят


Главным результатом прохождения курса является способность самостоятельно написать игры. Вот примеры выступлений наших ребят:
Виктория Лескина (1-й модуль) -