LINUX.ORG.RU

Вышел первый том книги А. В. Столярова «Программирование: введение в профессию»

 , ,


24

11

На официальном сайте А. В. Столярова объявлено о выходе первого тома книги «Программирование: введение в профессию». Первый том, озаглавленный «Азы программирования», включает две части: «Введение» и «Язык Паскаль и начала программирования». Обе части, как и вся книга в целом, ориентированы на использование ОС Unix (в основном Linux); в предисловии автор, обращаясь к «коллегам-преподавателям», заявляет, что книга вряд ли будет им полезна, если командная строка ОС Unix не станет их основным инструментом для повседневной работы с компьютером.

Электронная версия первого тома (PDF) доступна на сайте в открытом доступе.

Книга «Программирование: введение в профессию» примечательна тем, что средства на её написание и издание были собраны через краудфандинговую кампанию. По словам автора, это был единственный вариант, позволяющий написать книгу и предоставить открытый доступ к её электронной версии. Приём пожертвований на сайте А. В. Столярова продолжается, поскольку средств для издания последующих томов к настоящему моменту недостаточно.

Как сообщалось ранее в новостной ленте сайта, второй том книги, который выйдет под заголовком «Низкоуровневое программирование», уже практически готов к печати. В него войдут часть о программировании на языке ассемблера NASM для ОС Unix, а также часть, посвящённая языку Си. Пока неясно, войдёт ли в этот же том часть, рассказывающая о принципах построения операционных систем и о возможностях, доступных на уровне системных вызовов ОС Unix, или же эта часть будет оформлена как отдельный том. Сроки издания второго тома также пока неизвестны, поскольку зависят от дальнейшего хода краудфандинговой кампании.

>>> Подробности

★★★

Проверено: anonymous_incognito ()
Последнее исправление: CYB3R (всего исправлений: 5)
Ответ на: комментарий от Croco

Уже увидел, да, наверное по нынешним временам DRM Free приоритетнее.

be_nt_all ★★
()
Ответ на: комментарий от cvs-255

насчет сисколлов

За ссылочку спасибо. Мама дорогая, что они с конвенцией сделали, ироды...

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

4.2,Же вы бы у коллег, по спрашивали, у того же Чернова. После сдачи задачки она, не считается зачтенной, т.е тесты прошли=> добро пожаловать к преподу на codereview

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

На стр. 161 я утверждаю, что обнаружение зацикливания (в просторечии зависания) процесса есть алгоритмически неразрешимая задача. Это вызывает какие-то сомнения? Если что, к небезызвестной самоприменимости она сводится за два шага.

Да, есть серьезные сомнения применимости этого к реальным ЭВМ. Учитывая то обстоятельство, что память компьютера конечна, и число возможных состояний оперативной памяти, жесткого диска и регистров процессора конечно, можно доказать зацикливание (или его отсутствие) путем записи всех состояний ОЗУ-регистры_проца-жесткий_диск на каждый шаг программа, и если это состояние когда-либо повторится, то зацикливание доказано. По-сути любая РЕАЛЬНАЯ ЭВМ это просто конечный автомат с очень большим (но конечным) количеством состояний

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

попытайтесь для начала понять смысл этих оценок, а для этого начните с азов математического анализа бесконечно малых величин, а именно с определения понятия предела последовательности (если мне не изменяет память, то во времена «совка» это проходили в старших классах общеобразовательной школы).

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

у того же Чернова.

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

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

Для инженеров можно говорить, что проблема останова ЭВМ не разрешима на сравнимой ЭВМ за разумное время. Даже с одним килобайтом ОЗУ число возможных состояний получается 2^2024, это примерно 10^308 же.

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

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

Хрена се, вам даётся готовая реализация динамического массива и списка, а вы плюётесь и говорите, что в ней нет никакого смысла. Я правильно понял, что NIH велосипеды «с блек джеком и бл_дями» по-вашему это хорошо?

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

Хрена се, вам даётся готовая реализация динамического массива и списка, а вы плюётесь и говорите, что в ней нет никакого смысла.

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

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

Да, есть серьезные сомнения применимости этого к реальным ЭВМ. Учитывая то обстоятельство, что память компьютера конечна

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

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

Как раз стандартные контейнеры в STL уже хорошо отладили. Я ни разу не сталкивался с кривой работой vector, list, map и прочих. А самописные реализации того же самого придется отлаживать по-новой. А уж сопровождать самописные реализации придется много....

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от Croco

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

SZT ★★★★★
()
Последнее исправление: SZT (всего исправлений: 1)
Ответ на: комментарий от cvs-255

Как раз стандартные контейнеры в STL уже хорошо отладили.

Дело абсолютно не в этом. Сама по себе программа, использующая STL, в большинстве случаев становится write only, отлаживать её совершенно невозможно, сопровождать — ещё невозможнее.

А самописные реализации того же самого

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

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

В школе меня учили программировать.

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

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

Зачем было называть книгу на советский манер?

Слово «азы» не советское, слово «программирование», тем более… Видимо советским вы сочли слово «профессия». Ну не всё ж про «ремесло» и «искусство» программирования писать…

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

если нет ничего антисоветского, значит, советское

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

Ух ты, теперь я начинаю сомневаться, что как вы говорите, основным языком программирования для вас сейчас является с++. Проблемы с отладкой и сопровождением при использовании стандартной библиотеки у программиста с++ это уже ... даже слова не могу подобрать. У меня лишь одна догадка - вы совершенно не знаете STL. Или речь идёт о том нерадивом ученике без всяких способностей к программированию, который почему-то решил выбрать программирование своей профессией?

cawa
()
Ответ на: комментарий от Croco

Сама по себе программа, использующая STL, в большинстве случаев становится write only, отлаживать её совершенно невозможно, сопровождать — ещё невозможнее.

пруф будет?

Контейнеров вообще не должно быть

Ты что, предлагаешь каждый раз для нового типа данных с нуля реализовывать списки/динамические массивы?

cvs-255 ★★★★★
()
Ответ на: комментарий от ASM

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

cawa
()
Ответ на: комментарий от Croco

Дело абсолютно не в этом. Сама по себе программа, использующая STL, в большинстве случаев становится write only, отлаживать её совершенно невозможно, сопровождать — ещё невозможнее.

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

Жесть. И это правда написал преподаватель информатики в МГУ, программист с++? Мой мир теперь никогда не будет прежним. Всё ещё хуже, чем я мог предполагать.

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

бида с этими О

точнее O(n*m), где соотношение n и m сильно влияет на конечную оценку

при этом важно, что промах в кеше может привести к поиску нужной информации в оперативной памяти и тогда m = f(n)

т.е. epic fail на расчетных задачах нельзя промахиваться !

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

Мой основной инструмент (в смысле когда я не преподаю, а программи пишу) — не поверите, как раз C++. Так что мимо, мимо.

С кодом есть возможность ознакомиться?

i-rinat ★★★★★
()
Ответ на: комментарий от cvs-255

Ты что, предлагаешь каждый раз для нового типа данных с нуля реализовывать списки/динамические массивы?

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

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

очевидно же, что автор коммунист и проповедует идею «от каждого по способностям, каждому по потребностям»

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

Есть третий путь.

В течении семестра - автоматизированное тестирование принимаемых задач, преподаватель только отвечает на вопросы по задачам.

А вот на зачёте/экзамене студент пишет в присутствии преподавателя задачи и сдаёт их (либо устно преподавателю, либо автоматизированной системе).

По поводу микронаушника. Разве он работает если спрашивать каверзнейший из вопросов: Почему так? Или если задавать простой вопрос по теме, но требующий небольшого самостоятельного рассуждения.

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

забыл что-ли? кровавая гебня ходила по улицам города и всех, кто не на работе, этапировала в ГУЛАГ на лесоповалочные работы!

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

суфлер будет подсказывать, как правильно мычать :))

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

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

Например: http://www.intelib.org

Это просто чудесный пример; многое становится понятным.

На гугле не забанили, не?

И это тоже чудесно. Каким же самомнением надо обладать, чтобы так ответить. (Это не вопрос).

i-rinat ★★★★★
()
Ответ на: комментарий от Norgat

А вот на зачёте/экзамене студент пишет в присутствии преподавателя задачи и сдаёт их (либо устно преподавателю, либо автоматизированной системе).

У нас вот в универе заставляли писать на экзамене задачи на листочке и сдавать. В результате пришлось просто тупо выучить весь код, который может попастся на экзамене, так как если его писать без подготовки на это уйдёт слишком много времени и не будет компилятора который проверит код на ошибки. А препод срубит с 5 на 4 если обнаружит что где-то не хватает ";"

Т.е. если у человека очень хорошая память он может совершенно не понимать что за закорючки он пишет. В любом случае на каждом экзамене нужно личное общение.

ASM ★★
()

На паскале не пишут сейчас уже почти ничего. Смысл учить языку который не используется? Си не сложнее паскаля, лучше было бы обучать ему.

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

У нас вот в универе заставляли писать на экзамене задачи на листочке и сдавать.

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

Собственно у меня был и кодинг на листочке, и кодинг на компе во времена учёбы. На листочке делал схему коннекта к светодиодам + код для МК на асме, чтобы мигало. На компе делал смену регистра символов в вводимой строке и тоже на асме xD

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

А препод срубит с 5 на 4 если обнаружит что где-то не хватает ";"

Имхо, такие преподаватели неадекватны. Но это лично моё мнение.

Т.е. если у человека очень хорошая память он может совершенно не понимать что за закорючки он пишет.

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

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

«забыл что-ли? кровавая гебня ходила по улицам города и всех, кто не на работе, этапировала в ГУЛАГ на лесоповалочные работы!»

То был совсем не коммунизм. При коммунизме насилия не будет, значит, и работать никто не будет.

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

«ты забываешь про фактор общественного осуждения и порицания»

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

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

Не буду вступать с вами в дискуссию по поводу STL, считая эту библиотеку достаточно привлекательной особенностью «плюсов» (и да, вы частично правы в том, что с этой библиотекой не всё так просто, как хотелось бы), но возник у меня один вопрос… Видится ли вам написанный вами «лисп в плюсах», в смысле библиотека InteLib некоей альтернативой набору контейнеров и алгоритмов от д-ра Степанова?

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

Я уже ознакомился. И даже погуглил, на всякий случай:

Now I am one of many who think that C++ is an abomination of a language with way too many features fighting each other for supremacy. Similarly, as advanced and ground breaking as LISP was, it also had some major problems. The heavy use of parentheses makes LISP coding almost as big a pain in the neck as writing XML in a standard text editor.

To merge the worst features of C++ and LISP like Intelib, while technically amazing, is also a stunningly bad idea. When I first saw it, I was sure it was some sort of amazingly clever troll. Looking over the web page, I'm less sure. The author/s are even offering other licensing arrangements for people who would like to use Intelib but don't want to use it under the terms of the GPL.

Scary. Very, very SCARY!

i-rinat ★★★★★
()
Ответ на: комментарий от be_nt_all

Видится ли вам написанный вами «лисп в плюсах», в смысле библиотека InteLib некоей альтернативой набору контейнеров

Разумеется, нет. Я не стал бы делать никаких «альтернатив» степановскому высеру. Для STL есть только одна альтернатива: полное отстутствие как его самого, так и любых пародий на него.

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

Смысл учить языку который не используется?

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

Croco ★★★
() автор топика
Ответ на: комментарий от i-rinat

Scary. Very, very SCARY!

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

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