Cosa comporta la ricerca in informatica teorica?


11

Sto cercando di capire cosa è coinvolto nella ricerca teorica in informatica. Cosa fanno gli informatici teorici?

So che si trascorre un tempo significativo nell'insegnamento, nella supervisione di studenti laureati, nella richiesta di finanziamenti e nei compiti dipartimentali. Metterli da parte come trascorri il tuo tempo di ricerca? Quali sono le principali attività che svolgi in genere? Immagino che tu legga articoli, pensi, incontri e scrivi documenti. Ce ne sono altri?


4
"come passi il tuo tempo di ricerca?" ... affrontando problemi che probabilmente non sarò mai in grado di risolvere :-) :-)
Marzio De Biasi,

7
È come descrivere la pittura come "mescolare vernici, montare una tela, dipingere e pulire i tuoi strumenti". In altre parole, descrive come potrebbe essere qualcuno che sta guardando, ma non ha alcuna relazione con ciò che il campo tratta :)
Suresh Venkat,

1
Altre attività: sport, escursioni, attività culturali e, più in generale, vita. Fare altre cose aiuta il tuo pensiero (e la tua salute).
babou,

7
Penso che la domanda non riguardi la filosofia della ricerca TCS o cosa ti rende un ricercatore migliore, ma davvero su che tipo di attività concrete fa un ricercatore TCS durante l'orario di lavoro. Oltre a ciò che appare già nella domanda, aggiungerei preparando discorsi, tenendo discorsi, partecipando a conferenze, revisionando i propri documenti, rivedendo i documenti di altri.
Daniel Marx,

2
Grazie. Ho qualche idea del tipo di domande di ricerca che studi. Voglio saperne di più sulle tue attività quotidiane. La ricerca nell'ingegneria del software implica lo sviluppo di programmi per computer, l'esecuzione di esperimenti, la raccolta e l'analisi dei dati, ... Voglio sapere cosa è coinvolto nella ricerca in teoria. Com'è la tua tipica giornata lavorativa?
studente universitario CS

Risposte:


12

Per quanto riguarda gli argomenti

Esistono diversi tipi di problemi che possono essere considerati informatica teorica . La parola importante qui è " teorica " (dato che tutti abbiamo qualche idea di cosa si occupa dell'informatica). Comprendere la parola teorica non è così ovvio. Per molto tempo ho assunto il significato matematico, al contrario, ad esempio, di "hacking". Ho imparato meglio dalle persone in linguistica: teoricoper loro chiaramente non significa matematico, ma basato su una teoria che può essere in qualche modo informale (anche se può essere anche matematica), ed è un corpo organizzato di conoscenza e concetti che strutturano la comprensione di fenomeni osservabili e si spera che consentano un uso deduttivo e predittivo delle conoscenze acquisite. Riduce anche la quantità da imparare e da insegnare riducendo il numero di concetti primitivi dai quali si può dedurre il resto.

La teoria può essere contrapposta alla pratica , che è come questa conoscenza viene effettivamente utilizzata per far funzionare i motori di calcolo, per costruire sistemi, ecc. Posso anche essere contraria all'applicazione che è l'uso di questa conoscenza per affrontare i problemi in altri campi della scienza e dell'essere umano attività.

Ma dubito che ci siano confini ben definiti.

Detto questo, l'informatica teorica copre diversi settori e cercherò di dare alcuni, mentre sono sicuro di dimenticare altri, e anche che altre persone potrebbero non essere d'accordo con questa organizzazione.

  • un dominio è la calcolabilità , che studia cosa può essere calcolato e come in un senso piuttosto astratto: in gran parte ciò che è descritto nella risposta di Suresh Venkat.

  • un altro è l' algoritmo , che trova mezzi efficaci per calcolare le risposte a problemi specifici, con vincoli specifici. La calcolabilità è un contesto teorico per l'algoritmo.

  • semantica (per mancanza di un nome migliore), analizza l'organizzazione concettuale dei problemi computazionali e degli algoritmi, in concetti di livello superiore, in modo da fattorizzare tecniche che si sono rivelate utili e che sono spesso riutilizzate, come il concetto di sottoprogramma, dati- strutture, moduli, nascondere informazioni. Include lo sviluppo di strumenti matematici che formalizzano adeguatamente questi concetti per consentire un ragionamento di alto livello (ad esempio la semantica di Scott). Tocca anche il modo in cui questo viene espresso, quindi la separazione e la relazione tra sintassi e semantica. I concetti dei linguaggi di programmazione ne fanno parte (sebbene il design del linguaggio sia probabilmente l'applicazione pratica di quella conoscenza). Può anche includere la relazione tra teoria delle prove e teoria dei calcoli e il ruolo moderno dei sistemi di tipi.

  • un altro argomento, che potrebbe svilupparsi più di quanto non abbia finora, è il rapporto tra calcolo e fisica fondamentale. Per esempio. esiste una relazione tra i limiti di calcolo e le proprietà del mondo fisico, come la densità di informazioni fisiche o le leggi della termodinamica. Il calcolo quantistico può migliorare un po 'la nostra abilità computazionale; potremmo sperare in qualcosa di più? Alcuni potrebbero contestare che si tratta ancora di TCS, anche se ci sono studi TCS sull'ipercomputazione .

Per quanto riguarda le attività specifiche

Salto le ovvie attività richieste dalla vita accademica. o vita scientifica nell'industria: insegnamento, pubblicazione, revisione di articoli, scrittura di domande di sovvenzione, assunzione di responsabilità accademiche, gestione di persone, consulenza a studenti o responsabili politici. Ma anche allora, non esiste una risposta semplice alla tua domanda. Qui sto solo disegnando alcuni aspetti che mi vengono in mente, ma sono sicuro che c'è molto altro da dire. E non sono sicuro di risponderti. Alcuni dei migliori scienziati hanno scritto libri sul loro lavoro e questo potrebbe darti suggerimenti sulle attività scientifiche.

La ricerca in teoria può comportare una varietà di cose, a seconda delle tue capacità e interessi che variano molto da scienziato a scienziato. È in qualche modo difficile parlarne, dal momento che ogni persona percepisce più la propria attività e interessi di quella degli altri. La maggior parte delle ricerche richiede una vasta conoscenza, poiché risultati interessanti e davvero originali spesso derivano dal mettere in relazione le cose o dal trasferimento di una tecnica da un (sotto) campo a un altro o dall'ottenimento di diverse visioni tecniche dello stesso problema. Quindi è importante imparare quanto più in profondità quanto in profondità. Ricorda che mentre hai il tempo e le capacità per farlo come studente, o come facoltà / scienziato junior, entrambi saranno ridotti in seguito, a causa delle responsabilità e della vita in generale. Insegnare ciò in cui non sei specializzato può essere un modo per continuare a imparare.

Il tipo di lavoro che le persone possono fare può variare molto, perché fortunatamente le persone sono molto diverse, con una grande varietà di interessi e capacità tecniche, completandosi a vicenda. Alcune persone risolvono i problemi. Esaminano le domande teoriche o pratiche sollevate da altre persone o da sole e cercano di risolverle o si avvicinano a una soluzione completa o parziale. Altre persone saranno in grado di strutturare le conoscenze esistenti, mettere in relazione le cose e trovare nuove domande da porre. Entrambi sono essenziali.

È importante trovare prove più semplici dei risultati tecnici, o presentazioni più semplici di teorie o fondere concetti. Generalizza i risultati, riduce il numero di cose da imparare, enfatizza le idee essenziali e forse porta nuova comprensione. Poiché il nostro tempo di apprendimento è limitato, i progressi sono possibili solo quando condensiamo la conoscenza.

Un semplice esempio è lo studio di famiglie astratte di linguaggi formali. Quando la teoria del linguaggio è stata sviluppata per la prima volta, le proprietà di chiusura in varie operazioni sono state dimostrate più e più volte per ogni famiglia di lingue (regolare, senza contesto, RE, ...), con tecniche ad hoc a seconda della famiglia. Quindi si è verificato che queste proprietà di chiusura avevano relazioni intrinseche indipendentemente dalle famiglie interessate e sono state studiate come tali. Oggi, dobbiamo solo verificare alcune delle proprietà di chiusura più semplici per una determinata famiglia e otteniamo "gratuitamente" tutta una serie di altre proprietà.

Un altro punto importante è che non esiste una distinzione così netta tra lavoro teorico, pratico o sperimentale. Una buona teoria può portare all'implementazione di sistemi in grado di meccanizzare la risoluzione dei problemi. E ci vorrà un buon teorico per implementare un tale sistema, con un mix di lavoro teorico e pratico, compresa l'implementazione del sistema o la progettazione del linguaggio. Vengono in mente molti esempi, come i sistemi di sintesi di prova e / o di programma, un linguaggio specializzato per sistemi paralleli sincroni, un linguaggio algoritmico limitato per il quale la complessità computazionale può essere sistematicamente derivata. Non solo è importante essere in grado di produrre tali sistemi pratici, che rendono i risultati teorici più ampiamente disponibili e utilizzabili, ma è spesso molto importante per il teorico utilizzare con competenza questi sistemi, se non altro per scaricare le sue parti ora meno creative lavorare o contribuire allo sviluppo e all'estensione di questi sistemi.

Un altro aspetto è quello di poter confrontare gli approcci teorici mediante la sperimentazione pratica. Qui, il problema è quello di confrontare diverse tecniche per raggiungere lo stesso obiettivo. Il confronto delle implementazioni è spesso insignificante in quanto la loro efficienza dipende spesso dal linguaggio di programmazione o dalle capacità di programmazione dell'attuatore. Ma se possono essere espressi tutti in un quadro teorico comune, a volte è possibile confrontarli sperimentalmente all'interno di quel quadro. Qui teoria e pratica si sostengono a vicenda, come spesso accade nella scienza. La pura analisi teorica non è sempre facile da raggiungere. Inoltre, l'analisi sperimentale, se ben condotta, può mostrare comportamenti inaspettati che possono motivare una migliore analisi teorica.

Il mondo non è semplice o chiaro. Ecco perché può essere divertente, con spazio per tutti i tipi di abilità. Mettere in discussione le proprie conoscenze e rispondere alle domande degli altri, con qualunque mezzo.

Due cose spesso dimenticate: etica della scienza e spiegazione alle persone. Entrambi sono essenziali e difficili.


come il riferimento alla teoria rispetto all'esperimento, ma in realtà sembra esserci una separazione abbastanza rigorosa tra il lavoro teorico / sperimentale nel TCS che favorisce / enfatizza il primo almeno su questo sito .... il lavoro empirico non è grande in confronto e sta lentamente diventando più accettato ....
vzn

8

In un certo senso, la navigazione in questo sito ti dirà il tipo di domande a cui teoricamente gli scienziati informatici pensano (a basso livello). A un livello molto alto, l'informatico teorico pone domande sui fondamenti matematici del calcolo:

  • cosa possiamo calcolare?
  • come possiamo calcolarlo?
  • Quanto velocemente ?
  • cosa succede quando abbiamo risorse limitate da calcolare?
  • quali sono i limiti su ciò che possiamo calcolare?

A partire da queste domande, sorgono tutta una serie di altri argomenti, toccando aree di applicazioni, matematica, altre parti dell'informatica e così via.


Mi sembrano le domande chiave in "Teoria A" (calcolabilità, complessità, algoritmi), non in "Teoria B" (logica, semantica, teoria del linguaggio di programmazione). (Vedi cstheory.stackexchange.com/q/1521/989 sulla terminologia).
Blaisorblade,

4

mi è venuto in mente che i resoconti di prima mano potrebbero essere utili, ma quelli sembrano essere piuttosto rari in CS (al contrario di per esempio matematica, scrittura biografica / simile a un libro di memorie, ecc.). qui ci sono due riferimenti online che rispondono alla domanda e possono essere utili. sono più rivolti alla vita degli studenti di dottorato e orientati alla CS, ma la maggior parte porterà alla ricerca a livello di professore (oltre all'insegnamento, ma che fanno anche molti dottorandi). [e in qualche modo i professori possono essere visti come scrivere continuamente / ripetutamente molte "mini-" tesi di dottorato (articoli di ricerca) o in alcuni casi "super-" tesi di dottorato (libri) sulla loro carriera.] ci sono anche molti libri decenti su l'argomento ne aggiungerà un po 'se indichi che sarebbe una risposta accettabile per la tua domanda.

  • Come fare ricerca al MIT AI Lab "da un gruppo di studenti universitari MIT AI Lab attuali, ex e onorari" / David Chapman, Redattore

    Questo documento presumibilmente pretende di spiegare come fare ricerca. Forniamo euristiche che possono essere utili per acquisire le competenze specifiche necessarie per la ricerca (lettura, scrittura, programmazione) e per comprendere e godere del processo stesso (metodologia, selezione di argomenti e consulenti e fattori emotivi).

  • Come diventare un dottorando di successo (in Informatica) Mark Dredze (Johns Hopkins University), Hanna M. Wallach (Università del Massachusetts Amherst)


anche un bel po 'di vita quotidiana da ricercatore può essere ricavata da alcuni blog di informatica scritti con "sguardi interni"
vzn
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.