Как сохранить ход программирования интересным? [закрытый]

Друг предложил это решение:

import datetime
from tzlocal import get_localzone as tzlocal

with open('myfile.txt') as f:
   st = f.read()
   data = eval(st)

Надеюсь, это поможет!

9
задан Black 24 July 2013 в 13:58
поделиться

17 ответов

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

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

Просто мысль все же. Не попробованный это!;)

10
ответ дан 4 December 2019 в 07:24
поделиться

Мое мнение - то, что обучение примеров программ является мертво-скучным для большинства людей. Поиск, сортировка, классификация 7-разрядного ASCII ввела, с помощью Unix и делает, открывая файл, пишущий файл...

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

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

0
ответ дан 4 December 2019 в 07:24
поделиться

Я часто был в этой ситуации, сначала на студенческой стороне вещей, и затем на обучающей стороне.

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

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

Если они - крупные фирмы CS, они лучше прокляли, интересно :)

0
ответ дан 4 December 2019 в 07:24
поделиться

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

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

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

3) Введение в Структуры данных и Усовершенствованное Программирование. Теперь, давайте представим понятие реляционной базы данных и как базы данных работают в целом и имеют проекты с приложением реального мира, например, имеют каждое студенческое взятие список чего-то, что они имеют как DVD или CD и помещают их в схему базы данных, чтобы эффективно хранить все эти данные. Кроме того, идея арифметики с плавающей точкой и ее ограничений, например, что компьютер не хранит целое значение пи, а скорее приближения, которое должно быть достаточно хорошо в большинстве случаев.

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

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

0
ответ дан 4 December 2019 в 07:24
поделиться

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

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

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

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

0
ответ дан 4 December 2019 в 07:24
поделиться

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

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

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

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

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

0
ответ дан 4 December 2019 в 07:24
поделиться

Нахождение на Вашем стуле, наблюдая, что кто-то говорит, является скучным (даже если Вы говорите хорошо).

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

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

0
ответ дан 4 December 2019 в 07:24
поделиться

Я думаю Ваш, мог быть тост.

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

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

0
ответ дан 4 December 2019 в 07:24
поделиться

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

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

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

0
ответ дан 4 December 2019 в 07:24
поделиться

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

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

3
ответ дан 4 December 2019 в 07:24
поделиться

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

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

0
ответ дан 4 December 2019 в 07:24
поделиться

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

Усовершенствованные семинары

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

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

Студенческое участие

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

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

2
ответ дан 4 December 2019 в 07:24
поделиться

Не принимайте больше, чем Вы должны; попытайтесь выбрать среды программирования, которые не имеют слишком большого количества интеллектуального багажа. Можно думать C "Привет, мировая" программа проста, но это требует исходных файлов понимания, компиляции, статического контроля типов и структурирования блока. Нет легких понятий для новичка. В сравнении вводя "печать 'привет мир'" в оболочку Python избегает их. Объявления, составные типы, объектная ориентация, указатели, плавающая точка, рекурсия, модульный принцип, потоки, обратные вызовы, модульный принцип, сети, базы данных и так далее являются всеми главными понятиями, которые требуют усилия учиться. И, существует много забавных вещей, которые будут сделаны без них. Ваша цель должна состоять в том, чтобы получить всех в группе, делающей программирующие упражнения как можно скорее.

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

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

2
ответ дан 4 December 2019 в 07:24
поделиться

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

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

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

13
ответ дан 4 December 2019 в 07:24
поделиться

Примеры кода из реального мира, которые студент может представить себе, выполняя их в свободное время. Я помню, как учитель сказал мне использовать значения const, это был налог на что-то. Мне нужно было использовать значение только в двух местах. Она спросила, что, если мне нужно изменить его, я сказал, что это только в двух местах, и я поменяю его вручную, также я не мог представить, что правительство когда-либо изменит налоговый%.

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

0
ответ дан 4 December 2019 в 07:24
поделиться

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

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

0
ответ дан 4 December 2019 в 07:24
поделиться

Сосредоточьте упражнения по программированию вокруг спорта или фильмов.

0
ответ дан 4 December 2019 в 07:24
поделиться
Другие вопросы по тегам:

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