Harvard CS50: Введение в программирование на Python — полный университетский курс

Через пару недель я начну получать степень магистра в области науки о данных, поэтому мне хотелось освежить в памяти некоторые концепции программирования, которые мы уже изучили на Python. Я намерен закончить этот курс, а затем пройти еще один курс по SQL, чтобы иметь возможность потратить немного больше времени на другие вещи, связанные с курсом.

К счастью, многое из того, чему преподает в этом курсе лектор Дэвид Малан, я уже знаю благодаря подготовительным занятиям по программированию, проводимым ATU для получения степени магистра в области науки о данных, и еще одному онлайн-курсу, который я прошел. полтора года назад. Однако, учитывая, что этот курс CS50 длится около 16 часов, г-ну Малану предоставляется время, чтобы более подробно изучить определенные концепции программирования. Это, казалось бы, безудержное погружение в определенные идеи программирования открыло мне глаза не только на возможности программирования на Python, но и на программирование в целом.

Этот курс помог мне улучшить мои знания:

  • Регулярное выражение — регулярное выражение всегда было тем, чем я пренебрегал, потому что думал, что смогу обойтись без него, и если мне когда-нибудь понадобится его использовать, я буду готов прибегнуть к ChatGPT в качестве жизнеспособного решения. Тем не менее, этот курс помог мне гораздо более четко увидеть регулярное выражение, не только с точки зрения того, как его реализовать, но также дал ясность в отношении цели и преимуществ использования регулярных выражений.
  • Классы. Раньше я использовал классы, но за последние несколько лет программирования я могу посчитать, сколько раз я делал это по одной руке. Всякий раз, когда я его использовал, он всегда казался ломом. То, как я его реализовал, часто создавало впечатление, что я делаю это просто для того, чтобы показать, что знаю об этой особенности языка, а не использую его, потому что это будет предоставить лучшее решение с учетом проблемы, которую я пытался решить. Однако, узнав о классах и экземплярах с точки зрения того, что это по существу словари с большими возможностями, это открыло мне глаза на возможные варианты использования, которые я никогда раньше не рассматривал.
  • Файловый ввод-вывод. Я использовал файловый ввод-вывод еще до того, как понял, что такое файловый ввод-вывод. И каждый раз, когда я видел термин «Файловый ввод-вывод», я часто пропускал его, поскольку предполагал, что это нечто за пределами моего уровня понимания. Тем не менее, сложное объяснение этого термина г-ном Маланом относительно того, как мы читаем и записываем файлы, действительно помогло мне понять этот термин, а также его объяснение таких функций, как open(), и таких методов, как csv.dictWriter(), помогло. мне лучше понять, как работают многие доступные нам инструменты для выполнения операций ввода-вывода файлов.