LINUX.ORG.RU

[C][образование] Нужна критика программы курса про Си

 ,


3

3

Хотелось бы увидеть желающих предметно покритиковать программу курса про Си для профильной специальности.

Рабочая версия программы: http://dev.iu7.bmstu.ru/trac/workbook_c_iu7/wiki/plan

Особенно интересует мнение по: http://dev.iu7.bmstu.ru/trac/workbook_c_iu7/wiki/plan#Лабораторныеработы

★★★★★

мне нравится! пока только поверхностно просмотрел, бегу сейчас на работу потом еще отпишусь.

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

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

не увидел bit maps и enum.

GTK? Вы серьезно? Это конечно здорово, но в курсе языка? На сколько часов это рассчитано?

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

вы уверены, что надо включать в курс Си работу с регулярными выражениями?

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

sv75 ★★★★★
() автор топика
Ответ на: комментарий от val-amart

не увидел bit maps и enum.

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

GTK? Вы серьезно? Это конечно здорово, но в курсе языка? На сколько часов это рассчитано?

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

Идея брать тулкиты для плюсов в курсе Си мне решительно не нравится.

sv75 ★★★★★
() автор топика
Ответ на: комментарий от nCdy

Это очень-очень спорная идея.

sv75 ★★★★★
() автор топика

imho чтобы поставить GTK в учебный курс надо предварительно дать GLib, детально GObject со всеми его фичами и обзор других фреймворков на GObject. Иначе это обучение обезьян :)

MKuznetsov ★★★★★
()

Можно и без GUI обойтись. А вот (хоть я и поверхностно смотрел, может и не углядел) какие в программе большие промахи, так это полное отсутствие работы с памятью (mmap, shm), многопоточности, межпроцессорных коммуникаций (сокеты, shm, сигналы, блокировки и т.п.). В общем, архитектурно-зависимым вещам стоит уделить внимание. Правда, если курс рассчитан на погружение только в базовый уровень С, то хватит и того, что есть (без GUI, но с make/cmake/autotools - про все стоит рассказать, а еще потренироваться работе с VCS).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

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

Это все должно быть в курсе «Операционные системы». К языку С это не относится, хотя на нём это всё в основном и делается, да

Harald ★★★★★
()
Ответ на: комментарий от Harald

Это все должно быть в курсе «Операционные системы»

Беда в том, что в таком курсе обычно ограничиваются поверхностным бла-бла.

А постигать IPC самостоятельно - штука не из простых.

Eddy_Em ☆☆☆☆☆
()

Из того, что быстро нашлось: добавить про autotools, и про glib с gobject, раз уж про gtk зашла пьянка.

dn2010 ★★★★★
()
Ответ на: комментарий от MKuznetsov

Иначе это обучение обезьян :)

Да, в разделе GTK это действительно обучение обезъян. Поскольку ничего кроме прикручивания гуя не предполагается, сам GTK не интересен.

sv75 ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

Беда в том, что в таком курсе обычно ограничиваются поверхностным бла-бла.

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

sv75 ★★★★★
() автор топика
Ответ на: комментарий от O02eg

Можно и без GUI обойтись.

Идея не нашла пока что, поскольку смежные курсу хочут gui. Да, в разделе gtk это «обезъянник», для галочки.

Да, IPC, mmap и shm у нас отдельно.

sv75 ★★★★★
() автор топика
Ответ на: комментарий от O02eg

Если уж так хочется графики, то лучше SDL.

Вот об этом я подумаю.

sv75 ★★★★★
() автор топика

Если курс именно по C, то GUI, IPC, регулярки и т. п. не только не нужны, но и вредны - отвлекают от основного. Разве что взять простую библиотеку типа SDL или GMP просто чтоб попрактиковаться.

Самое важное для обучения сишника - научить структурировать код: модульность, инкапсуляция и т. п. Чтоб не фортранщики получились )

Хороший практикум - написать свой менеджер памяти поверх malloc: пул объектов там, статистика, сборщик мусора и т. д.

unsigned ★★★★
()

добавил тему в избранные.

dada ★★★★★
()
Ответ на: комментарий от anonymous

XCB/Xlib бери.

Это несколько муторно в случаи винды.

Gtk+ это не чистый С, а с прикрученными объектными костылями.

Да, я в курсе, но хотя бы это Си. Зато его можно использовать.

sv75 ★★★★★
() автор топика
Ответ на: комментарий от sv75

Практика подсказывает, что «не прочитают». По себе знаю... Скинули нам как-то на 2-м курсе это книжку %( так только кусками и читал. А зря. По-любому из-за этого пробелы в знании (а сейчас читать некогда).

BattleCoder ★★★★★
()
Ответ на: комментарий от unsigned

Если курс именно по C, то GUI, IPC, регулярки и т. п. не только не нужны, но и вредны - отвлекают от основного.

Это верно, но есть некоторые требования смежников (и дыры смежников). Формально курс вообще называется «Программирование, ч.2» )

Самое важное для обучения сишника - научить структурировать код: модульность, инкапсуляция и т. п. Чтоб не фортранщики получились )

Поскольку это знание с Си не связано, то у нас есть отдельный курс на эту тему. Поэтому слишком сильно лезть сюда тоже не нужно.

Хороший практикум - написать свой менеджер памяти поверх malloc: пул объектов там, статистика, сборщик мусора и т. д.

Боюсь для третьего семестра и нашего контингента это перебор (

sv75 ★★★★★
() автор топика
Ответ на: комментарий от BattleCoder

Ладно, я посмотрю, что из K&R я тут пропустил.

sv75 ★★★★★
() автор топика
Ответ на: комментарий от Andersen

Всё-таки это тема не из курса Си (

sv75 ★★★★★
() автор топика
Ответ на: комментарий от sv75

Дома прочтёт в лучшем случае один из двадцати... отрывками... перед экзаменом.

В любом случае такой разброс материала приведёт к тому что вообще ничерта знать не будут.

invy ★★★★★
()
Ответ на: комментарий от sv75

слишком сильно лезть сюда тоже не нужно

Посмотрите хотя бы непрозрачные структуры (pImpl) - очень типичный паттерн.

Боюсь для третьего семестра и нашего контингента это перебор (

Это в Бауманке? о_О Работа с памятью - это и есть суть C. Всё равно надо что-нибудь на указатели - даже Спольски включает их в теоретический минимум программиста (из двух пунктов ) ).

unsigned ★★★★
()
Ответ на: комментарий от unsigned

Это в Бауманке? о_О

Вы наверное закончили какой-то менее пафосный вуз, и дуамеет, что в МГТУ всё хорошо, да? ))

Работа с памятью - это и есть суть C.

Но работа с памятью всё-таки не есть «написание своего аллокатора»

Всё равно надо что-нибудь на указатели

Да там всё на указатели, с третьей лабы )

sv75 ★★★★★
() автор топика

Это после школы сразу вот с этого начинать? С регистров процессора и MMU? Детей пожалей, блин! У них только вчера слово Божие закончилось.

hibou ★★★★★
()
Ответ на: комментарий от unsigned

Посмотрите хотя бы непрозрачные структуры (pImpl) - очень типичный паттерн.

У нас есть курс ООП, думаю, что это лучше оставить ему.

sv75 ★★★★★
() автор топика
Ответ на: комментарий от hibou

Это после школы сразу вот с этого начинать?

1. Читайте целиком опус, это аж третий семестр.

2. Мы если не в этом, то в следующем году будем брать по ЕГЭ по информатике (надеемся).

3. mmu тут нет )

sv75 ★★★★★
() автор топика
Ответ на: комментарий от sv75

Нет? Фуф. Я когда эти все pae изучал, у меня крыша едва не поехала.

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

hibou ★★★★★
()
Ответ на: комментарий от unsigned

Посмотрите хотя бы непрозрачные структуры

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

sv75 ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

А что, make'у есть разница, чем компилировать: gcc, icc или вообще латехом?

Make — нет. Писателю сценария на make — да (

sv75 ★★★★★
() автор топика

Всеволод Александрович, к K&R как дополнение можно давать http://www.amazon.com/Expert-Programming-Peter-van-Linden/dp/0131774298/ref=s... Или надергать из нее глав (например, как читать сложные объявления).

Надо подумать, на чём показывать. Кандидаты: CLR, Python, Mathlab.

Mathlab

vvviperrr ★★★★★
()
Ответ на: комментарий от hibou

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

Я видимо под впечатлением текущего курса, где вперемешку С, С++ и С++.NET, и мне она кажется очень цельной поэтому (

Основы аппаратной части надо читать до, но они не читаются. GTK надо бы убрать, но требуется GUI. cmake под вопросом Других не-цельностей я не вижу пока.

sv75 ★★★★★
() автор топика
Ответ на: комментарий от vvviperrr

http://www.amazon.com/Expert-Programming-Peter-van-Linden

Почитаю, понял, подумаю.

Mathlab

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

sv75 ★★★★★
() автор топика
Ответ на: комментарий от hibou

Я когда эти все pae изучал,

PAE по-моему вообще не нужно изучать для программистов, кроме как «да, был у Интеля такой костыльчик»

sv75 ★★★★★
() автор топика
Ответ на: комментарий от sv75

я имел ввиду, что пишется Matlab :) а так я конечно на питон

vvviperrr ★★★★★
()
Ответ на: комментарий от sv75

Я очень близко знаком с Бауманкой, правда не с ИУ. Поступить туда всё же непросто, так что тупых почти нет, есть ленивые )

Но работа с памятью всё-таки не есть «написание своего аллокатора»

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

Другой вариант лабы - записать в файл набор записей. Задание со звёздочкой - прочитать их )

unsigned ★★★★
()
Ответ на: комментарий от quantum-troll

Почему именно cmake?

А какие варианты? (не считая самого make) Scons?

РСУВ вроде git и mercurial будут рассматриваться?

Нет, перед этим идёт курс, где есть SVN (в настоящий момент), его и будем использовать.

На 4-м курсе будет курс групповой разработки, вот его наверное пора на Git перевести будет (сейчас он на 5-м и базируется на SVN).

sv75 ★★★★★
() автор топика
Ответ на: комментарий от sv75

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

hibou ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.