Набросок программы для программирования
Обновлено: 21.11.2024
Интерфейсы прямого управления полезны во многих областях, но отсутствие программируемости на языке высокого уровня затрудняет разработку сложного и многократно используемого контента. Мы представляем системы программирования прямого управления, которые позволяют пользователям пользоваться преимуществами языков программирования общего назначения, но с меньшим количеством редактирования текста с помощью клавиатуры и с большим количеством прямого управления с помощью мыши. Sketch-n-Sketch в настоящее время представляет собой систему программирования прямого манипулирования для создания документов HTML и SVG. Мы представляем себе аналогичные возможности и для многих других параметров программирования и дизайна. На данный момент в нашей работе возникли три темы:
Программирование, ориентированное на вывод. Возможность разрабатывать и формировать желаемый вывод на примере, добавляя новые значения и добавляя новые предполагаемые отношения между ними. Затем Sketch-n-Sketch выводит «большие» преобразования программы для соответствия, например, вводя в программу переменные, функции и арифметические отношения.
Двунаправленное программирование После того, как программа высокого уровня написана — с помощью комбинации преобразований, направленных на вывод, и обычного редактирования текста — пользователи могут напрямую изменять вывод программы. Затем Sketch-n-Sketch делает вывод о «небольших» изменениях программы для соответствия, запуская программу «в обратном порядке».
Редактирование структурированного текста В дополнение к неограниченному редактированию текста редактор кода Sketch-n-Sketch поддерживает структурный выбор и манипулирование базовым абстрактным синтаксическим деревом. Основываясь на структурных действиях, Sketch-n-Sketch предлагает контекстно-зависимый рефакторинг и другие структурные преобразования программы.
Исследования
- Sketch-n-Sketch: ориентированное на вывод программирование для SVG (UIST 2019)
Брайан Хемпель, Джастин Любин и Рави Чу
[ видео | слайды | демонстрации (30 секунд, 3 минуты) ]
Программирование, ориентированное на вывод - Двунаправленная оценка с прямым манипулированием (OOPSLA 2018)
Микаэль Майер, Виктор Кунчак и Рави Чу
[ видео | слайды | демонстрации ]
Двунаправленное программирование - Deuce: упрощенный пользовательский интерфейс для структурированного редактирования (ICSE 2018)
Брайан Хемпель, Джастин Любин, Грейс Лу и Рави Чу
[ видео | слайды | пользовательское исследование | старые видео ]
Редактирование структурированного текста - Полуавтоматическое программирование SVG с помощью прямого манипулирования (UIST 2016)
Брайан Хемпель и Рави Чу
[ видео | слайды | демонстрации (30 секунд, 5 минут и более) ]
Программирование, ориентированное на вывод - Программное и прямое манипулирование, наконец-то вместе (PLDI 2016)
Рави Чу, Брайан Хемпель, Митчелл Спрэдлин и Джейкоб Альберс
[ видео | слайды | демонстрации ]
Двунаправленное программирование - Prodirect Manipulation: двунаправленное программирование для масс (V2025 @ ICSE 2016)
Рави Чу
[ слайды ]
Двунаправленное программирование
Соавторы
Sketch-n-Sketch активно разрабатывается Рави Чу, Ником Коллинзом, Брайаном Хемпелем, Джастином Любином и Микаэлем Майером из группы UChicago PL. Предыдущие участники: Джейкоб Альберс, Грейс Лу и Митчелл Спрэдлин.
Брайан @ UIST 2019
Микаэль @ OOPSLA 2018
Брайан @ LIVE 2018
(студийная запись)
Рави @ elm-conf 2018
Брайан @ ICSE 2018
(студийная запись)
Рави @ Strange Loop 2016
Брайан @ UIST 2016
Брайан @ PLDI 2016
(студийная запись)
Если можно сказать, что в дизайне есть один большой секрет, который делает дизайнеров такими, какие они есть, и отличает их от программистов, это наброски. В то же время этому навыку легко научиться, хотя и не овладеть им, и вы, вероятно, делали это всю свою жизнь, даже не осознавая этого.
В предыдущих статьях этой серии статей о дизайне для разработчиков мы рассказывали о сложных навыках, таких как типографика и визуальная коммуникация, а также о дополнительных навыках, таких как поиск вдохновения. Однако это первый пост в серии, в котором вас попросят на самом деле сделать что-то своими руками. Эскиз — это практика дизайна, а не теория дизайна, и чтобы понять его, вы должны активно им заниматься.Таким образом, он имеет некоторые общие черты с методами разработки, такими как гибкая разработка и разработка через тестирование (TDD). Простое чтение об этих практиках никогда не скажет вам, эффективны они или нет. Вы не сможете узнать, действительно ли они работают, пока не попробуете их сами.
Как рисовать
- одноразовый
- быстро
- своевременно
- недорого
Пабло Пикассо рисовал на бумажных салфетках и таким образом расплачивался за напитки. Если ничего другого нет, вы можете использовать и салфетки, и многие дизайнеры будут клясться, что ничего другого не подойдет.
Однако от использования более качественных инструментов можно получить определенное удовольствие. За небольшую сумму можно приобрести блокнот Moleskine, в котором можно сохранять свои наброски. Если вы заглянете в художественный магазин, вы можете выбрать набор тонких аниме-ручек или цветных карандашей. Однако, если честно, стандартный карандаш № 2 тоже подойдет.
Для начала подготовьте поверхность для письма — салфетку или что-то другое — и инструмент для рисования. Подумайте о проекте, над которым вы сейчас работаете. Рассмотрите макет или, возможно, рабочий процесс. Теперь нарисуйте это. Рисуйте все, что приходит на ум, когда вы думаете об этом проекте.
Чтобы упростить это упражнение, запланируйте выбрасывать все, что вы рисуете, в мусорное ведро, как только закончите. Помните: первый атрибут и правило скетчей — все скетчи одноразовые.
Старайтесь делать наброски быстро и наслаждайтесь простотой этого занятия. Хотя поначалу это может показаться неважным, обратите внимание на сопротивление карандаша, когда он царапает бумагу, или на гладкость пера на бумаге, или на то, как мышь катится по блокноту, если вы используете программу для рисования. . Есть ли на вашей мыши липкие кусочки, из-за которых она иногда пропускает? Это внимание к опыту рисования набросков должно напомнить себе, что деятельность по созданию набросков так же важна, как и результат.
Готово? Выбросьте свой эскиз и начните другой. Практика создания набросков воплощает в себе принцип «потерпите неудачу раньше и потерпите неудачу быстро». Это позволяет вам думать о своем приложении, не вкладывая в него много времени или ресурсов.
Один из ключей к хорошему скетчингу – не давать волю своим идеям. Куриные царапины и фигурки в порядке. Рисунки — это всего лишь побочные продукты вашего творческого процесса. На самом деле, если вы уже хороший художник, возможно, вам даже захочется немного поуправлять собой. Как только вы начнете практиковаться, вы обнаружите, что наброски позволяют развивать ваши идеи и обнаруживать любые потенциальные проблемы на ранней стадии. Это поможет вам найти альтернативы и оставаться гибкими вместо того, чтобы зацикливаться на одном пути в начале процесса проектирования. Возможно, наиболее полезно то, что это можно сделать на любом этапе рабочего процесса создания программного обеспечения. Когда вам понадобятся дополнительные идеи, достаньте салфетку и начните рисовать.
Философия скетчинга
Выпустив в 2007 году книгу "Наброски пользовательского опыта", Билл Бакстон поразил дизайнерское сообщество, показав, как наброски могут использоваться и используются в цифровом дизайне, и, что более важно для нас, как они важны для технологического дизайна, в котором все мы делаем, это в некотором смысле совершенно новый опыт.
Тот, кто впервые читает Sketching User Experiences, часто с удивлением обнаруживает, что все те замечательные вещи, которые они слышали о книге, на самом деле трудно определить. Книга Бакстона представляет собой извилистое путешествие с пониманием постепенного проектирования iPod, природы творчества, некоторых проектов, над которыми он работал в прошлом, и множества примеров набросков. Попутно его читатели также узнают о дизайне горных велосипедов, одержимости Билла апельсиновыми соковыжималками и немного о гребле на каноэ.
Этот своеобразный формат книги раскрывает, что значит думать как дизайнерr. Он лезет в кроличьи норы, собирает воедино явно несоответствующие анекдоты и постоянно рассказывает истории, чтобы увлечь читателей, пока читатели не придут к определенным выводам о дизайн-мышлении.
Возможно, самые важные выводы заключаются в следующем:
- что пользовательский интерфейс — это то же самое, что и взаимодействие с пользователем.
- эти наброски — это способ мышления
- эти наброски — это способ общения с другими
Каков пользовательский опыт?
Любимая соковыжималка Бакстона для апельсинов стала легендой в мире дизайна. Он использует свой разнообразный опыт работы с соковыжималками для апельсинов, чтобы проиллюстрировать, что значит создавать пользовательский интерфейс.В то время как пользовательский интерфейс — это просто внешний вид продукта, взаимодействие с пользователем включает не только ощущения от продукта, но и предвкушение его использования и удовольствие от него, когда вы им не пользуетесь.
В мире приложений взаимодействие с пользователем зависит не только от выбранной вами цветовой темы и схемы навигации, которую вы реализуете, но и от того, как ваш пользователь реагирует на ваше приложение и что он думает о нем. В какой руке пользователь держит приложение? Где находится пользователь при использовании вашего приложения? Он или она с другими людьми или один?
Наброски – это способ ответить на более важные практические вопросы о том, как ваши пользователи взаимодействуют с вашим приложением. Быстрые наброски развивают воображение и позволяют разобраться в проблемах дизайна еще до того, как вы напишете строчку кода.
Скетчинг как способ мышления
Наброски позволяют нам разрабатывать наши идеи без каких-либо последствий, что, в свою очередь, дает нам большую свободу для блужданий и исследований. По словам Бакстона, «наброски в широком смысле как деятельность — это не просто побочный продукт дизайна. Это имеет центральное значение для дизайнерского мышления и обучения».
Есть большой соблазн думать о наброске как о первом наброске приложения или как об инструменте для прототипирования. Это не. Думая об этом таким образом, мы сразу же придаем большое значение самим эскизам, что, в свою очередь, увеличивает нашу тревогу по поводу производительности и потенциально может вызвать парализующий страх, который одолевает многие проекты.
Помните: сами наброски совершенно одноразовые. Сам процесс рисования бесценен.
Создание эскизов — это совместная работа
Скетчинг — это дизайнерский эквивалент интерактивной доски для разработчиков.
Большинство разработчиков имеют гораздо больше опыта работы с белой доской, чем с эскизами. Вы когда-нибудь замечали, какие неряшливые белые доски? Обычно нас не беспокоит удобочитаемость, даже если мы все делаем вид, что все, что написано, нужно сохранить и к нему снова будут обращаться в будущем, в неопределенное время. Это своеобразная ложь, которую мы говорим себе, чтобы мы могли использовать доску, чтобы облегчить обсуждение и передачу наших идей. Есть причина, по которой мы не используем перманентные маркеры на белых досках. Белые доски предназначены не для этого.
Эскизы функционируют аналогичным образом. Они позволяют нам обдумывать наши идеи в частном порядке, а затем сообщать о них публично. В то же время не следует придавать значения самим физическим эскизам.
Ваша задача по рисованию
Самое главное на этом этапе — доказать себе, что наброски приносят личную пользу. Вот ваша задача: потратьте час и сделайте 30 набросков. Это примерно скетч каждые две минуты.
Вы можете обнаружить, что он открывает перед вами двери для творчества и предоставляет новый мощный инструмент в вашем арсенале для разработки красивых приложений. Что тебе терять? В худшем случае это всего лишь час вашего времени.
Присоединяйтесь к сообществу творческих программистов, преподавателей и дизайнеров, которые исследуют, экспериментируют и играют.
Подключайтесь и вдохновляйте
Присоединяйтесь к 100 000 творческих программистов и следите за их работой. Добавьте свои идеи с помощью ответвлений и найдите вдохновение для следующей задачи по программированию.
Программирование без проблем
Создавайте код за считанные секунды с помощью интуитивно понятного редактора и p5js, с легкостью подключайте общие библиотеки и делитесь своей работой с сообществом.
Обучать и учиться
Только для преподавателей: приглашайте учащихся изучать программирование, давайте задания и собирайте работы учащихся на странице своего класса.
Эскизы, которые
сделаны на этой неделе
Узлы со своим поведением. Они могут толкать или тянуть друг друга, соединяться, убивать или рожать, в зависимости от положения, цвета и кто знает.
Определите этот набор правил и нажмите "Воспроизвести", чтобы увидеть, как эти частицы живут своей увлекательной, но случайной жизнью.
Системы частиц
Возьмите точку данных, назначьте ей цвет или размер фигуры. Расположите его на холсте, основываясь на его отношении к другой точке данных.
Когда все сказано и сделано, визуализация выявит скрытые закономерности и расскажет историю, стоящую за данными.
Визуализация данных
Игры
Создайте персонажей, определите динамику игры, и вы получите эскиз злодея, который мстит квадрату, стреляя лазерами с неограниченным сроком службы.
Создание игр — один из самых увлекательных способов изучения объектно-ориентированного программирования и многопользовательского взаимодействия на одном холсте.
Кисти
Что происходит, когда курсор мыши перемещается или вы машете рукой в сторону камеры?
Эти эскизы экспериментируют с идеями цифровой живописи, в которых используются специальные кисти вместо нанесения краски на холст.
Создать. Полный вперед.
Присоединяйтесь к сообществу из 100 000 творческих программистов, чтобы создавать проекты с открытым исходным кодом, вдохновлять и сотрудничать.
- Создавайте неограниченное количество эскизов с открытым исходным кодом
- Закодируйте свои идеи за считанные секунды с помощью p5js
- Нет фреймворков, настройки локального хоста
- Включить библиотеки одним щелчком мыши
- Исправлять ошибки с помощью истории версий
- Создайте портфолио, чтобы продемонстрировать свои работы.
- Встраивание эскизов в блоги и веб-сайты.
- Сохранение анимированных GIF-файлов
- Общайтесь с другими творческими программистами, чтобы вдохновляться и учиться
Креативный кодер Плюс+
Поднимите свои наброски на новый уровень с расширенными функциями и конфиденциальностью.
- Неограниченное количество публичных или частных эскизов
- Дополнительные параметры встраивания
- Загружайте больше файлов с увеличенным лимитом в 1 ГБ (стандартно 25 МБ).
- Используйте любую внешнюю библиотеку JavaScript в своем эскизе.
- Без рекламы при изучении OpenProcessing
- В вашем портфолио и эскизах не отображается реклама.
- Приоритетная поддержка в прямом эфире от Sinan
Профессор Плюс+
Используйте Classroom Platform, чтобы приглашать учащихся и обучать программированию в классе!
- Организуйте наброски, создавайте задачи и давайте задания с помощью коллекций.
- Держите эскизы и занятия в классе закрытыми/только для класса
- Скройте исходный код, чтобы создавать сложные задания
- Добавьте библиотеки JavaScript, чтобы расширить свои знания
- Бесплатная подписка Creative Coder Plus+ для всех ваших учащихся
- Легко закрыть курс на новый семестр
- Получите приоритетную поддержку в прямом эфире от Sinan
Статья: Обучение программированию с помощью OpenProcessing
Краткий обзор захватывающего мира кода, творчества, образования, ошибок и Кандинского.
Статья: Создание совместных эскизов с помощью Socket.io
Узнайте, как использовать сервер сокетов OpenProcessing для создания живого эскиза, который отвечает посетителям.
Подпишитесь на нас в Twitter
Наш официальный канал связи: любые новости об OpenProcessing первыми публикуются на @openprocessing
Что делает Arduino тем, чем он является? Много вещей, но одна из самых важных — это то, что каждая плата Arduino легко программируется с помощью программного обеспечения Arduino (IDE). Достаточно подключить его к USB-порту компьютера и нажать на иконку «Загрузить», чтобы запустить процесс переноса вашего скетча во Flash-память микроконтроллера.
Загрузчик
Описанное выше поведение происходит благодаря специальному фрагменту кода, который выполняется при каждом сбросе микроконтроллера и ищет скетч для загрузки из последовательного/USB-порта с использованием определенного протокола и скорости. Если соединение не обнаружено, выполнение передается коду вашего скетча.
Этот небольшой (обычно 512 байт) фрагмент кода называется «загрузчиком» и находится в области памяти микроконтроллера — в конце адресного пространства — и не может быть перепрограммирован как обычный скетч. и был разработан для этой цели.
Карта памяти ATmega328P
Чтобы запрограммировать загрузчик и обеспечить совместимость микроконтроллера с программным обеспечением Arduino (IDE), вам необходимо использовать внутрисхемный последовательный программатор (ISP), который представляет собой устройство, которое подключается к определенному набору контактов микроконтроллера для выполнить программирование всей флэш-памяти микроконтроллера, включая загрузчик. Процедура программирования ISP также включает запись фьюзов: специального набора битов, определяющих, как микроконтроллер работает в определенных обстоятельствах.
Использовать Arduino в качестве интернет-провайдера
Весь процесс загрузки кода загрузчика и правильного сжигания фьюзов для превращения микроконтроллера ATmega в «Arduino» управляется программным обеспечением Arduino (IDE): оно предоставляет определенный пункт меню и позволяет использовать различные программные средства. устройства. Среди программистов «Arduino as ISP» — самое дешевое и практичное решение для записи загрузчика на другую плату Arduino с ATmega, 32U4 или ATtiny.
В процессе программирования используются VCC, GND и четыре контакта данных.Три контакта соединяют MISO, MOSI и SCK между программирующим микроконтроллером и целевым микроконтроллером, четвертый контакт программирующего микроконтроллера идет на контакт сброса целевого устройства.
Как подключить доски
В следующей таблице показаны контакты MOSI, MISO и SCK на разных платах Arduino:
Доска Arduino | MOSI | MISO | SCK | Уровень |
---|---|---|---|---|
UNO или Duemilanove | 11 или ICSP-4 | 12 или ICSP-1 | 13 или ICSP-3 | 5В |
Mega1280 или Mega2560 | 51 или ICSP-4 | 50 или ICSP-1 | 52 или ICSP-3 | 5V |
Leonardo | ICSP-4 | ICSP-1 | ICSP-3 | 5В |
Срок выполнения | ICSP-4 | ICSP-1 | ICSP-3 | 3,3 В |
Ноль | ICSP-4 | ICSP-1 | ICSP-3 | 3,3 В |
101 | 11 или ICSP-4 | 12 или ICSP-1 | 13 или ICSP-3 | 3,3 В |