it-swarm-eu.dev

Nejobtížnější předmět / teorie v informatice?

Jaký je nejobtížnější předmět/teorie CS, který jste studovali, ale důležitý pro dané pole? A důvod prosím?

17

"V oblasti informatiky jsou 2 těžké problémy: ukládání do mezipaměti, pojmenování a chyby typu off-by-1"

37
Brian Carlton

Upřímně řečeno, konstrukce kompilátoru!

35
Pemdas

Návrh a analýza algoritmů

Myslím, že tato otázka závisí na učiteli, kterého jste měli, a na tom, jak byl tento předmět uspořádán ve vaší kariéře.

Analytické algoritmy mohou být tak těžké, jak někdo chce. Vezměte v úvahu, že existují nevyřešené problémy a nejen to: problémy, které nelze vyřešit.

Jde o to, že můžete mít problém, a pokud víte, že to nelze vyřešit, je to perfektní. Ale co když ne? Můžete strávit spoustu času pokusem se ukázat, že je NP-Complete, nebo se pokusit najít polynomiální řešení času.

Prokázání úplnosti NP není snadné. Ano, je známo mnoho problémů, ale jde o nalezení redukcí, které prokazují, že je NP-Complete. A co když strávíte spoustou hodin/dní/měsíců pokusem o jeho předvedení a lze to vyřešit v polynomickém čase? :)

Existují také další předměty, jako kompilátory, teorie skupiny a primitivní rekurzivní funkce, které mohou být tak těžké, jak si to předmětový plán nebo učitel přeje; )

22
Oscar Mederos

Rozpoznávání vzorů tj. Umělá inteligence. To se týká inteligentních výpočtů spolu s dalšími nástroji pro rozpoznávání vzorů, jako je optické rozpoznávání znaků, hlasový převod textu, identifikace obličeje atd.

Mnoho z „skvělých“ věcí, které můžete dělat nebo si přejete, aby s počítači bylo možné, se spoléhá na tyto algoritmy a my se pokoušíme je zdokonalovat po celá desetiletí bez velkého úspěchu.

18
Malfist

Můj výběr je teorie počítatelnosti

(Hmm ... možná to není tak důležité, ale určitě to bylo obtížné)

12
Maglob

V oblasti informatiky jsou jen dva těžké problémy: zneplatnění mezipaměti a pojmenování věcí. - Phil Karlton

10
Gareth

teorie kategorií (diskrétní matematika), ale stojí za to

7
Steven A. Lowe

kryptografie

Pokud to uděláte jen trochu špatně, může to stát společnost miliony.

6
davidhaskins

Operační systémy, zejména ta část, která má co do činění s navlékáním.

A důvod není proto, že bylo těžké přimět 5 filozofů, aby jedli pizzu vidličkou. Důvodem je to, že psaní vícevláknového kódu je samo o sobě obtížné a pro člověka (alespoň podle mého muže - podle mé manželky) nutně obtížné spočítat jeho výpočet.

4
Peter Turner

Numerická analýza

Není to příliš těžké na problémech s hračkami, které jste dostali během kurzu, ale jakmile začnete uvažovat o skutečných problémech, změní se to na vážné dřiny.

3
Peter Taylor

Teorie front

Technicky jde o odvětví matematiky, ale v CS je to velmi důležité.

Téměř vše v CS je založeno na frontách (viditelných (zřejmých) a neviditelných (ne tak zjevných nebo implikovaných)).

V prvních dnech CS byly fronty zřejmé.
Fronta programů (každý programuje balíček karet).

V současné době nejsou fronty tak zřejmé. Například internet: síť s přepínáním paketů, ale pakety tvoří fronty a směrování paketů jsou formou minimalizace front.

3
Martin York

I já hlasuji pro návrh překladače. Zejména tam, kde přichází část DFA a NFA. Také nejsem tak jasná o problémech a tak NP).

3
Yuva

Interpretace požadavků klienta, když klient opravdu neví, co chce. To se neučí na vysoké škole a je to jedna z nejdůležitějších dovedností.

2
Steven Striga

V této oblasti je mnoho nepříjemných témat, ale moje výběry pro pouhou přetrvávající obtížnost jsou ta, která se týkají Global System Properties. Příklady tohoto obecného tématu zahrnují:

  • Bezpečné a bezvřetenové vícevláknové zpracování
  • Bezpečnostní

To je těžké, protože po něčem, co existuje, jen když je vše v pořádku; potřebujete globální vlastnost systému a přitom prakticky všechny dostupné nástroje (a všechny ty, které se podle mých zkušeností přizpůsobují skutečným problémům), jen skutečně dělají místní úvahy . Je to proces přechodu od uvažování o kusech programu k celému Shebangu, který je těžký, zejména proto, že je zcela možné mít kusy, které jsou samy o sobě správné, ale kde stále existují drobné chyby, protože součásti jsou nesprávně uspořádány; chyby mohou být nežádoucími vznikajícími vlastnostmi…

1
Donal Fellows

Konstrukce překladače. Těžké, ale musí pochopit pojmy, které jsou za nimi

1
Nipuna

Kernel Design někdo? Opravdu nevím, jak se to dělá a jaké jsou cílové vlastnosti operačního systému, ale pro mě musí být přemýšlení o návrhu jádra skličujícím úkolem.

Také přemýšlím o počítačové zabezpečení; Opravdu nevím, co dělá systém nebezpečným, kromě samozřejmě zjevného přetečení vyrovnávací paměti, injekcí XSS a SQL.

Nejsem si jistý, ale zdá se, že některé algoritmy jsou také nebezpečné; podívejte se na projekt MetaSploit, obsahuje seznam všech typů a druhů narušení bezpečnosti: můžete vidět, že existuje mnoho způsobů, jak může být program chybný.

1
jokoon

Osobně byl můj Formal Logic. Začínat bylo těžké, ale jakmile se vám pravidla podaří a dokážete s nimi hrát dost, váš mozek jde Logic++;, což je ve vývoji velmi dobrá věc.

Jako vedlejší poznámku odpovídám na otázku přímo - rozhodně to nebyl ten nejtěžší předmět, když jsem udělal titul, ale pravděpodobně to byl nejtěžší předmět „použitelný v reálném životě“.

1
Kyle Rozendo

Návrh a analýza algoritmů. Není to tak moc, že ​​je těžké porozumět a analyzovat známé algoritmy, je to, že navrhování a analýza nových algoritmů pro těžké problémy je obtížné a vyžaduje široké porozumění mnoha oblastem a praxi při aplikaci mnoha různých techniky.

0
philosodad

Líbí se mi vaše odpovědi (a nezapomněl jsem je upgradovat), jako kompilátor, jádro atd., Ale většina programátorů tyto problémy nikdy nenapadla. Je tu o něco jednodušší, ale běžnější problém: souběžnost - vlákna, zamykání. Je velmi snadné napsat program, který vytváří magické chyby, pokud v souběžné architektuře uděláme i malou chybu.

Takže říkám, že to není nejtěžší problém v oblasti výpočetní techniky, ale protože se běžně používá, je to nebezpečný problém.

0
ern0

Optimalizace algoritmu je náročné téma.

0
Rachel

Z notace/formální metody používané k poškození mozku na vysoké škole. Hlavně proto, že jsem to nenáviděl. Hard je mnohem snazší, když si užíváte, co děláte, a mnohem těžší, když to neuděláte.

0
Ian

Jaký je nejobtížnější předmět/teorie CS, který jste studovali, ale důležitý pro dané pole?

Diskrétní matematika.

Bylo to obtížné, protože teorie spolu navzájem velmi volně souvisejí, ale používají se v CS. Myslím, že je příliš mnoho zapamatování ...

Důkaz indukcí, velký O, rekurze, rozdělte se a ovládejte, teorie grafů, bla bla ... argh!

Kompilátor pro mě byl snadný, protože jsme museli vzít Teorii automatů. ^^

0

Programování omezení., které se zabývá kombinatorickými problémy, NP-kompletními problémy.

0
Sorantis

Manažerské informační služby Během mého vysokoškolského období jsem měl každý semestr jeden manažerský předmět, což mě naprosto rozzuřilo.
Tvrdý! dobře předměty jako Compiler Design, OS Design atd. jsou těžké, ale jsou opravdu zajímavé a náročné. Opravdu jsem zmatený v předmětech, jako je Management Information System/Services atd., Protože jsou plné nudy a musíte projít spoustou teorie.

0
Ranger

Pokud pracujete v C/C++ ukazatele jsou nejdůležitější koncept znát. Ale nějak jsem to na vysoké škole nikdy úplně nepochopil.

0
Manoj R

Objektově orientované programování

Je to pravděpodobně proto, že jsem si prořízl zuby na FORTRAN a APL, ale posun od přísně procedurálních jazyků k objektům je něco, s čím jsem roky bojoval. Nepomáhá, aby takzvané „odborníci“ psali vzájemně si odporující články a návody o tom, co to znamená být objektově orientovaný a nejlepší/správné způsoby vytváření objektově orientovaných programů.

0
oosterwal