Между программированием и физикой

Как изме­нить рос­сий­ское обра­зо­ва­ние, что­бы инте­гри­ро­вать Рос­сию в миро­вой хай­тек

Автор этой ста­тьи Юрий Пан­чул — стар­ший инже­нер ком­па­нии MIPS Technologies, кото­рая про­ек­ти­ру­ет про­цес­со­ры для быто­вой элек­тро­ни­ки. Про­цес­со­ры MIPS сто­ят в теле­ви­зо­рах Sony, роу­те­рах Cisco, прин­те­рах Hewlett-Packard. В про­шлом Юрий был осно­ва­те­лем стар­та­па в обла­сти авто­ма­ти­за­ции элек­трон­но­го дизай­на C Level Design, кото­рый был про­ин­ве­сти­ро­ван Intel Capital и сре­ди кли­ен­тов кото­ро­го были Hitachi и Fujitsu.

Миро­вая элек­трон­ная и ком­пью­тер­ная про­мыш­лен­ность про­хо­дит через пери­од трас­фор­ма­ции, воз­мож­но самый ради­каль­ный за послед­ние 30 лет. Двой­ная моно­по­лия Intel и Microsoft на рын­ке пер­со­наль­ных ком­пью­те­ров ста­но­вит­ся неак­ту­аль­ной из-за рас­по­стра­не­ния смарт­фо­нов, план­ше­тов и облач­но­го хра­не­ния дан­ных. Про­ис­хо­дит рост как тра­ди­ци­он­ных для рын­ка гад­же­тов про­цес­сор­ных ком­па­ний (ARM, MIPS), так и раз­лич­ных аль­тер­на­тив­ных про­ек­тов, стар­то­вав­ших в Китае.

В этих усло­ви­ях для рос­сий­ских ком­па­ний появ­ля­ет­ся воз­мож­ность инте­гри­ро­вать­ся в миро­вую эко­но­ми­ку и полу­чить свою долю миро­во­го «элек­трон­но­го пиро­га», раз­мер кото­ро­го оце­ни­ва­ет­ся в 1,85 трлн долл. [1]. Но для рос­сий­ско­го тех­но­ло­ги­че­ско­го рыв­ка необ­хо­дим круп­ный пул ква­ли­фи­ци­ро­ван­ных инже­не­ров, кото­рых долж­ны под­го­то­вить рос­сий­ские вузы. В какой сте­пе­ни про­грам­ма рос­сий­ских вузов соот­вет­ству­ет новым реа­ли­ям, и что в них мож­но изме­нить?

Уро­ки пере­строй­ки

Совре­мен­ная рос­сий­ская модер­ни­за­ция — явле­ние не новое, до нее была, напри­мер, вол­на инте­ре­са к элек­тро­ни­ке и, осо­бен­но, про­грам­ми­ро­ва­нию во вре­мя гор­ба­чев­ской пере­строй­ки. В 1985–1987 гг. в шко­лах появи­лись ком­пью­тер­ные клас­сы с пер­вы­ми совет­ски­ми пер­со­наль­ны­ми ком­пью­те­ра­ми «Агат» и япон­ски­ми MSX Yamaha. Изда­тель­ство «Мир» напе­ча­та­ло мно­го пере­вод­ных книг по язы­кам про­грам­ми­ро­ва­ния и опе­ра­ци­он­ным систе­мам, появил­ся жур­нал «Мик­ро­про­цес­сор­ные сред­ства и систе­мы», стал попу­ляр­ным пере­вод­ной жур­нал «Элек­тро­ни­ка».

Одним из наи­бо­лее «ком­пью­тер­ных» мест для уче­бы в СССР 1987 г. обще­ствен­ное мне­ние счи­та­ло Факуль­тет управ­ле­ния и при­клад­ной мате­ма­ти­ки (ФУПМ) Мос­ков­ско­го физи­ко-тех­ни­че­ско­го инсти­ту­та (МФТИ). И дей­стви­тель­но — сту­ден­ты МФТИ того вре­ме­ни рабо­та­ли на базо­вых кафед­рах в ВЦ Ака­де­мии наук с извест­ным гуру Евге­ни­ем Весе­ло­вым, раз­ра­ба­ты­ва­ли про­грамм­ное обес­пе­че­ние для Unix в Инсти­ту­те им. Кур­ча­то­ва и авиа­ци­он­ные встро­ен­ные систе­мы для Гос­НИ­И­АС. Одна­ко «ком­пью­тер­ность» ФУПМ была пора­зи­тель­ным обра­зом почти никак не свя­за­на с про­грам­мой его основ­ных кур­сов, в кото­рой, по запад­ным мер­кам, прак­ти­че­ски ника­кой «ком­пью­тер­но­сти» не было.

В типич­ном запад­ном уни­вер­си­те­те типа Берк­ли или Стэн­фор­да в то вре­мя был преж­де все­го осно­ва­тель­ный, хотя и ввод­ный, курс по алго­рит­мам и струк­ту­рам дан­ных [2], осно­ва­тель­ный курс по ком­пи­ля­то­рам [3] и кур­сы по опе­ра­ци­он­ным систе­мам [4]. Они пере­пле­та­лись с прак­ти­кой — сту­дент учил­ся писать хоро­ший код со слож­ны­ми струк­ту­ра­ми дан­ных и алго­рит­ма­ми.

Ниче­го тако­го в про­грам­ме ФУПМ МФТИ тогда не было. Хотя мно­гие запад­ные учеб­ни­ки были в то вре­мя пере­ве­де­ны на рус­ский язык, и неко­то­рые (кни­га Ахо и Уль­ма­на по ком­пи­ля­то­рам) даже были в спис­ке реко­мен­до­ван­ной лите­ра­ту­ры, но они никак или почти никак не исполь­зо­ва­лись в МФТИ. Сту­ден­ты учи­лись писать про­стые про­грам­мы на Фор­тране, по-види­мо­му, для чисто вычис­ли­тель­ных целей, а курс по ком­пи­ля­то­рам содер­жал менее 10% инфор­ма­ции по срав­не­нию с соот­вет­ству­ю­щи­ми кур­са­ми в задан­ных вузах.

Про­бле­мы неадек­ват­но­сти про­грам­мы Computer Science в совет­ских вузах воз­ни­ка­ли не толь­ко у выпуск­ни­ков МФТИ. Алек­сандр Авсе­ев, Principal Architect, Corporate Research в одной из веду­щих теле­ком­му­ни­ка­ци­он­ных ком­па­ний мира Huawei и выпуск­ник Мос­ков­ско­го авиа­ци­он­но­го инсти­ту­та, утвер­жда­ет: «По мое­му опы­ту, рос­сий­ские выпуск­ни­ки вузов (за исклю­че­ни­ем ВМК-шни­ков) прак­ти­че­ски пол­но­стью про­ле­та­ют мимо CS 313 (Ред. курс по алго­рит­мам и струк­ту­рам дан­ных), кото­рый в Аме­ри­ке прак­ти­че­ски вез­де пре­по­да­ет­ся стан­дарт­но на базе книг Кну­та и Кор­ме­на. Т.е. начи­нать надо с изу­че­ния основ, алго­рит­мов и струк­тур. И знать это надо назу­бок. Это все спра­ши­ва­ет­ся на собе­се­до­ва­ни­ях, и тут даже прак­ти­че­ские зна­ния могут не помочь, пото­му что надо знать тео­рию и тер­ми­но­ло­гию, как свои пять».

Что же изу­ча­ли на «ком­пью­тер­ном» факуль­те­те МФТИ в кон­це 1980-х годов вме­сто «ком­пью­тер­ной нау­ки»? Физи­ку. Очень, очень мно­го физи­ки. Пять семест­ров общей физи­ки, пять семест­ров тео­ре­ти­че­ской физи­ки, тео­ре­ти­че­ская меха­ни­ка, урав­не­ния мате­ма­ти­че­ской физи­ки и мате­ма­ти­ка — но толь­ко в объ­е­ме, необ­хо­ди­мом для под­держ­ки физи­ки. Для мно­гих сту­ден­тов такая несба­лан­си­ро­ван­ность про­грам­мы была боль­шой загад­кой. Воз­мож­но, раз­гад­ка свя­за­на с тем, что МФТИ изна­чаль­но пла­ни­ро­вал­ся как куз­ни­ца инже­нер­ных кад­ров для раз­ра­бот­ки меж­кон­ти­нен­таль­ных бал­ли­сти­че­ских ракет, и про­грам­ма обу­че­ния была опти­ми­зи­ро­ва­на для реше­ния воз­ни­ка­ю­щих при этом вычис­ли­тель­ных задач.

Соглас­но Сер­гею Ваку­лен­ко, выпуск­ни­ку ФУМП, быв­ше­му работ­ни­ку Инсти­ту­та им. Кур­ча­то­ва, сей­час — инже­не­ру по моде­ли­ро­ва­нию в про­цес­сор­ной ком­па­нии MIPS Technologies, «крен физ­техов­ской про­грам­мы в сто­ро­ну мат­фи­зи­ки был необ­хо­дим для под­го­тов­ки спе­ци­а­ли­стов, реша­ю­щих зада­чи напо­до­бие рас­че­та нагре­ва­ния бое­го­лов­ки при про­хо­де через атмо­сфе­ру. Для более акту­аль­ных на сего­дняш­ний день задач, напри­мер про­грам­ми­ро­ва­ния встро­ен­ных систем для совре­мен­ных гад­же­тов, все эти мат­фи­зи­че­ские кур­сы совер­шен­но бес­по­лез­ны, а тео­ре­ти­че­скую физи­ку на ФУПМ-е мож­но было бы уло­жить в два семест­ра».

Недо­стат­ки офи­ци­аль­ной про­грам­мы обу­че­ния МФТИ частич­но ком­пен­си­ро­ва­лись ини­ци­а­ти­ва­ми сни­зу. В 1988 г. на Физ­те­хе появи­лась Сту­ден­че­ская лабо­ра­то­рия ком­пью­те­ри­за­ции (СЛК) — доста­точ­но неза­ви­си­мая от адми­ни­стра­ции инсти­ту­та орга­ни­за­ция, во гла­ве кото­рой сто­ял Олег Бацу­ков. Сна­ча­ла это был сво­е­го рода клуб кол­лек­тив­но­го само­об­ра­зо­ва­ния при­мер­но из 20 сту­ден­тов. Потом СЛК ста­ла заклю­чать дого­во­ра с дру­ги­ми инсти­ту­та­ми, напри­мер дого­вор с Инсти­ту­том про­блем кибер­не­ти­ки на созда­ние систем­но­го про­грамм­но­го обес­пе­че­ния для совет­ско­го век­тор­но­го супер­ком­пью­те­ра «Элек­тро­ни­ка СС-БИС», ана­ло­га зна­ме­ни­то­го аме­ри­кан­ско­го век­тор­но­го супер­ком­пью­те­ра Cray-1.

Совре­мен­ное состо­я­ние

За 20 лет в МФТИ про­изо­шли боль­шие изме­не­ния. Появи­лись адек­ват­ные кур­сы про­це­дур­но­го, объ­ект­но-ори­ен­ти­ро­ван­но­го и низкоуровневого/​ ассем­блер­но­го про­грам­ми­ро­ва­ния, кур­сы по алго­рит­мам и струк­ту­рам дан­ных, а так­же серьез­ный курс по опе­ра­ци­он­ным систе­мам. Появи­лась под­дер­жи­ва­е­мая Intel Кафед­ра мик­ро­про­цес­сор­ных тех­но­ло­гий Факуль­те­та радио­тех­ни­ки и кибер­не­ти­ки. Поми­мо «ста­ро­го» ком­пью­тер­но­го факуль­те­та ФУПМ появил­ся «новый» ком­пью­тер­ный Факуль­тет инно­ва­ций и высо­ких тех­но­ло­гий МФТИ, сту­ден­ты и пре­по­да­ва­те­ли кото­ро­го (Ана­ста­сия Уря­ше­ва, Антон Мои­се­ев, Юрий Аммо­сов) ини­ци­и­ро­ва­ли раз­ра­бот­ку про­грамм на базе новой плат­фор­мы Android. Груп­па сту­ден­тов и пре­по­да­ва­те­лей (Алек­сандр Зло­бин, Алек­сандр Биби­ков) на Кафед­ре радио­тех­ни­ки МФТИ раз­ра­бо­та­ли систе­му на чипе для бор­то­вых ком­пью­те­ров, исполь­зуя син­те­зи­ру­е­мые про­цес­сор­ные ядра и про­грам­ми­ру­е­мые поль­зо­ва­те­лем вен­тиль­ные мат­ри­цы (ППВМ или FPGA — Field Programmable Gate Array) — устрой­ства, кото­рые поз­во­ля­ют совре­мен­но­му сту­ден­ту реа­ли­зо­вать свои соб­ствен­ные элек­трон­ные дизай­ны про­цес­со­ров и систем без раз­ме­ще­ния мно­го­мил­ли­он­ных зака­зов на фаб­ри­ке.

К сожа­ле­нию, отдель­ные оча­ги ново­го еще не обра­зо­ва­ли сба­лан­си­ро­ван­ную струк­ту­ру кур­сов и прак­ти­че­ской дея­тель­но­сти, кото­рую мож­но уви­деть в аме­ри­кан­ских уни­вер­си­те­тах. На ком­пью­тер­ных спе­ци­аль­но­стях оста­лось избы­точ­ное коли­че­ство обя­за­тель­ных кур­сов, свя­зан­ных с тео­ре­ти­че­ской меха­ни­кой, тео­ре­ти­че­ской и мате­ма­ти­че­ской физи­кой. Дмит­рий Севе­ров, пре­по­да­ва­тель МФТИ и быв­ший зам­ми­ни­стра свя­зи и мас­со­вых ком­му­ни­ка­ций Рос­сии, утвер­жда­ет, что при­чи­на лежит на поверх­но­сти: «Аргу­мен­ты про «тре­ни­ров­ку мыш­ле­ния» не свя­за­ны с под­бо­ром пред­ме­тов никак совсем. Под­бор пред­ме­тов — это, преж­де все­го, спо­соб­ность вне­сти изме­не­ния в состав и «постро­е­ние» необ­хо­ди­мо­го мно­же­ства пре­по­да­ва­те­лей. Надо ли объ­яс­нять, поче­му послед­ние 25 лет в выс­шей шко­ле РФ услов­ные «тео­р­фи­зи­ки» под­би­ра­ют­ся и стро­ят­ся луч­ше, чем услов­ные «инфор­ма­ти­ки»?».

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

Воз­мож­но, сле­ду­ет начи­нать не с копи­ро­ва­ния про­дви­ну­тых кур­сов по ком­пью­тер­ной архи­тек­ту­ре в той фор­ме, в кото­рой они пре­по­да­ют­ся, ска­жем, в Стэн­фор­де, а с про­стых прак­ти­че­ских кур­сов по циф­ро­во­му дизай­ну, про­грам­ми­ро­ва­нию встро­ен­ных систем и циф­ро­вой обра­бот­ке сиг­на­лов (Digital Signal Processing — DSP), кото­рые пре­по­да­ет, напри­мер, отде­ле­ние Уни­вер­си­те­та Кали­фор­нии Сан­та-Круз в Крем­ни­е­вой Долине (University of California Santa Cruz Extension in Silicon Valley). Это вечер­ние кур­сы повы­ше­ния ква­ли­фи­ка­ции, кото­рые исполь­зу­ют уже рабо­та­ю­щие инже­не­ры для осво­е­ния обла­стей, лежа­щих на гра­ни­це их преды­ду­ще­го обра­зо­ва­ния и прак­ти­че­ско­го опы­та. Сле­ду­ет вспом­нить, что одна из про­блем пре­по­да­ва­ния в Рос­сии заклю­ча­ет­ся в том, что боль­шая мас­са тео­ре­ти­че­ско­го мате­ри­а­ла пре­по­да­ет­ся перед прак­ти­кой, из-за чего сту­дент не может вовре­мя понять, поче­му он изу­ча­ет тот или иной раз­дел, метод или даже пред­мет. Кро­ме это­го, такие кур­сы мог­ли бы читать и недав­ние сту­ден­ты. Таким обра­зом мож­но было бы запол­нить одно из самых явных «белых пятен» физ­техов­ско­го обра­зо­ва­ния — пусто­ту меж­ду миром высо­ко­уров­не­во­го про­грам­ми­ро­ва­ния и миром физи­че­ско­го крем­ния и элек­тро­нов, меж­ду кото­ры­ми и лежит боль­шин­ство клю­че­вых тех­но­ло­гий, сде­лав­ших воз­мож­ным совре­мен­ный мир гад­же­тов.

Меж­ду про­грам­ми­ро­ва­ни­ем и физи­кой

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

Конечно,способный физик может про­чи­тать вве­де­ние в ком­пью­тер­ную архи­тек­ту­ру и за несколь­ко меся­цев научить­ся делать при­ми­тив­ный после­до­ва­тель­ный про­цес­сор, но вот прой­дет ли он даль­ше, туда, где начи­на­ют­ся слож­ные реше­ния? Для про­цес­сор­но­го гуру эти устрой­ства — не ком­би­на­ция из несколь­ких кон­струк­ций на уровне учеб­ни­ков, а мно­го­мер­ное про­стран­ство реше­ний (на одной оси — коли­че­ство инструк­ций, выби­ра­е­мых за один цикл, на дру­гой оси — ста­дии кон­вей­е­ра, на тре­тьей — коли­че­ство ALU, и всё это пере­се­ка­ет­ся с тай­мин­гом, энер­го­по­треб­ле­ни­ем и т.д.). Что­бы достичь это­го уров­ня, необ­хо­ди­ма ран­няя спе­ци­а­ли­за­ция и глу­бо­кое изу­че­ние дости­же­ний пред­ше­ствен­ни­ков. Но даже для тех, кто не ста­нет раз­ра­бот­чи­ком пере­до­вых циф­ро­вых устройств, а будет спе­ци­а­ли­зо­вать­ся либо в физи­ке, либо в высо­ко­уров­не­вом про­грам­ми­ро­ва­нии, базо­вое пони­ма­ние того, что про­ис­хо­дит меж­ду эти­ми обла­стя­ми, необ­хо­ди­мо, что­бы коопе­ри­ро­вать­ся с кол­ле­га­ми, рабо­та­ю­щи­ми в общей эко­си­сте­ме тех­но­ло­гий.

Про­бле­ма раз­ры­ва меж­ду про­грам­ми­ро­ва­ни­ем и физи­кой не уни­каль­на для Рос­сии — ее заме­ча­ли и в вузах США, и в вузах дру­гих стран. Несколь­ко лет назад изра­иль­ские про­фес­со­ра Ноам Нисан (Noam Nisan) и Шимон Щокен (Shimon Schocken) раз­ра­бо­та­ли курс на сты­ке элек­тро­ни­ки и про­грам­ми­ро­ва­ния, кото­рый в раз­лич­ных фор­мах ско­пи­ро­ва­ли мно­гие уни­вер­си­те­ты мира, вклю­чая Стэн­форд, где вер­сия это­го кур­са назы­ва­ет­ся «От логи­че­ских эле­мен­тов И-НЕ к игре «Тет­рис»».

Опи­са­ние кур­са начи­на­ет­ся так: «Пред­ставь­те, что вы начи­на­е­те с неогра­ни­чен­но­го источ­ни­ка логи­че­ских эле­мен­тов И-НЕ (Ред. И-НЕ (NAND) — один из про­стей­ших логи­че­ских эле­мен­тов циф­ро­вой элек­тро­ни­ки, стро­ит­ся из двух тран­зи­сто­ров), и потом стро­и­те, шаг за шагом, ком­пью­тер обще­го назна­че­ния, кото­рый может испол­нять игру «Тет­рис»». В про­цес­се кур­са сту­ден­ты пони­ма­ют, как из И-НЕ стро­ят­ся дру­гие логи­че­ские эле­мен­ты, из тех — ком­по­нен­ты про­цес­со­ра, потом сту­ден­ты изу­ча­ют кон­цеп­цию команд про­цес­со­ра, ассем­бле­ра, вир­ту­аль­ной маши­ны и опе­ра­ци­он­ной систе­мы.

Этот же курс мож­но было бы внед­рить и для сту­ден­тов про­грам­мист­ских спе­ци­аль­но­стей в Рос­сии, но у него есть недо­ста­ток. Рос­сий­ские сту­ден­ты часто учат боль­шое коли­че­ство мате­ри­а­ла в послед­ние пару дней перед экза­ме­ном или заче­том, отче­го неко­то­рые объ­ек­ты прин­ци­пи­аль­но раз­ной при­ро­ды из раз­ных уров­ней кур­са могут в созна­нии сту­ден­та скле­ить­ся. Напри­мер, аппа­рат­ный сум­ма­тор на язы­ке опи­са­ния аппа­ра­ту­ры может скле­ить­ся с коман­дой сло­же­ния из низ­ко­уров­не­во­го про­грам­ми­ро­ва­ния на ассем­бле­ре. Что­бы сту­дент реаль­но про­чув­ство­вал все уров­ни аппа­ра­ту­ры и про­грамм­но­го обес­пе­че­ния, он дол­жен сде­лать малень­кий проект/​лабораторную рабо­ту на каж­дом из этих уров­ней.

Пер­вой частью двух­се­мест­ро­во­го кур­са лабо­ра­тор­ных работ мог­ла бы быть сбор­ка про­стых элек­трон­ных схем на осно­ве мик­ро­схем малой сте­пе­ни инте­гра­ции. Вто­рой частью кур­са было бы несколь­ко лабо­ра­тор­ных работ с реа­ли­за­ци­ей более слож­ных дизай­нов, исполь­зуя «сту­ден­че­ские» пла­ты ППВМ/​FPGA, и опи­са­ние аппа­ра­ту­ры с помо­щью язы­ка Verilog.

Тре­тьей частью кур­са было бы зна­ком­ство с орга­ни­за­ци­ей про­цес­со­ра, кон­цеп­ци­я­ми про­цес­сор­ных инструк­ций, ста­дий кон­вей­е­ра и внеш­ней памя­ти. Сна­ча­ла сту­ден­ты мог­ли бы реа­ли­зо­вать про­стей­ший про­цес­сор, выпол­ня­ю­щий коман­ды в один про­дол­жи­тель­ный такт син­хро­сиг­на­ла низ­кой так­то­вой часто­ты, потом они мог­ли бы вве­сти кон­цеп­цию про­цес­сор­но­го кон­вей­е­ра, постро­ить про­стой кон­вей­ер­ный про­цес­сор и реа­ли­зо­вать его все на той же пла­те ППВМ/​FPGA.

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

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

1. www.ipc.org

2. Сей­час чита­ет­ся по Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein

3. Cей­час чита­ет­ся по Compilers: Principles, Techniques, and Tools by Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D. Ullman

4. Cей­час чита­ет­ся по Operating Systems Design and Implementation by Andrew S. Tanenbaum

Если вы нашли ошиб­ку, пожа­луй­ста, выде­ли­те фраг­мент тек­ста и нажми­те Ctrl+Enter.

Связанные статьи

Оценить: 
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (Пока оценок нет)
Загрузка...
 
 

Метки: , , , ,

 

5 комментариев

  • Рустем А.:

    Юра,

    > Хотя мно­гие запад­ные учеб­ни­ки были в то вре­мя пере­ве­де­ны на рус­ский язык, и неко­то­рые (кни­га Ахо и Уль­ма­на по ком­пи­ля­то­рам) даже были в спис­ке реко­мен­до­ван­ной лите­ра­ту­ры, но они никак или почти никак не исполь­зо­ва­лись в МФТИ.

    Воз­ни­ка­ет вопрос – а ты вооб­ще, в МФТИ учил­ся ? :)
    Нет, то что ты бывал на тер­ри­то­рии инсти­ту­та, я пом­ню. Но как ты мог про­пу­стить ТРЯП и ему подоб­ные кур­сы ?

    • Рустик, в ТРЯП-е, насколь­ко я пом­ню, в 1989 году полез­ной инфор­ма­ции было ров­но пол­стра­нич­ки – алго­ритм LR(k) пар­се­ра. Вооб­ще там был фокус на грам­ма­ти­ках, лек­си­че­ском и син­так­си­че­ском раз­бо­ре – зада­чах, дав­но решен­ных в 1960–1970-х годах и неак­ту­аль­ных к кон­цу 1980-х. Неко­то­рые пред­ме­ты рас­смот­ре­ния кур­са (атри­бу­тив­ные грам­ма­ти­ки) не исполь­зо­ва­лись в реаль­ных ком­пи­ля­то­рах кон­ца 1980-х и поз­же из-за нена­доб­но­сти. При этом алго­рит­мы гло­баль­ной опти­ми­за­ции и гене­ра­ции кода, кото­рые состав­ля­ли 95% ком­пи­ля­то­ра даже в то вре­мя, насколь­ко я пом­ню, в кур­се прак­ти­че­ски никак не раз­би­ра­лись. Я не пом­ню там Data Flow Analysis, Control Flow Graph и т.д. кото­рые были в аме­ри­кан­ских учеб­ни­ках уже того вре­ме­ни. Про более тон­кие штуч­ки (учет кон­вей­ер­но­сти про­цес­со­ра, век­то­ри­за­ции цик­лов) я вооб­ще не гово­рю (хотя их навер­ное не нуж­но учить в дан­ном кур­се). Коро­че, можешь убе­дить­ся сам – http://trpl.narod.ru/t-books/TRPL_73.pdf

      Изда­ние 2006 года ста­ло получ­ше, но срав­ни его с совре­мен­ны­ми книж­ка­ми на эту тему – http://trpl.narod.ru/t-books/_TRYAPBOOK_pdf.pdf Из бег­ло­го про­смот­ра вид­но, что они доба­ви­ли гене­ра­цию кода для выра­же­ний (по моти­вам джон­со­нов­ско­го ком­пи­ля­то­ра 1978 года) и поверх­ност­ное обсуж­де­ние реа­ли­за­ции ООП и джа­вы. Луч­ше, чем рань­ше, но все рав­но недо­ста­точ­но.

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

    • Кста­ти, Рустик. Если ты обща­ешь­ся на физ­те­хе, и там кто-то инте­ре­су­ет­ся в повы­ше­нии каче­ства их ТРЯП-а, то у меня под рукой (то бишь в MIPS-е) есть аме­ри­кан­ский ком­пи­ля­тор­ный гуру, кото­рый в моло­до­сти изу­чал рус­ский язык как язык веро­ят­ност­но­го про­тив­ни­ка :-) Я могу его попро­сить почи­тать ТРЯП-ные мате­ри­а­лы и вне­сти цен­ные ука­за­ния (хотя зара­нее пре­ду­пре­ждаю, что его рус­ский хуже сред­не­физ­техов­ско­го англий­ско­го, т.е. читать мате­ри­а­лы он может, но обсуж­де­ние с ним луч­ше вести по-англий­ски).

  • Рустем А.:

    Я есть у тебя в кон­так­тах на FB.
    А из зна­ко­мых – Саша Тор­ма­сов пре­по­да­ет на физ­те­хе.

  • Вся эта ваша «физи­ка» и «тео­р­фи­зи­ка» все­го навсе­го до 4-го кур­са. И не вхо­дит в блок «спе­ци­а­ли­за­ции» даже на ФОП­Фе.
    Нуж­но же насто­я­щим СПЕЦИАЛИСТАМ фун­да­мен­таль­ное ОБРАЗОВАНИЕ.
    А луч­ше физи­ки и тео­р­фи­зи­ки нигде мате­ма­ти­че­ские мето­ды не про­ра­бо­та­ны.
    Алго­рит­мы же и струк­ту­ры дан­ных мож­но (да и нуж­но) ещё в шко­ле начи­нать изу­чать.
    Что каса­ет­ся Уни­вер­си­тет­ских кур­сов и про­фес­со­ров.
    Не хочет наше пра­ви­тель­ство пока­мест нани­мать на пре­по­да­ва­тель­скую рабо­ту хоро­ших CS, да и сами CS от ВУЗов­ских ЗП пред­по­чи­та­ют дер­жать­ся подаль­ше.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Недопустимы спам, оскорбления. Желательно подписываться реальным именем. Аватары - через gravatar.com