Я ищу самое классное, что вы можете сделать в нескольких строках простого кода. Я уверен, что вы можете написать набор Мандельброта на Хаскеле в 15 строк, но за ним трудно следовать.
Моя цель - вдохновить студентов на то, что программирование - это круто .
Мы знаем, что программирование - это круто, потому что вы можете создавать все, что вы себе представляете - это идеальный выход для творчества Я хочу вдохновить этих новичков и преодолеть как можно больше горбов раннего обучения.
Теперь мои причины эгоистичны. Я преподаю курс Intro to Computing группе из 60 полуинженеров, наполовину бизнес-специальностей; все первокурсники. Это ученики из неблагополучных вузов. Исходя из моего прошлого опыта, группа, как правило, делится следующим образом: несколько рок-звезд , некоторые, которые очень стараются и вроде как получают это, те, кто очень стараются и с трудом получают это, и те, кому все равно. Я хочу охватить как можно больше таких групп. Вот пример того, как я бы использовал компьютерную программу для обучения:
Вот пример того, что я ищу: 1-строчный VBS-скрипт, чтобы заставить ваш компьютер общаться с вами:
CreateObject("sapi.spvoice").Speak InputBox("Enter your text","Talk it")
Я мог бы использовать это, чтобы продемонстрировать порядок операций. Я показал бы код, позволил им поиграть с ним, а затем объяснил, что в этой строке много чего происходит, но компьютер может понять это, потому что он знает правила. Тогда я бы показал им что-то вроде этого:
4(5*5) / 10 + 9(.25 + .75)
И вы можете видеть, что сначала мне нужно сделать (5 * 5). Тогда я могу умножить на 4. И теперь я создал объект. Деление на 10 аналогично вызову «Говорить» - я не могу говорить до того, как у меня есть объект, и я не могу разделить до того, как у меня есть 100. Затем на другой стороне я сначала создаю InputBox с некоторыми инструкциями о том, как его отобразить. , Когда я нажимаю ввод в поле ввода, он оценивает или «возвращает» все, что я ввел. (Подсказка: «оооооо» издает забавный звук). Поэтому, когда я говорю «Говори», говорить нужно с правой стороны. И я получаю это из InputBox.
Поэтому, когда вы делаете несколько вещей в строке, например:
x = 14 + y;
Вы должны знать о порядке вещей. Сначала мы добавляем 14 и у. Затем мы помещаем результат (что он вычисляет или возвращает) в x.
Это моя цель, иметь кучу этих классных примеров, чтобы продемонстрировать и преподавать классу, пока они весело проводят время. Я попробовал этот пример на своей соседке по комнате, и, хотя я могу не использовать это в качестве первого урока, она ей понравилась и чему-то научилась.
Некоторые классные математические программы, которые создают красивые графики или формы , которые легко понять, были бы хорошими идеями, и я собираюсь рассмотреть их. Вот несколько сложных примеров ActionScript, но они слишком сложны, и я не могу преподавать flash. Какие еще идеи у вас есть?
источник
Ответы:
Я получил отличный ответ от моих детей с быстрым сценарием VB для управления персонажем Microsoft Agent. Для тех, кто не знаком с MS Agent, это серия анимированных экранных символов, которыми можно управлять через интерфейс COM. Вы можете скачать код и символы на странице загрузки агента Microsoft .
Следующие несколько строк заставят персонажа Мерлина появляться на экране, летать, стучать по экрану, чтобы привлечь ваше внимание, и поздороваться.
Существует множество других команд, которые вы можете использовать. Проверьтеhttp://www.microsoft.com/technet/scriptcenter/funzone/agent.mspx для получения дополнительной информации.
РЕДАКТИРОВАТЬ 2011-09-02 Я недавно обнаружил, что Microsoft Agent изначально не установлен на Windows 7. Однако он предлагается для отдельной загрузки здесь . Я не проверял это, поэтому не могу проверить, работает ли он.
источник
Введите этот код в адресную строку (в вашем браузере) и нажмите Enter. Тогда вы можете редактировать весь контент веб-страницы!
То есть самый крутой "однострочник" я знаю =)
источник
javascript:
иvoid 0
являются шаблонными: эквивалентint main() {
иreturn 0; }
в C. А две другие строки - это просто разные API-интерфейсы браузера, которые выполняют одну и ту же функцию: первая - это API-интерфейс IE, вторая - API-интерфейс NetScape. HTML5 используетcontentEditable
, поэтому, если вы не заботитесь о поддержке Firefox 1.5 или чего-тоdocument.body.contentEditable='true';
Когда я впервые написал это.
Это взорвало людей! Компьютер запомнил их имя!
РЕДАКТИРОВАТЬ: Просто чтобы добавить к этому. Если вы сможете убедить нового программиста, это самая крутая вещь, которую они могут сделать, они станут хорошими программистами. В наши дни вы можете делать практически все, что захотите, с помощью одной строки кода для запуска библиотеки, написанной кем-то другим. Я лично не получаю абсолютно никакого удовольствия от этого и вижу небольшую пользу в обучении этому.
источник
PHP - прокладка Серпинского ака Triforce
Хорошо, это 15 строк кода, но результат потрясающий! Это то, что заставляло меня волноваться, когда я был ребенком. Это из руководства по PHP:
источник
У Microsoft есть Small Basic , IDE для "детей".
Он специально разработан, чтобы показать, насколько круто программирование.
источник
Я склонен думать, что люди впечатлены вещами, к которым они могут относиться или имеют отношение к их жизни. Я бы попытался основать свои 10 строк кода на том, что они знают и понимают. Взять, к примеру, Twitter и его API. Почему бы не использовать этот API для создания чего-то классного. Следующие 10 строк кода вернут «общедоступную временную шкалу» из Twitter и отобразят ее в консольном приложении ...
Мой пример кода может быть не лучшим для ваших учеников. Он написан на C # и использует .NET 3.5. Так что, если вы собираетесь учить их PHP, Java или C ++, это будет бесполезно. Однако я хочу сказать, что, связывая ваши 10 строк кода с чем-то «крутым, интересным и актуальным для студентов», ваш образец также становится крутым, интересным и актуальным.
Удачи!
[Да, я знаю, что пропустил несколько строк использования операторов и метода Main, но я предполагаю, что эти 10 строк не должны были быть буквально 10 строками]
источник
Это сервер Telnet Python, который запрашивает имя пользователя и говорит им привет. Это выглядит круто, потому что вы общаетесь со своей программой с другого компьютера по сети.
источник
Я думаю, что сейчас трудно быть компьютерным педагогом. Я. Мы сталкиваемся со все более крутой гористой битвой. Наши студенты невероятно искушенные пользователи, и им требуется много времени, чтобы произвести на них впечатление. У них так много доступных инструментов, которые делают удивительные вещи.
Простой калькулятор из 10 строк кода? Почему? У меня есть TI-86 для этого.
Сценарий, который применяет специальные эффекты к изображению? Для этого и нужен Photoshop. А Photoshop сметает все, что вы можете сделать в 10 строк.
Как насчет копирования компакт-диска и преобразования файла в MP3? У меня уже есть 50 000 песен, которые я получил от BitTorrent. Они уже в формате MP3. Я играю их на своем iPhone. Кто вообще покупает диски?
Чтобы познакомить опытных пользователей с программированием, вам нужно найти что-то, что:
а) применимо к чему-то, что они находят интересным и классным, и б) делает то, чего не может сделать
Предположим, ваши студенты уже имеют доступ к самым дорогим программам. Многие из них имеют полную версию Adobe CS5.5 (розничная цена: 2600 долларов США; фактическая цена: бесплатно) и могут легко получить любое приложение, которое обычно нарушает бюджет вашего отдела.
Но подавляющее большинство из них не имеют ни малейшего представления, как на самом деле работает этот «компьютерный материал».
Они невероятно креативные люди: им нравится создавать вещи. Они просто хотят иметь возможность делать или делать то, чего не могут их друзья. Они хотят чем-то похвастаться.
Вот некоторые вещи, которые я нашел, чтобы найти отклик у моих учеников:
Ни один из них не включает никакого программирования в традиционном смысле. Но они используют мощные библиотеки. Я думаю о них как о другом виде программирования.
источник
Я нашел большой фаворит (в GWBASIC) это:
Я обнаружил, что у начинающих студентов есть несколько концепций, которые необходимо исправить.
Удачи в вашем классе. Я уверен, что у тебя все получится.
PS Я уверен, что вы понимаете, что наряду с материалами и навыками, вы также учите отношению, и это не менее важно.
источник
Этот C-код может быть запутан, но я нашел его очень мощным
И вот результат ... Всего за 3 строчки ... Этакий фрактал
Hello World
...источник
Как насчет того, чтобы показать, что вы можете взять любой веб-браузер и ввести JavaScript в адресную строку и получить код для выполнения?
РЕДАКТИРОВАТЬ: перейдите на страницу с большим количеством изображений и попробуйте это в адресной строке:
источник
Вы можете сделать приложение, которое выбирает случайное число. И ты должен угадать это. Если вы ошибаетесь, он говорит: выше или ниже. И если вы догадались, приятное сообщение.
Классно играть для студентов.
Простая версия Python без надлежащей проверки ошибок:
Эрик предлагает, чтобы компьютер угадал число. Это также может быть сделано в пределах 10 строк кода (хотя в настоящее время отсутствие надлежащей проверки ошибок является еще более серьезным: допустимые числа вне диапазона вызывают бесконечный цикл):
источник
eval(raw_input(prompt))
. Смотрите вход .Вернувшись в компьютерный класс в старшей школе, я и пара друзей научили класс программированию с Delphi. Класс был в основном сосредоточен на программировании на Pascal, поэтому Delphi был хорошим следующим шагом. Мы продемонстрировали управляемый событиями характер Delphi и его возможностей RAD. В конце урока мы показали классу пример приложения и попросили его воспроизвести его. Приложение спросило « Ты пьян? » С двумя кнопками Да и Нет . ... Я думаю, вы знаете, что будет дальше ... Кнопка "Нет" изменила местоположение при наведении курсора мыши и щелкнуть было практически невозможно.
Студенты и учителя получили от этого удовольствие.
Программе потребовалось всего несколько строк написанного пользователем кода с простым уравнением, чтобы вычислить, куда перемещать кнопку. Я не думаю, что кто-то из других студентов понял это, но некоторые были близки.
источник
Когда я впервые понял, что такое бомба-вилка, я подумал, что это действительно мило. Так просто, но аккуратно, что он может сделать:
источник
Это обман, и даже не простой, но я однажды написал стрельбу в 20 строк C ++, используя графическую библиотеку Allegro. Нет реальных критериев того, что это за линия , но это было немного назад, и это было сделано просто для удовольствия. У него даже были грубые звуковые эффекты.
Вот как это выглядело:
20 строк http://img227.imageshack.us/img227/8770/20linesxx0.png
А вот код ( должен скомпилироваться):
источник
В наше время JavaScript - отличный способ показать, как вы можете программировать, используя некоторые действительно базовые инструменты, например блокнот.
Эффекты jQuery - отличная отправная точка для тех, кто хочет удивить своих друзей!
В этом просто щелкните пустое пространство страницы.
источник
Одна вещь, которую вы могли бы рассмотреть, это что-то вроде Robocode , в котором много абстрагирования отводится, и вы просто говорите роботу, что делать. Простая функция из 10 строк может заставить робота сделать очень многое, и он имеет очень наглядный и понятный результат.
Возможно, сам Robocode не подходит для этой задачи, но такого рода вещи являются хорошим способом связать написанный код с визуальными действиями на компьютере, плюс интересно наблюдать за тем, когда вам нужно привести примеры.
источник
И вот однажды я решил, что с меня хватит. Я бы выучил фортепиано. То, что люди, подобные Элтону Джону, командовали таким мастерством игры на клавиатуре, убедило меня, что это именно то, что я хотел сделать.
На самом деле изучение фортепиано было огромным разочарованием. Даже после того, как я закончил восемь классов уроков игры на фортепиано, я все еще не был впечатлен тем, насколько мой мысленный образ игры на пианино так сильно отличался от моего первоначального видения наслаждения от этой деятельности.
Однако, то, что я полностью наслаждался, было моими тремя классами основы музыки. Я узнал о построении музыки. Я наконец смог выйти из мира исполнительской музыки и написать свою собственную музыку. Впоследствии я смог начать играть то, что хотел играть.
Не пытайтесь поразить новых программистов, особенно молодых программистов. Само понятие «менее десяти строк простого кода», кажется, вызывает настроение «Покажи мне что-нибудь умное ».
Вы можете показать новому программисту что-нибудь умное. Затем вы можете научить того же программиста, как воспроизводить эту «производительность». Но это не то, что приводит их в замешательство в программировании. Научите их основам, и пусть они синтезируют свои умные десять строк кода.
Я бы показал новому программисту следующий код Python:
Я понимаю , что мне не нужно назначить
line
вedited_line
. Тем не менее, это просто для ясности и чтобы показать, что я не редактирую оригинальный документ.Менее чем в десяти строках я подробно изложил документ. Конечно, также обязательно покажите новому программисту все доступные строковые методы . Что еще более важно, я показал три принципиально интересных вещи, которые я могу сделать: назначение переменных, цикл, файловый ввод-вывод и использование стандартной библиотеки.
Я думаю, вы согласитесь, что этот код не ослепляет. На самом деле, это немного скучно. Нет - на самом деле, это очень скучно. Но покажите этот код новому программисту и посмотрите, не сможет ли этот программист переназначить каждую часть этого скрипта на что-то гораздо более интересное в течение недели, если не дня. Конечно, вам будет неприятно (возможно, с помощью этого скрипта сделать простой анализатор HTML), но все остальное просто требует времени и опыта.
источник
Как и большинство других комментаторов, я начал писать код для решения математических задач (или для создания графики для действительно ужасных игр, которые я бы разрабатывал - например, «Индиана Джонс против Зомби»).
То, что действительно меня поразило (как в математике, так и в программировании), - это переход от текстовой игры, выбора собственных игр в стиле приключений ... к более графическим играм. Я начал раскрашивать миллиметровку и рисовать пиксели, пока не попал в геометрию ... и не открыл, как использовать уравнения для построения кривых и линий, прямоугольников и т. Д.
Суть в том, что я мог бы действительно заняться чем-то вроде обработки ( http://processing.org/ ), где типичная программа выглядит примерно так:
Для меня это «Логотип» будущего.
Существуют простые примеры «привет мира», которые могут быстро заставить человека рисовать и изменять код и видеть, как что-то ломается и какие странные «случайности» могут быть созданы ... вплоть до более продвинутого взаимодействия и создания фракталов ...
источник
Вы можете использовать скрипт, написанный на AutoIt , который стирает грань между использованием традиционного приложения и программированием.
Например, скрипт, который открывает блокнот и заставляет свой компьютер оскорблять их в нем и через окно сообщения, а затем не оставляет никаких следов его действий:
источник
Я помню, когда я только начинал программировать, циклы всегда меня поражали. Вы пишете от 5 до 10 строк кода (или меньше), и распечатываются сотни (или сколько бы вы ни указали) строк. (Сначала я учился на PHP и Java).
источник
Я думаю, что хорошим местом для начала обучения может быть Greasemonkey . На userscripts.org есть тысячи примеров скриптов, очень хороший материал для чтения, некоторые из которых очень маленькие. Скрипты Greasemonkey влияют на веб-страницы, с которыми студенты уже знакомы, если не манипулируют ими. Greasemonkey сам по себе предлагает очень простой способ редактировать и включать / отключать скрипты во время тестирования.
В качестве примера приведем скрипт «Google Two Columns»:
источник
Это очень простая текстовая программа на языке c #, которая имитирует вращение игрового автомата. Он не включает в себя различные шансы на выигрыш или денежные выплаты, но это может быть хорошим упражнением для студентов.
Извините, что это более 10 строк.
источник
С Tcl у вас есть простой текстовый редактор с кнопкой сохранения в 12 строках кода (но без открытия, это заняло бы еще 8 строк). Работает на всех стандартных платформах:
Я понимаю, что цель была 10 строк, поэтому, если вы хотите, чтобы придерживаться 10 строк или менее, простой текстовый редактор без загрузки или сохранения занимает всего две строки. Это не так уж плохо.
Выполните любой из вышеперечисленных блоков кода с « именем файла желания » на выбранной вами платформе. Желание приходит с большинством * nix и Mac, но вам придется установить его вручную для Windows.
Чтобы продвинуться дальше, этот сценарий из двух строк также может быть написан на python, хотя он занимает восемь строк, все еще при достижении цели из 10 строк:
источник
Как насчет букмарклета? Это показало бы им, как манипулировать чем-то, что они используют каждый день (Интернет), без каких-либо инструментов разработки.
источник
Если вы можете позволить себе аппаратное обеспечение, использование платы Arduino + создаст довольно интересные вещи, хотя это может быть немного сложнее для людей, которые могут вообще не интересоваться программированием.
источник
Я написал об этом недавно в статье «Самая короткая, самая полезная программа, которую я когда-либо писал».
Резюме: в 1996 году я написал 3-строчное приложение VB6, которое я использую каждый день. После того, как исполняемый файл будет добавлен в папку «Отправить». Это позволяет вам щелкнуть правой кнопкой мыши файл в проводнике и отправить полный путь к этому файлу в буфер обмена.
источник
Clipboard.Clear
? Он удаляет весь контент из буфера обмена, даже нетекстовые данные (например, данные изображения). Это вообще не то, что вы хотите вообще.Интересно, что вы упомянули множество Мандельброта, поскольку создание фракталов с помощью GW-BASIC - это то, что пробудило мою любовь к программированию в старшей школе (около 1993 года). Прежде чем мы начали изучать фракталы, мы написали скучные приложения со стандартными отклонениями, и я все еще планировал заняться журналистикой.
Но как только я увидел, что длинная, трудная для написания BASIC-программа генерирует «фрактальную местность», я зацепился и никогда не оглядывался назад. Это изменило мой взгляд на математику, науку, компьютеры и способ обучения.
Я надеюсь, что вы найдете программу, которая оказывает такое же влияние на ваших студентов.
источник
Первые шаги wxPython
рамка simple.py http://zetcode.com/wxpython/images/simple.jpg
источник
Я уверен, что это превратится в более чем 10 строк кода, но рассматривали ли вы приложение на основе форм, где нажатие кнопок приводит к изменению цвета фона или изменению размера текста? Это покажет им, как работают интерактивные программы. Это также показало бы им, что они, как программист, полностью контролируют то, что делает компьютер (программа).
Надеюсь, это заставит их делать предложения о других вещах, которые они могут изменить, а затем о других вещах, которые они могут захотеть сделать.
источник