Come posso iniziare con CS teorico?


35

Sono una matricola che studia informatica e so già che voglio andare in università con focus sulla scienza teorica. Ho già letto alcuni dei documenti citati in questa domanda e questa domanda mi ha convinto ulteriormente.

Cosa dovrei fare ora , come studente universitario, per essere coinvolto nel campo? Cosa posso fare per prepararmi alla ricerca sul campo?


7
Questo non è abbastanza significativo per essere pubblicato come risposta, ma considera anche di prendere una copia di "Introduzione alla teoria del calcolo" di Michael Sipser. Anche se non hai tempo per studiare da solo con quel libro, è un ottimo riferimento se c'è qualcosa che devi cercare che non sia chiaramente spiegato su Wikipedia.
Philip White il

2
Non so come funziona la procedura, ma mi piacerebbe vederlo come wiki della community.
Chazisop,

3
contrassegna la domanda per l'attenzione del moderatore e ci occuperemo di essa.
Suresh Venkat,

2
@Bood Person: OP non può fare una domanda in senso orario, solo i moderatori possono farlo .
Kaveh,

2
@Bood Person: come menziona Kaveh, i poster originali non possono più pubblicare post in CW (e nessuno può avere privilegi di modifica). Solo le mod possono farlo. non era prevista alcuna offesa.
Suresh Venkat,

Risposte:


29

Consentitemi di fornire una risposta dall'altra parte. Ho avuto alcuni studenti universitari che lavorano con me. L'esperienza è stata mista: con alcuni, ho pubblicato articoli e ho lavori in corso, e con altri, non siamo mai veramente partiti da nessun tipo di inizio.

È bello sapere cosa vuoi fare. Come studente universitario, ecco su cosa dovresti concentrarti:

  • Costruisci i "muscoli" matematici che ti aiuteranno quando inizi a lavorare seriamente sui problemi
  • Esplorare diversi aspetti della CS teorica per avere un'idea dell'area e capire quali tipi di problemi / aree trovi interessanti
  • (a seconda della zona) elaborando alcuni enigmi, magari risolvendo alcuni esercizi e risolvendo una domanda di ricerca.

Trova un professore che ti guidi e METTI IN TEMPO! La cosa più difficile che dovrai affrontare è creare il tempo aperto per pensare a problemi in mezzo a compiti in classe, compiti ed esami. Ma devi riservare blocchi di tempo per il tuo studio e ricerca indipendente, altrimenti sarà molto difficile fare qualsiasi tipo di progresso. Il modo in cui lo fai dipende da te: forse puoi trovare un professore che ti incontra una volta alla settimana e fissare obiettivi intermedi per te, o forse puoi fissare un obiettivo a lungo termine (lavorando attraverso esercizi X da un testo) e lavorare costantemente su quella.


4
Bella risposta! "devi riservare blocchi di tempo per il tuo studio indipendente": questo mi ricorda la mia esperienza. Ero uno studente di matematica pigro, poi in master ho scoperto un bel problema TCS (incentrato sulla funzione di castoro occupato). Ho iniziato a lavorare sul mio tempo libero su di esso con la guida di uno dei miei prof. Non ho mai trovato qualcosa di interessante sul problema, ma 12 anni dopo, ho scritto più di 15 articoli con lui (ma non è mai stato il mio dottore / consulente principale, solo un mentore "esterno").
Sylvain Peyronnet,

1
La risposta di Suresh è fantastica! Per l'OP: Costruire "muscoli" matematici significa abituarsi al linguaggio e agli strumenti della matematica (combinatoria, teoria dei grafi, analisi ecc.) E anche abituarsi a dimostrare i teoremi! (E questa è la parte davvero eccitante! :-)
Jay,

19

Sono attualmente uno studente di dottorato e non un professore, quindi il mio suggerimento deriva dalla mia (limitata) esperienza personale come studente laureato.

Quando ero uno studente universitario, ho sempre lavorato come assistente di ricerca in estate con diversi prof nel mio dipartimento. Personalmente credo che l'unico modo per capire se TCS è davvero per te o no è quello di lavorare su problemi concreti e vedere cosa ti può divertire di più. Mi ci è voluto un po 'di tempo per trovare un prof e un argomento che mi piacevano. C'è anche un aspetto "sociale" nella ricerca e diversi professionisti hanno abitudini di lavoro e di supervisione diverse, e quindi questi lavori di ricerca estivi ti daranno un'idea migliore della qualità che desideri di più da un supervisore in futuro.

Ci sono molti campi interessanti in Informatica e TCS è solo uno di questi. Quindi è sempre meglio tenere aperte le opzioni e parlare con diversi professionisti. È molto importante specializzarsi quando stai facendo dottorato, ma come studente universitario penso che il consiglio di Mark Braverman sia estremamente rilevante:

"Cerca di imparare il più possibile. [...] È più difficile in seguito!"

[Mark ha cercato di iscriversi a molti corsi (ben al di sopra del limite) ed esplorare diverse aree della matematica e dell'informatica quando era studente.] Prova a frequentare lezioni e seminari su diversi argomenti nel tuo dipartimento. Quando sei nei tuoi anni superiori, dovresti anche chiedere l'autorizzazione a controllare i corsi di laurea relativi al tuo interesse.

Inoltre, a seconda se ti stai specializzando in matematica o CS, devi anche pianificare i corsi che dovresti seguire per prepararti una solida base di base. Se sei un studente di matematica, allora dovresti seguire più corsi CS in algoritmi e complessità che ti danno una mente più "algoritmica". Se sei un laureato in ingegneria o CS, è sempre una buona idea imparare alcuni corsi di matematica di base in:

  • combinatorio
  • Probabilità e statistica
  • Algebra lineare avanzata
  • Algebra astratta
  • Analisi

È vero che non puoi mai imparare abbastanza matematica e che dovresti imparare a raccogliere velocemente nuove matematica / metodi / tecniche ogni volta che è necessario. Ma un solido background ti darà sicuramente un inizio più facile in TCS.

Ti auguro buona fortuna e successo!


6
+1: bella risposta. Aggiungerò che prendere / audire corsi non teorici CS o non CS è anche una buona cosa, ti apre la mente per possibili problemi su cui lavorare, non sai mai dove si presenta una bella domanda di teoria, quindi tieni gli occhi aperti . :)
Kaveh,

Consiglieresti "Advanced Linear Algebra" di Steve Roman per lo studio autonomo laureato?
Jacob

2
@Jacob: il libro di Roman è sicuramente consigliato da molte persone. È davvero avanzato e copre argomenti interessanti come moduli, convessità, geometria affine, prodotti tensore, ecc. Ma la linea di fondo è che dovresti sempre scegliere qualcosa che sia adatto ai tuoi gusti e al tuo background! Quindi scansionare un mucchio di libri in biblioteca prima di decidere è sempre una buona idea (almeno per me).
Dai Le

11

Come studente di matricola, la tua scommessa migliore è esprimere questo interesse ai tuoi professori nel dipartimento CS, che possono aiutarti (fornendo a questo aiuto una grande parte del loro lavoro!). La maggior parte di loro, mi aspetterei, sarebbe felice di aiutare uno studente universitario che era interessato alle stesse cose che sono. Per lo meno, possono darti buoni consigli su quali lezioni prendere nel tuo istituto e consigli personalizzati per la tua situazione.


10

Molte altre persone sembrano dare vari consigli. Per aggiungere alla saggezza, lasciatemi dire questo: non esiste una cosa come conoscere troppa matematica (a meno che non decidiate di fare invece matematica pura). Scherzi a parte, conosci la tua analisi, la combinatoria, l'algebra, forse qualche teoria dei rappresentanti, alg top, e così via. Rende molto più semplice la lettura di molte aree della teoria CS :)


2
ottimo consiglio. Lo dico a tutti gli studenti che vengono a parlare anche con me.
Suresh Venkat,

7

Hai fatto un ottimo primo passo! In secondo luogo, parlerò di parlare con un professore nel tuo dipartimento. Se sei interessato alla teoria, trova chi insegna i corsi di teoria e parla con loro. Potrebbero avere alcuni problemi che non richiedono troppo background per iniziare. Nella mia esperienza personale, ci sono più problemi nella teoria dei grafi e nella combinatoria che sono più avvicinabili della teoria, ma costruiscono ancora le stesse capacità di ricerca. Non aver paura del tuo dipartimento di matematica!

Può anche aiutare a iniziare a essere coinvolto nella comunità, soprattutto ponendo e rispondendo alle domande qui. Aiuterebbe avere il tuo nome utente come il tuo nome in modo che sappiamo chi sei.


6

Sono uno studente quasi laureato. Quindi le risposte alla tua domanda sono interessanti anche per me, ma forse la mia piccola esperienza personale può aiutare.

Ecco la mia lista (in ordine casuale) di suggerimenti su cosa puoi fare:

  • Prima di tutto leggi tutti gli articoli / libri / appunti delle lezioni che riesci a trovare. Ma è anche importante applicare le tue conoscenze agli esercizi e, successivamente, ai problemi aperti! Alcuni dei miei tutor dicono sempre: non solo i tuoi muscoli hanno bisogno di un allenamento continuo :)
  • Leggere / porre / rispondere alle domande su questo sito (o su qualche altro sito SE correlato) è un buon modo per imparare a lavorare con argomenti di ricerca in TCS o matematica.
  • Provo a leggere molti blog TCS di un noto ricercatore. Gli argomenti riguardano sia i risultati attuali sia quelli storici.

Avresti qualche link a quei blog?
SH7890,

2

Penso che la cosa più importante sia esplorare il più ampiamente possibile per scoprire quali aspetti di TCS ti entusiasmano davvero. Nel corso di questa esplorazione potresti scoprire che i problemi che ti incuriosiscono di più sono le intersezioni di TCS con altri campi (ad esempio economia) o applicazioni di TCS (ad esempio a reti di computer) o argomenti TCS che fanno anche parte di altre aree in CS come la teoria dell'apprendimento computazionale o statistico. Cavolo, è anche possibile che tu possa cambiare la tua specializzazione in matematica o fisica o qualcosa di simile se i tuoi interessi ti portano in quella direzione.

Il mio punto è che come matricola hai davvero l'opportunità di esplorare ampiamente con meno pressione di quanto faresti come studente o professore. E non allarmarti se non finisci negli argomenti "soliti sospetti" di TCS.

Naturalmente sarebbe l'ideale se vai "in profondità" in alcune aree, apprendi solide tecniche e pubblica grandi risultati.

E se finisci per diventare un esperto in un nuovo campo caldo prima che diventi mainstream, probabilmente sarà grande per la tua carriera.

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.