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

Обновлено: 20.11.2024

Решение проблем – основа информатики. Программисты должны сначала понять, как человек решает проблему, затем понять, как преобразовать этот «алгоритм» в то, что может сделать компьютер, и, наконец, как «написать» определенный синтаксис (требуемый компьютеру), чтобы выполнить работу. Иногда бывает так, что машина решает проблему совершенно иначе, чем человек.

Программисты умеют решать проблемы. Для решения проблемы на компьютере необходимо:

Уметь представлять информацию (данные), описывающую проблему.

Определить шаги для преобразования информации из одного представления в другое.

Представление информации

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

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

Алгоритм

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

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

  1. Сначала сложите два числа и сохраните результат в переменной.
  2. Затем: разделите это новое число на два и сохраните результат в переменной.
  3. Наконец: предоставьте этот номер остальной части программы (или распечатайте его для пользователя).

Инкапсуляция, абстракция и сокрытие сложности

Компьютерщики любят использовать причудливое слово "Инкапсуляция", чтобы показать, насколько мы умны. Это просто термин для вещей, которые мы, люди, делаем каждый день. Он сочетается с другим причудливым термином: «Абстракция».

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

Например, если вашему профессору нужна чашка кофе, и он просит вас об одном элементе: "Принесите мне чашку кофе", он использовал как инкапсуляцию, так и абстракцию. Количество шагов, необходимых для фактического получения кофе, можно перечислить. В том числе, вставать, идти по коридору, садиться в машину, подъезжать к кафетерию, платить за кофе и т. д., и т. д., и т. д. Кроме того, представление о том, что такое чашка кофе, абстрактно. Вы приносите кружку кофе или пенопластовую чашку? Он с кофеином или нет? Он свежесваренный или из концентрата? Это из Африки или Америки?

Всей этой информации СЛИШКОМ МНОГО, и мы бы быстро не смогли работать, если бы нам пришлось помнить все эти детали. Таким образом, мы «абстрагируемся» от деталей и запоминаем только несколько важных элементов.

Это подводит нас к идее "скрытия сложности". Сокрытие сложности заключается в том, что в большинстве случаев детали не имеют значения. В компьютерной программе такая простая идея, как рисование квадрата на экране, включает в себя сотни (если не тысячи) (низкоуровневых) компьютерных инструкций. Опять же, человек не мог бы создавать интересные программы, если бы каждый раз, когда он хотел что-то сделать, ему приходилось переписывать (правильно) каждую из этих инструкций. «Экапсулируя» то, что подразумевается под «рисованием квадрата», и «повторно используя» эту операцию снова и снова, мы делаем программирование более удобным.

Инкапсуляция

Идея инкапсуляции заключается в том, чтобы хранить информацию, необходимую для конкретной идеи, в наборе переменных, связанных с одним «объектом». Затем мы создаем функции для управления этим объектом независимо от фактических данных. С этого момента мы относимся к идее с «высокого уровня», а не беспокоимся обо всех частях (данных) и действиях (функциях), необходимых для представления объекта в компьютере.

Грубая сила

Грубая сила – это метод решения проблем, основанный на скорости компьютера (насколько быстро он может повторять шаги) для решения проблемы.Например, если вы хотите узнать, сколько раз число 8 встречается в числе 100, вы можете сделать следующее:

Конечно, это глупый способ для компьютера (или человека) решить эту проблему. Реальный способ сделать это:

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

В основе разработки программного обеспечения лежит решение проблем.

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

А потом возникают все проблемы на этом пути: работа с командами, поиск и исправление ошибок, соблюдение сроков поставки.

Инженеры используют навыки решения проблем постоянно.

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

Готовы погрузиться? Приступим.

Что такое решение проблем и почему это важно?

Вы когда-нибудь слышали знаменитую цитату Стива Джобса?

"Все в этой стране должны научиться программировать компьютер, потому что это учит думать".

Джобс был прав. Разработка программного обеспечения — это не только «мягкие навыки», такие как критическое мышление, общение и решение проблем, но и «жесткие навыки», такие как написание кода.

Итак, в контексте разработки программного обеспечения решение проблем может означать несколько разных вещей:

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

Независимо от того, как выглядит решение проблемы в данный день, верно только одно: это неотъемлемая часть каждого шага процесса разработки программного обеспечения.

Почему инженеры должны работать над навыками решения проблем?

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

Многие разработчики считают, что умение решать проблемы означает способность решать больше проблем быстрее. Но это неправда — это означает, что вы можете найти лучшее решение проблемы, а затем реализовать это решение.

Научиться этому — отличный способ стать лучшим разработчиком в целом. И хотя социальные навыки сложнее освоить и улучшить, чем жесткие, есть несколько советов и приемов, которые помогут вам лучше решать конкретные проблемы.

6 способов улучшить решение проблем

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

Решить множество проблем на множестве разных платформ

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

Вот почему это так выгодно: это не позволяет вам привыкнуть к одному методу или структуре решения проблем. Как мы уже знаем, в мире разработки программного обеспечения определенно не существует универсального решения проблем, с которыми мы сталкиваемся.

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

Решение проблем в контексте, отличном от рабочего

Поскольку решение проблем – это навык, требующий практики, вы можете (и должны) работать над ним даже в нерабочее время.

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

Есть также много возможностей попрактиковаться в решении проблем, живя изо дня в день. Сломали что-нибудь в доме?Используйте свои навыки решения проблем, чтобы исправить ситуацию своими руками. Нужно решить конфликт с другом или членом семьи? Как вы уже догадались, пора попрактиковаться в решении проблем.

Учитесь на прошлых решениях и применяйте их к новым проблемам

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

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

Попросите других о помощи и отзывах

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

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

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

Тренируйте часть своего мышления, связанную с решением проблем

Как предотвратить ослабление мышц с течением времени? Вы продолжаете их тренировать.

То же самое относится и к вашему мозгу, особенно к различным базовым навыкам, таким как решение проблем. Вы останетесь на вершине своего мозга, если будете постоянно «тренироваться» или практиковаться в решении проблем.

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

Потренируйтесь в других навыках, связанных с решением проблем

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

Гибкость. Критическое мышление. Коммуникация. Работа в команде. Сосредоточение внимания на развитии и отработке всех этих навыков поможет вам улучшить решение проблем.

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

Процесс программирования

Все программирование предполагает создание чего-то, что решает проблему. Проблемы могут варьироваться от чего-то, что имеет большое научное или национальное значение, до чего-то столь тривиального, как избавление от личной скуки!

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

<ПР>
  • Определите проблему
  • Разработка решения
  • Написать программу
  • Проверьте решение
  • Из них только третий этап обычно называют "программированием", но, как вы увидите позже, это, вероятно, наименее важный этап процесса.

    Определите проблему

    На самом деле этот этап следует называть определением решения, потому что на самом деле вы пытаетесь точно определить, чего вы пытаетесь достичь.

    Нахождение решения состоит из двух этапов:

    Требования

    Первый шаг — внимательно изучить проблему, чтобы попытаться определить, что можно считать решением. У одной проблемы может быть много разных решений, но все они имеют что-то общее. Итак, здесь вы пытаетесь выяснить, что именно должна делать ваша программа.

    Например, если бы нас попросили написать программу-калькулятор, мы могли бы выбрать для пользователя множество различных способов ввода вычислений — от ввода уравнений, нажатия кнопок или даже вывода их на экран, — но если программа не может сложите правильно, тогда это не решит проблему. Поэтому наши первые несколько требований должны быть такими:

      пользователь может вводить суммы (нам все равно, как они это делают)

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

    <УЛ>
  • Калькулятор должен уметь вычислять суммы, состоящие из двух целых чисел (целые операнды) и одного знака сложения (+), вычитания (-), умножения (*) или деления (/) (оператор).
  • Обратите внимание, что специалисты по информатике традиционно используют * вместо x и / вместо � для обозначения умножения и деления соответственно.

    Таким образом, наш калькулятор должен уметь работать с такими суммами, как 1 + 1 , 10 - 6 , 43 * 5 и 42 / 7 . Однако ему не придется обрабатывать 67,345 + 6¼ , кубический корень из PI или 15 2 .

    Спецификация

    Второй шаг – просмотреть список требований и решить, что именно должно делать ваше решение для их выполнения. Как мы упоминали выше, обычно существует множество различных решений одной и той же проблемы; здесь ваша цель - решить, какое из этих решений вы хотите. Таким образом, вы пытаетесь достаточно точно указать, что именно будет делать ваша окончательная программа.

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

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

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

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

    Разработка решения

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

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

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

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

    <ПР> Возможно, вам потребуется немного больше узнать о возможностях вашего компьютера и выбранного вами языка/среды программирования, чтобы понять, что он упрощает, а что усложняет.

    Мы еще вернемся к этим проблемам в ходе курса.

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

    <ПР>
  • НАЧАТЬ
  • ПЕЧАТЬ приветственного сообщения
  • РАСПЕЧАТАТЬ инструкции
  • ПЕЧАТЬ [число]>
  • ПРОЧИТАЙТЕ first_number
  • ПЕЧАТЬ [+-/*]>
  • ПРОЧИТАЙТЕ the_operator
  • ПЕЧАТЬ [число]>
  • ПРОЧИТАЙТЕ второй_номер
  • вычислить результат использования the_operator для
    first_number и second_number
  • РАССЧИТАТЬ результат
  • КОНЕЦ
  • Здесь мы предполагаем, что PRINT означает "вывести что-то на экран", а READ означает "набрать что-то на клавиатуре" - обе довольно стандартные операции программирования.

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

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

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

    Программа

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

    Обычно написание программы состоит из трех этапов:

    Кодирование

    Кодирование – это преобразование дизайна в реальную программу, написанную на том или ином языке программирования. На этом этапе вам действительно нужно сесть за компьютер и печатать!

    Программирование немного похоже на написание эссе (но пусть это вас не смущает). В большинстве случаев вы пишете свою программу, используя что-то вроде текстового процессора. И, как и в эссе, есть определенные вещи, которые вам всегда нужно включать в свою программу (например, заголовки, страницы содержания, введения, ссылки и т. д.). Но мы вернемся к ним позже.

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

    В качестве примера позже мы разработаем и представим код калькулятора.

    Компиляция

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

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

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

    Отладка

    Именно здесь впервые появляется отладка, поскольку, как только компилятор просмотрит вашу программу, он, скорее всего, вернется к вам со списком ошибок длиной с вашу руку. Не беспокойтесь, это совершенно нормально — даже самые опытные программисты допускают ошибки.

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

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

    В конце концов, компилятор предоставит вам программу, которую сможет запустить компьютер: надеюсь, ваше решение!

    Решение!

    Последний шаг в большом процессе программирования – это тестирование вашего творения, чтобы убедиться, что оно делает то, что вы от него хотите. К сожалению, этот шаг необходим, потому что хотя компилятор и проверил правильность написания вашей программы, он не может проверить, действительно ли то, что вы написали, решает исходную проблему.

    Это потому, что вполне возможно написать предложение на любом языке, которое идеально сформировано по отношению к языку, на котором оно написано (синтаксически правильно), но в то же время будет полнейшей чепухой (семантически неправильно). Например, «Штаны-рыбки идут боком». отличное предложение — в нем есть заглавная буква и точка — но оно мало что значит. Точно так же: «Поместите форму для льда в духовку». есть глаголы, существительные и так далее, но это совершенно бесполезно, если вы хотите сделать кубики льда.

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

    При обнаружении ошибок нужно надеть шляпу Шерлока Холмса и попытаться выяснить, где в коде ошибка. После выявления проблема должна быть устранена путем изменения кода и повторной компиляции.На этом этапе следует позаботиться о том, чтобы это исправление не сломало что-то еще, поэтому важно провести тщательное повторное тестирование. Этот процесс также известен как отладка.

    После того, как все тестирование и отладка завершены, вы должны быть уверены, что ваша программа работает в соответствии с вашими требованиями и вашей спецификацией, и поэтому у вас наконец должно быть решение вашей проблемы!

    Сводка

    <ПР>
  • Определите проблему — что вы пытаетесь сделать? <УЛ>
  • Требования
  • Спецификация
  • Хотя может показаться, что для создания простой программы требуется много усилий, не волнуйтесь, так как через некоторое время это станет вашей второй натурой, а для небольших программ большинство этапов можно выполнить в твоя голова.

    В следующем разделе вы познакомитесь с вашим первым языком программирования и вашей самой первой программой!

    Существует много разных определений программирования, но определение Мартина О'Хэнлона простое. Посмотрите его видео, чтобы узнать о трех основных структурах.

    Поделиться этой публикацией

    Что такое программирование?

    Существует бесчисленное множество определений того, что такое компьютерное программирование, но вот мое.

    «Программирование — это то, как вы заставляете компьютеры решать задачи».

    Здесь важны две ключевые фразы:

    • Вы: без программиста (вас) компьютер бесполезен. Он делает то, что вы ему говорите.
    • Решение проблем: компьютеры — это инструменты. Конечно, это сложные инструменты, но они не таинственны и не волшебны: они существуют для того, чтобы упростить задачи.

    Хотите продолжать
    учиться?

    Программирование 101: введение в Python для преподавателей

    Компьютерные программы заставляют компьютеры работать

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

    Программирование — это творчество

    Программирование — это творческая задача: нет правильного или неправильного способа решить проблему, точно так же, как нет правильного или неправильного способа нарисовать картину.

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

    Возможности ограничены только вашим воображением. Вот почему я люблю программирование.

    Когда вы создаете программу для компьютера, вы даете ей набор инструкций, которые она будет выполнять по очереди, в точном соответствии с заданными. Если бы вы сказали компьютеру спрыгнуть со скалы, он бы это сделал!

    Чтобы компьютеры не падали с обрыва, они также могут выбирать, что делать дальше:

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

    Эти три понятия являются основными логическими структурами в компьютерном программировании:

      1. Последовательность: выполнение инструкций по порядку.
        1. Повторение: повторение одного и того же действия более одного раза, также называемое повторением
        2. .

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

        Языки программирования

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

        Существует множество различных языков программирования, каждый из которых имеет свои достоинства, и некоторые языки лучше подходят для определенных типов задач, но не существует одного "лучшего" языка.

        В этом курсе вы будете программировать на языке под названием Python. Python — один из группы языков, называемых «языками программирования общего назначения», которые можно использовать для решения самых разных задач. Другими популярными языками в этой категории являются C, Ruby, Java и BASIC.

        Это небольшая программа на Python, которая просит пользователя ввести свое имя и говорит ему "Привет":

        Вам не нужно быть программистом, чтобы прочитать этот код. Он содержит английские слова и удобочитаем (если не понятен). Однако к концу этого курса вы поймете этот код, что он делает и какие концепции он использует.

        Программы часто называют кодом, поэтому программирование также называют кодированием.

        Хотите продолжить обучение?

        Программирование 101: Введение в Python для преподавателей

        Поделиться этой публикацией

        Программирование 101: введение в Python для преподавателей

        Программирование 101: введение в Python для преподавателей

        Наша цель — изменить доступ к образованию.

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

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

        Зарегистрируйтесь, чтобы получать обновления

        Создайте учетную запись, чтобы получать нашу рассылку новостей, рекомендации курсов и рекламные акции.

        Подробнее об этом курсе.

        Курсы сгруппированы по темам

        Изучите новые навыки с помощью гибкого онлайн-курса

        Получить профессиональную или академическую аккредитацию

        Гибкое обучение в Интернете по мере получения степени

        Экспертные треки

        • Понимание IELTS
        • Введение в психологию
        • Педагогическая нейробиология: подходы к обучению, основанные на исследованиях
        • Как создать стратегию для социальных сетей
        • Анализ данных с помощью Excel для начинающих
        • Оценивание для обучения: формирующее оценивание в преподавании естественных наук и математики

        Краткие курсы

        Микроучетные данные

        Цель FutureLearn – изменить
        доступ к образованию.

        Подпишитесь на нашу рассылку, и мы будем присылать новые курсы и специальные предложения прямо на ваш почтовый ящик.

        Кингсли Уба

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

        Но прежде чем мы перейдем к псевдокоду, давайте освежим наши воспоминания о том, что такое программирование и программирование в самом простом смысле.

        Программирование — это проявление логики. Программа — это набор инструкций, определяющих поведение вашего программного приложения. Написание кода — это то, как вы реализуете его для машины.

        Что такое псевдокод?

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

        Видите ли, компьютеры и люди совершенно разные, и в этом проблема.

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

        Однако с псевдокодом все наоборот. Вы устанавливаете правила. Неважно, на каком языке вы пишете свой псевдокод. Важно только понимание.

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

        Преимущества написания псевдокода

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

        Поскольку псевдокод — это неформальный метод разработки программ, вам не нужно соблюдать какие-либо изложенные правила.Вы сами устанавливаете правила.

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

        Псевдокод — отличный способ начать программирование для новичков. Вам не придется перегружать свой мозг синтаксисом кодирования.

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

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

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

        Пример псевдокода

        Псевдокод — это очень интуитивно понятный способ разработки программного обеспечения. Чтобы проиллюстрировать это, я вернусь к очень простой программе, которую написал в своей последней статье:

        Когда пользователь заполняет форму и нажимает кнопку отправки, выполняется функция ValidateEmail. Что должна делать функция?

        1. Создайте регулярное выражение электронной почты (регулярное выражение), чтобы сравнить его с адресом электронной почты пользователя.
        2. Получите доступ к электронной почте пользователя из модели DOM и сохраните ее в переменной. Найдите и используйте правильный метод DOM для этой задачи.
        3. После того, как значение электронной почты получено и сохранено, создайте условный оператор:
        • Если формат электронной почты не соответствует правилу, заданному регулярным выражением, получите доступ к элементу с атрибутом id myAlert и передайте сообщение «Недействительный адрес электронной почты», чтобы пользователь мог его увидеть.
        • В противном случае, если приведенное выше условие не выполняется и формат адреса электронной почты действительно совпадает с регулярным выражением, проверьте, есть ли в базе данных такой адрес электронной почты. Если это уже так, получите доступ к элементу с атрибутом id myAlert и передайте «Электронная почта существует!» сообщение для просмотра пользователем.
        • Теперь, если оба эти условия не выполняются (то есть формат электронной почты соответствует регулярному выражению, а в базе данных еще нет такого адреса электронной почты), вставьте адрес электронной почты пользователя в базу данных и передайте «Успешный!» сообщение для просмотра пользователем.

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

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

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

        Как решать проблемы программирования с помощью псевдокода

        Решение проблем с программированием может быть трудным. У вас есть не только логическая часть, с которой нужно считаться, но и техническая часть (формирование кода). Недавно я обнаружил блестящую и эффективную формулу для решения сложных задач кодирования.

        Вот шаги, которые вы можете предпринять, чтобы решить проблемы программирования с помощью псевдокода:

        Шаг 1. Узнайте, что делает функция

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

        Шаг 2. Убедитесь, что вы поняли вопрос

        Далее вам нужно правильно прочитать и понять вопрос. Это, пожалуй, самый важный шаг в этом процессе.

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

        Шаг 3. Разберитесь с проблемой.

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

        Это помогает представить эти этапы решения проблем самым ясным и понятным способом – псевдокодом!

        • Начните решать: откройте и используйте такие инструменты, как Google, Stack Overflow, MDN и, конечно же, freeCodeCamp! :)
        • На каждом шаге решаемой проблемы проверяйте результат, чтобы убедиться, что вы на правильном пути. Продолжайте решать эти небольшие проблемы, пока не придете к окончательному решению.

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

        Заключение

        Как видите, псевдокод — очень полезная стратегия для планирования компьютерных программ.

        Конечно, вы должны помнить, что псевдокод не является истинным представлением компьютерной программы. Хотя использование псевдокода для планирования вашего алгоритма — это здорово, вам в конечном итоге придется перевести его в настоящую программу, читаемую компьютером. Это означает, что со временем вам придется научиться программировать на реальном языке программирования.

        Выполнение задач по программированию в Интернете – отличный способ научиться программировать, потому что, как говорится, практика приводит к совершенству. Но когда вы будете решать следующую задачу, не забудьте в процессе реализовать псевдокод!

        Вы можете ознакомиться с некоторыми другими моими сообщениями о программировании в моем личном блоге. Я также доступен в Твиттере.

        Спасибо за чтение и до скорой встречи.

        P/S: Если вы изучаете JavaScript, я создал электронную книгу, в которой рассказывается о 50 темах по JavaScript с нарисованными от руки цифровыми заметками. Проверьте это здесь.

        Читайте также: