[Форум] [Помощь] [Поиск] [Выйти] |
Добро пожаловать, User |
|
|
| ||
Со следующей субботы в Е КГТУ кружок. 1-2 курс, Welcome. Концепция кружка алгоритмического программирования. К чему стремимся: 1) Подготовка и тренировка 2-3 команд (по три человека в команде) для участия в различных межвузовых олимпиадах по программированию. В первую очередь, для участия в ACM (International Collegiate Programming Contest) 2) Выявление и дальнейшее развитие одаренных в алгоритмическом программировании студентов младших курсов (возможна работа по выявлению на уровне старших классов при сотрудничестве с ЦДООШ) 3) Повышение искусства и стиля программирования среди наиболее заинтересованных в этом студентов. Прививание навыков обдуманного и эффективного стиля программирования. Как будет выглядеть: 1) Тренировки и обучение будут производиться с 1-2 определенными командами 2-ого курса и, не разбитыми на конкретные команды, 6-8 студентами первого курса. 2) Раз в 1-2 месяца тренировочная олимпиада, по стилю - АСМ, с участием 2-3 команд 1-2 курса, команды 3-его курса и, возможно, команды КГУ. 3) Обучение будет производиться каждую субботу в корпусе 'Е' КГТУ, желательно в одной и той же аудитории (желательно от 3 до 9 компьютеров с Turbo Pascal 7.0). 4) Занятие длиться 2-4 часа + домашнее задание. Специфика: 1) В виду занятости (учеба+работа+диплом) ведущих занятия студентов, возможны разовые отмены занятий. Т.к. ведущих двое, то будет сделано все возможное для не возникновения таких ситуаций. 2) Ведущие чередуются, т.к. знания и опыт по различным темам преподавания не равновелики. Организующее звено: 1) Ведущие занятия - Crypto и SergOpel 2) Консультант и куратор обучаемых - к.т.н. Денисов А.Р. 3) Куратор кружка и ведущих - доктор т.н., профессор, зав. Кафедры ВТ КГТУ Левин М.Г. P.S. В связи с тем, что порядка 70% эффективности кружка составляет желание обучаемых постоянно посещать занятия кружка и качественно, регулярно делать домашнее задание, ведущие не могут гарантировать фантастическую отдачу. Но сделают все от них зависящее. |
| ||
Похвально. |
| ||
>Со следующей субботы в Е КГТУ кружок. 1-2 курс, Welcome. во сколько? точная дата и время >1) Ведущие занятия - Crypto и SergOpel круто про нас не забыли? :) |
| ||
>во сколько? точная дата и время c 13:45 до 18:?? послепослезавтра >про нас не забыли? :) 1) Леш, конкретно тебя нам учить нечему ;) 2) Упор будет делаться на 1-2 курс, т.к. ... так задумано. 3-4-5 курс как слушатели - без проблем, вот только работа будет с 1-2 курсом |
| ||
Эффективное программирование ЧЕГО? Эффективное решение задачек? Не понимаю концепции. |
| ||
Паша, если интересно, приходи. |
| ||
Некогда и, думаю, незачем. Взгляд _информатиков_ не решение задач по _информатике_ мне вряд ли пригодится. Или идёт речь не о решении задачек? |
| ||
[удалено] сам не понял чего хотел ;) |
| ||
Очень ценный листинг. Не понял к чему оно. Но если ты себя считаешь хорошим преподавателем, именно преподавателем, а не хорошим программистом, то вперед. В любом случае, было бы очень хорошо, если студентам ты принесешь пользы больше чем вреда. Помню читал кучу всякой литературы (в том числе одну какую-то книжку RaHem'а), про то как надо писать код, что правильно, что неправильно, какие где нужно комментарии писать, какие глобальные переменные делать и тому подобную чушь. Да, это может быть нужно, но это прививается само с опытом реальной работы. Этому можно научиться только работая под руководством гуру, не обделенного даром преподавания. Не уверен, что ты или Crypto - те люди, которые нужны студентам, чтобы сделать из них программистов. Или чего ты там хочешь, чтобы из них получилось? |
| ||
я бы за такие ценные листинги к стенке ставил, лицом. в угол т.е. ;-) |
| ||
Ну насколько я понял (давно Паскаля не видел), первое - это что-то из заданий на дом бухгалтерам (найти в массиве максимум и минимум, отсортировать). Второе - что-то с объектами. Зачем они здесь? Какие тут подходы? Не понял. |
| ||
Предлагаю закрыть эту тему, т.к. она не для обсуждения, а для информации. На этом форуме я не программист :), скажи такое здесь, - заклюют. ;) Я не преподаватель, т.к. не специалист в преподавании. Просто я знаю и умеею что-то этакое, что подавляющее количество учеников не знает. Но хочет узнать. Кафедра не хочет/не может этим заниматься из-за малого финансирования (+возможно, отсутствия данных знаний). Назвать можно как угодно, суть не измениться. Что смогу - сделаю. И если это хоть чуть-чуть кому-то поможет, пригодиться или направит в нужном направлении - будет здорово. P.S. Эффективное программирование - программирование, отличное тем, что меньшим количеством кода за меньшее количество времени, с использованием меньшего количества ресурсов быстрее выполнить задачу. По сравнению со средним. Сам придумал, так что не бейте ;) |
| ||
А МНЕ МОЖНО? |
| ||
Полностью согласен с Пашкой. В свое время тоже читал, интересовался. Теперь понял: все эти эффективные программирования никаким боком не вяжутся с реальной рутинной программистской работой. В ней, в реальной работе, даже зачастую вообще не важно то, сколько строчек уйдет кода и сколько будет затрачено драгоценных тиков при обработке, даже стиль играет бОльшую роль, чем это. А вот то, что действительно важно, обычно почему-то остается за рамками обучения и такой вот концепции эффективного программирования - _структура_ кода. Я имею в виду и шаблоны проектирования и реализацию кода так, чтобы его (кода) изменение было максимально удобным и еще много чего. Кроме того, на задачках типа найти 2 одинаковых числа этому физически научить нельзя. А ведь структура кода - это и есть, на мой взгляд, настоящее эффективное программирование. |
| ||
>А вот то, что действительно важно, обычно почему-то остается за рамками обучения и такой вот концепции эффективного программирования - _структура_ кода. Патрол прав... на мой взгляд самое ценное в программировании - это его стиль или структура кода... что это такое очень сложно объяснить даже несколькими абзацами... но это идет от самого подхода к созданию кода... стиль этот намного важнее даже, чем сама его алгоритмизация... особенно в больших проектах... люди, имеющие такой стиль, производительней других на порядки... даже если менее подкованы книжками типа кнута ;-) я вот ни разу не видал, где б такому учили... и жаль... |
| ||
это называется методологии программирования. формализовано. учат видимо на соответствующих специальностях соответствующих ВУЗов. Можно и самому, конечно. Литература есть. |
| ||
>Эффективное программирование - программирование, отличное тем, что меньшим количеством кода за меньшее количество времени, с использованием меньшего количества ресурсов быстрее выполнить задачу. По сравнению со средним. очень часто бывает, что больший по размеру код является производительней по скорости и меньше жрет памяти... ;-) но благодаря правильному стилю, он вводится, читается, правится и отлаживается на порядки быстрее ;-) все таки самое главное в программировании - способность кода быстро заменяться отдельными кусками, без изменения остальных - то есть максимальная независимость отдельных частей кода друг от друга... вот для этого правильный стиль и нужен... |
| ||
>это называется методологии программирования. формализовано. учат видимо на соответствующих специальностях соответствующих ВУЗов. то, чему учат в ВУЗах и то, что есть в литературе очень ужасно с точки зрения структуры кода или стиля... там все внимание уделяется именно тому, что предлагает sergopel... а именно - азам программирования, перечню возможностей, алгоритмам и, как обычно, каким-то бесполезным примерам... из-за этого я уже практически лет 7 не читаю такой литературы... а если попадается в руки книга - то ее достаточно пролистать за 10 минут, чтобы узнать, что в ней есть хорошего... хотя вот помню, была очень интересная подборка мелких статей об экстремальном прграммировани... вот было интересно читать нечто отличное от стандартного подхода... |
| ||
нет, книги именно о методологиях. |
| ||
и те аналогичны ;) хотя я их видел значительно меньшее количество, поэтому и в самом деле могу какие-то ценные экземпляры и не знать... дай названия, какие считаешь имеет смысл посмотреть... |
| ||
ich, ты не понял. Речь идет именно не о стиле кодирования, а о стиле планирования, проектирования. Почитай о Design Patterns, к примеру. |
| ||
эффективное программирование это не только правильность алгоритма, эффективное использование памяти и ресурсов процессоров, но и красота и универсальность кода. например, мы втроем сейчас стремимся выработать привычку писать одинаковый код для одной и той же задачи, чтоб он не отличался даже названиями переменных. Покопаться в мелкософтовских исходниках - милое дело, всё понятно. Из личного опыта, когда писался курсовой - транслятор си-образного языка. Структура программы продумывалась в течение месяца, на кодирование ушла пара недель вместе с дебаггингом. Далее брался исходник и в нем менялись #define's ... function input - 10 строк function output - 10 строк function parse - 30 строк получился полноценный рабочий транслятор для абсолютно нового паскаль-образного языка. и всё в течение 8 часов, опять же с дебаггингом. Вот это я называю эффективным. Хотелось бы поподробнее узнать об экстремальном программировании. |
| ||
Еще, что касается кружка. Я бы на месте преподавателей и учеников переходил на качественно новый уровень, т.е. C++ и 32-ух битные среды программирования. Я имею в виду то, что от преподавателя требуеться что-то вроде этого: for (по каждому ребру графа) __ while (текущее ребро > следующего) { ____меняем ребра. __ } и способность реализовать написанное выше на нескольких языках. Стоит еще отметить, что для каждой задачи нужно подбирать свой язык. Т.е. выбирать, где и как быстрее и проще реализовать задачу. К примеру, строки в си оставляют желать лучшего, т.е. со строками можно и в паскале хорошо работать. С массивами больших размеров конечно лучше Си причем 32ух-битный. P>S> написанный код ничего не напоминает? :) |
| ||
Я транслятор писал три дня вместе с дебаггингом. Получилась сильно урезанная версия языка с си-образным синтаксисом. |
| ||
Немного оффтопик про понятные мелкософтовские исходники. Не поленись, посмотри то, что они запихали в System.Windows.Forms.dll... Сначала волосы на голове дыбом встают, потом привыкаешь, становится грустно и при длительном столкновении хочется плюнуть ;) Хотя действительно, все понятно. Кроме одного - зачем через задницу?! ;) |
| ||
Ребят, идите в бар выпейте пивка, баб снимите. |
| ||
Хм... Думаешь, бабы смогут растолковать им на пальцах где они не правы? |
| ||
Krasnoshapka, что значит снимите..., иногда люди в другом кайф находят.. :) |
| ||
>ich, ты не понял. Речь идет именно не о стиле кодирования, а о стиле планирования, проектирования. для меня это одно и тоже... кто и как пробелы и отступы делает - это важно, но не очень - детский сад... сам стиль - это весь код, который и получается в результате планирования, проектирования... да вообще самого мышления... но все одно в большей части это форма его, а не смысл... |
| ||
для ich (цены и ссылки от 21.06.2003) 1. Приемы объектно-ориентированного проектирования. Паттерны проектирования Гамма, Хелм, Джонсон, Влиссидес 126 руб http://www.books.ru/shop/books/8451 2. Применение шаблонов проектирования. Дополнительные штрихи Влиссидес 74 руб http://www.books.ru/shop/books/81078 3. Мифический человеко-месяц или как создаются программные системы Брукс 190 руб http://www.books.ru/shop/books/3626 4. Экстремальное программирование: планирование Бек, Фаулер 105 руб http://www.books.ru/shop/books/79190 5. Экстремальное программирование. Библиотека программиста Бэк 105 руб http://www.books.ru/shop/books/27070 6. Рефакторинг: улучшение существующего кода Фаулер, Бек, Брант, Робертс, Апдайк 320 руб http://www.books.ru/shop/books/30436 7. Современное проектирование на С++. Серия C++ In-Depth Александреску 138 руб http://www.books.ru/shop/books/30688 8. Решение сложных задач на С++. Серия C++ In-Depth Герб Саттер 159,00 руб http://www.books.ru/shop/books/30998 9. Основы многопоточного, параллельного и распределенного программирования Грегори Р. Эндрюс 218,00 руб http://www.books.ru/shop/books/82501 10. Эффективное программирование на С++. Том 2 Эндрю Кениг, Барбара Му 128,00 руб http://www.books.ru/shop/books/81191 |
| ||
Экстремальное - это на любителя. Это подход, в котором проектирование делается по ходу кодирования, то есть, без предварительного анализа требований, создания макета и т.д... Ну, на любителя, словом ;) |