WEB форумы на jedi
[Форум] [Помощь] [Поиск] [Выйти]
Добро пожаловать, [info]User

WEB форумы на jedi [ПОИСК] [Архив до 03.2006]

Тема Альтруистические поползновения К предыдущему сообщению На следующее сообщение Образование и наука

Отправил SergOpel в 16:31 12.11.2003[Ответить]
Со следующей субботы в Е КГТУ кружок. 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% эффективности кружка составляет желание обучаемых постоянно посещать занятия кружка и качественно, регулярно делать домашнее задание, ведущие не могут гарантировать фантастическую отдачу. Но сделают все от них зависящее.


Отправил Sleep-Walker в 12:27 13.11.2003[Ответить]
Похвально.


Отправил lord_Alex в 01:29 19.11.2003[Ответить]
>Со следующей субботы в Е КГТУ кружок. 1-2 курс, Welcome.
во сколько? точная дата и время

>1) Ведущие занятия - Crypto и SergOpel
круто

про нас не забыли? :)


Отправил SergOpel в 14:37 19.11.2003[Ответить]
>во сколько? точная дата и время
c 13:45 до 18:??
послепослезавтра

>про нас не забыли? :)
1) Леш, конкретно тебя нам учить нечему ;)
2) Упор будет делаться на 1-2 курс, т.к. ... так задумано.
3-4-5 курс как слушатели - без проблем, вот только работа будет с 1-2 курсом


Отправил Пaшкa в бaнe в 15:11 19.11.2003[Ответить]
Эффективное программирование ЧЕГО? Эффективное решение задачек? Не понимаю концепции.


Отправил SergOpel в 16:19 19.11.2003[Ответить]
Паша, если интересно, приходи.


Отправил Пaшкa в бaнe в 16:27 19.11.2003[Ответить]
Некогда и, думаю, незачем. Взгляд _информатиков_ не решение задач по _информатике_ мне вряд ли пригодится.

Или идёт речь не о решении задачек?


Отправил SergOpel в 18:04 19.11.2003[Ответить]
[удалено]
сам не понял чего хотел ;)


Отправил Пaшкa в бaнe в 18:41 19.11.2003[Ответить]
Очень ценный листинг. Не понял к чему оно. Но если ты себя считаешь хорошим преподавателем, именно преподавателем, а не хорошим программистом, то вперед. В любом случае, было бы очень хорошо, если студентам ты принесешь пользы больше чем вреда.

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


Отправил CAHbKA в 18:54 19.11.2003[Ответить]
я бы за такие ценные листинги к стенке ставил, лицом. в угол т.е. ;-)


Отправил Пaшкa в бaнe в 19:00 19.11.2003[Ответить]
Ну насколько я понял (давно Паскаля не видел), первое - это что-то из заданий на дом бухгалтерам (найти в массиве максимум и минимум, отсортировать). Второе - что-то с объектами. Зачем они здесь? Какие тут подходы? Не понял.


Отправил SergOpel в 19:27 19.11.2003[Ответить]
Предлагаю закрыть эту тему, т.к. она не для обсуждения, а для информации.

На этом форуме я не программист :), скажи такое здесь, - заклюют. ;)
Я не преподаватель, т.к. не специалист в преподавании.
Просто я знаю и умеею что-то этакое, что подавляющее количество учеников не знает. Но хочет узнать.
Кафедра не хочет/не может этим заниматься из-за малого финансирования (+возможно, отсутствия данных знаний). Назвать
можно как угодно, суть не измениться. Что смогу - сделаю. И если это хоть чуть-чуть кому-то поможет, пригодиться или направит в нужном направлении - будет здорово.

P.S.
Эффективное программирование - программирование, отличное тем, что меньшим количеством кода за меньшее количество времени, с использованием меньшего количества ресурсов быстрее выполнить задачу. По сравнению со средним.
Сам придумал, так что не бейте ;)


Отправил insider в 22:46 19.11.2003[Ответить]
А МНЕ МОЖНО?


Отправил Patrol в 23:27 19.11.2003[Ответить]
Полностью согласен с Пашкой.
В свое время тоже читал, интересовался. Теперь понял: все эти эффективные программирования никаким боком не вяжутся с реальной рутинной программистской работой.
В ней, в реальной работе, даже зачастую вообще не важно то, сколько строчек уйдет кода и сколько будет затрачено драгоценных тиков при обработке, даже стиль играет бОльшую роль, чем это.
А вот то, что действительно важно, обычно почему-то остается за рамками обучения и такой вот концепции эффективного программирования - _структура_ кода. Я имею в виду и шаблоны проектирования и реализацию кода так, чтобы его (кода) изменение было максимально удобным и еще много чего.
Кроме того, на задачках типа найти 2 одинаковых числа этому физически научить нельзя. А ведь структура кода - это и есть, на мой взгляд, настоящее эффективное программирование.


Отправил ich в 13:58 20.11.2003[Ответить]
>А вот то, что действительно важно, обычно почему-то остается за рамками обучения и такой вот концепции эффективного программирования - _структура_ кода.

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

я вот ни разу не видал, где б такому учили... и жаль...


Отправил CAHbKA в 14:02 20.11.2003[Ответить]
это называется методологии программирования. формализовано. учат видимо на соответствующих специальностях соответствующих ВУЗов. Можно и самому, конечно. Литература есть.


Отправил ich в 14:04 20.11.2003[Ответить]
>Эффективное программирование - программирование, отличное тем, что меньшим количеством кода за меньшее количество времени, с использованием меньшего количества ресурсов быстрее выполнить задачу. По сравнению со средним.

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

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


Отправил ich в 14:32 20.11.2003[Ответить]
>это называется методологии программирования. формализовано. учат видимо на соответствующих специальностях соответствующих ВУЗов.

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

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


Отправил CAHbKA в 15:40 20.11.2003[Ответить]
нет, книги именно о методологиях.


Отправил ich в 16:23 20.11.2003[Ответить]
и те аналогичны ;) хотя я их видел значительно меньшее количество, поэтому и в самом деле могу какие-то ценные экземпляры и не знать...

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


Отправил Пaшкa в бaнe в 16:44 20.11.2003[Ответить]
ich, ты не понял. Речь идет именно не о стиле кодирования, а о стиле планирования, проектирования. Почитай о Design Patterns, к примеру.


Отправил lord_Alex в 16:44 20.11.2003[Ответить]
эффективное программирование это не только правильность алгоритма, эффективное использование памяти и ресурсов процессоров, но и красота и универсальность кода.

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

Из личного опыта, когда писался курсовой - транслятор си-образного языка. Структура программы продумывалась в течение месяца, на кодирование ушла пара недель вместе с дебаггингом.
Далее брался исходник и в нем менялись
#define's ...
function input - 10 строк
function output - 10 строк
function parse - 30 строк
получился полноценный рабочий транслятор для абсолютно нового паскаль-образного языка. и всё в течение 8 часов, опять же с дебаггингом. Вот это я называю эффективным.

Хотелось бы поподробнее узнать об экстремальном программировании.


Отправил lord_Alex в 16:59 20.11.2003[Ответить]
Еще, что касается кружка.
Я бы на месте преподавателей и учеников переходил на качественно новый уровень, т.е. C++ и 32-ух битные среды программирования. Я имею в виду то, что от преподавателя требуеться что-то вроде этого:
for (по каждому ребру графа)
__ while (текущее ребро > следующего) {
____меняем ребра.
__ }
и способность реализовать написанное выше на нескольких языках.

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

P>S> написанный код ничего не напоминает? :)


Отправил Пaшкa в бaнe в 17:10 20.11.2003[Ответить]
Я транслятор писал три дня вместе с дебаггингом. Получилась сильно урезанная версия языка с си-образным синтаксисом.


Отправил Patrol в 18:09 20.11.2003[Ответить]
Немного оффтопик про понятные мелкософтовские исходники. Не поленись, посмотри то, что они запихали в System.Windows.Forms.dll...
Сначала волосы на голове дыбом встают, потом привыкаешь, становится грустно и при длительном столкновении хочется плюнуть ;)

Хотя действительно, все понятно. Кроме одного - зачем через задницу?! ;)


Отправил krasnoshapka в 18:45 20.11.2003[Ответить]
Ребят, идите в бар выпейте пивка, баб снимите.


Отправил NightWing в 22:07 20.11.2003[Ответить]
Хм... Думаешь, бабы смогут растолковать им на пальцах где они не правы?


Отправил Gerda в 22:56 20.11.2003[Ответить]
Krasnoshapka, что значит снимите..., иногда люди в другом кайф находят.. :)


Отправил ich в 20:27 21.11.2003[Ответить]
>ich, ты не понял. Речь идет именно не о стиле кодирования, а о стиле планирования, проектирования.

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


Отправил CAHbKA в 00:49 23.11.2003[Ответить]
для 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


Отправил Patrol в 11:11 24.11.2003[Ответить]
Экстремальное - это на любителя.
Это подход, в котором проектирование делается по ходу кодирования, то есть, без предварительного анализа требований, создания макета и т.д...
Ну, на любителя, словом ;)