Как я могу выучить математику более высокого уровня, связанную с программированием, без особой формальной подготовки? [закрыто]

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

def animate(self):
    self.draw_one_frame()
    self.after(100, self.animate)

Как только вы вызываете эту функцию один раз, она будет продолжать рисовать кадры со скоростью десять в секунду - один раз каждые 100 миллисекунд. Вы можете изменить код, чтобы проверить флажок, если вы хотите остановить анимацию после ее запуска. Например:

def animate(self):
    if not self.should_stop:
        self.draw_one_frame()
        self.after(100, self.animate)

У вас была бы кнопка, которая при нажатии кнопки self.should_stop на False

13
задан levand 10 October 2009 в 18:35
поделиться

11 ответов

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

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

9
ответ дан 1 December 2019 в 19:23
поделиться

Нет знаний, которые можно было бы получить только в классе.

Ознакомьтесь с MIT Courseware for Mathematics

Также их Сайт YouTube

Project Euler - также отличный способ подумать о математике, связанной с программированием

7
ответ дан 1 December 2019 в 19:23
поделиться

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

6
ответ дан 1 December 2019 в 19:23
поделиться

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

Вот пара статей, в которых довольно четко изложена проблема:

А вот статья о простой технике обучения, направленной на сохранение знаний:

5
ответ дан 1 December 2019 в 19:23
поделиться

Я согласен с @John Kugelman, классы - это способ сделать это правильно, но я бы добавил, что если вы не хотите брать уроки, в Интернете есть много ресурсы, которые могут вам помочь, в том числе записанные лекции, которые, как я считаю, могут быть более доступными, чем книги и статьи.

Я бы рекомендовал проверить MIT Open Courseware. Там есть модуль Математика для компьютерных наук , и мне нравится работать над курсом линейной алгебры Гилберта Стрэнга с видеолекциями .

Youtube и videolectures.com также являются хорошими ресурсами для видеолекции.

Наконец, в bookboon есть бесплатная книга по математике для CS .

2
ответ дан 1 December 2019 в 19:23
поделиться

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

1
ответ дан 1 December 2019 в 19:23
поделиться

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

3
ответ дан 1 December 2019 в 19:23
поделиться

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

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

Вам, вероятно, следует просмотреть книги по темам, которые вас лично интересуют; врожденный интерес должен помочь вам выйти из тупика. Также убедитесь, что вы нашли вводные тексты; Я стал настороженно относиться к тонким, неукрашенным переплетам с надписью Elementary Foobar Theory , которые имеют тенденцию быть элементарными только для постдоков со степенью доктора философии в Foobar.

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

Для красивого, краткого вступления к битам многих видов CS- черт побери, я рекомендую Godel, Escher, Bach Хофштадтера (если вы еще не читали его, конечно). Это не формальная книга по математике, поэтому она не поможет вам с проблемой знакомства, но она весьма вдохновляет.

1
ответ дан 1 December 2019 в 19:23
поделиться

Математическая нотация сродни нескольким компьютерным языкам:

  • краткий
  • требовательный
  • , основанный на многих идиомах
  • изрядное количество локальных вариаций и условностей

As С компьютерным языком вам не нужно «мыть слона сразу целиком»: принимайте по одной части за раз.

Предварительный план для вас может заключаться в

  • определении областей математики, которые интересны или важны для вас. (кажется, у вас уже есть некоторое представление об этом, CS помог вам развить для этого культуру.)
  • пройдите (или просто проведите аудит) несколько формальных курсов в этой области. Я согласен с несколькими ответами в этом посте, очный курс в местном колледже предпочтительнее, но, может быть, сначала или, чтобы быть уверенным, что вы получите максимальную отдачу от конкретного класса, сначала самообучение себя в этой области с MIT OCW, аналогичные онлайн-ресурсы и связанные с ними книги - это нормально.
  • если математическая область вводит слишком много предварительных требований с точки зрения беглости с обозначениями или какой-либо базовой концепции или (чаще всего механические методы вычисления и преобразования). Нет проблем! Просто вернитесь немного назад, изучите эти основы (и только эти основы!) И двигайтесь вперед снова.
  • Найдите «гуру», кого-то с широкой математической культурой и познаниями, не обязательно математика, физики тоже хороши, действительно, они часто могут сформулировать математику более практично. Используйте этого гуру, чтобы направлять вас, так как он / она может показать вам, как большие части сочетаются друг с другом.

Примечание: мало пользы можно получить от изучения математической записи ради самой . Скорее его следует изучать в контексте, точно так же, как говорят, что идиома C # лучше запоминается, когда используется и когда она связана с конкретной задачей, а не изучается в вакууме. Однако связанная с этим публикация SO предоставляет несколько ресурсов для расшифровки и изучения математической нотации

0
ответ дан 1 December 2019 в 19:23
поделиться

К этому списку я бы теперь добавил Путь Хаскеля к логике, математике и программированию и Концептуальная математика: первое введение в категории .

--- 16 ноября '09 ответ для потомков -

Две книги. Теория графов Дистеля и Кнута Конкретная математика . Когда вы освоите их, попробуйте CAGES .

2
ответ дан 1 December 2019 в 19:23
поделиться

Проект Эйлер вырывает проблемы из контекста и предоставляет их людям для их решения. Project Euler ничему не научит эффективно. Думаю, об этом стоит забыть, если это популярно, это ничего не значит. Вы не можете изучать математику через Project Euler, поскольку он содержит только кусочки и фрагменты (и некоторые части довольно высокого уровня), которые вы должны знать, чтобы решать проблемы. Изучение математики означает рассмотрение предмета и чтение книги о нем и решении упражнений или чтении решений, вот как вы изучаете математику. Если так случится, что в процессе чтения вы найдете что-то похожее на какую-то вещь project euler, ваша удача, но в остальном Project euler - пустая трата времени. Я думаю, что гораздо лучше потратить время на то, чтобы выбрать конкретный раздел математики и изучить его. Позвольте мне объяснить, почему: я решил 3 довольно продвинутые задачи Projec Euler, и все они апеллировали к знаниям из теории чисел, которые у меня были, потому что я изучаю какую-то ее часть. Не думаю, что я что-то получил от Project Euler, просто так получилось, что я уже знал кое-что из теории чисел и решил проблемы.

Например, если вы обнаружите, что вам нравится теория чисел, возьмите книгу Х. Давенпорта -> Харди и Райт -> Кеннета и Розена, изучите их. Если вам нравится теория графов, возьмите книгу Рейнхарда Дистеля, которая свободно распространяется доступны и изучите это (или проверьте books.google.com и найдите то, что вам больше подходит), но не сосредотачивайтесь на 999999 направлениях только потому, что у Project Euler есть проблемы, начиная от динамического программирования и заканчивая продвинутой геометрией или продвинутой теорией чисел, это явно неправильный путь, и он не приблизит вас к цели.

Это звучит удивительно скучно.

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

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

Если вы чувствуете, что у вас нет мотивации, трудно учиться должным образом.

Существует также вопрос о том, что вы на самом деле имеете в виду, когда говорите учите . Останавливается ли процесс обучения после того, как вы решили задачи в конце главы книги? Ну решать тебе. Вы можете считать, что вы закончили изучение этого предмета, или вы можете считать, что вы не закончили, и прочитать о нем больше. Есть целые книги только по одному уравнению и его вариациям.

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

Все сводится к вашим ресурсам и мотивации.

Чтобы знать математику, вы должны заниматься математикой, а не программированием (проект Эйлера).

0
ответ дан 1 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: