Elenco dei libri introduttivi TCS per coloro che non sanno molto su TCS [chiuso]


10

Se devi raccomandare libri per qualcuno che vuole saperne di più sul TCS a livello introduttivo come teoria degli automi, algoritmi, teoria della complessità, ecc., Quale libro consiglieresti a coloro che sono interessati e vogliono saperne di più TCS, ma non hai avuto alcuna esposizione ad esso?


2
Penso che questa dovrebbe essere una domanda CW.
Gigili

1
Vedi questa meta discussione su come gestire questa domanda.
Raffaello

3
cstheory.SE ha una lista avanzata troppo
Uli


2
@Gigili No. Gli elenchi di libri erano in precedenza CW, ma non è più possibile. Si prega di leggere il post sul blog che ho collegato.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


9

Se desideri avere un'introduzione generale senza approfondire i dettagli tecnici, suggerisco Algorithmics: The Spirit of Computing di David Harel . Dopodiché, questa è la mia lista preferita:

  • Introduzione alla teoria della computazione di Michael Sipser : la migliore introduzione alla teoria, alla calcolabilità e alla complessità degli automi.
  • Algorithms di S. Dasgupta, CH Papadimitriou e UV Vazirani: la più intuitiva introduzione agli algoritmi con una maggiore attenzione all'intuizione rispetto alle prove tecniche.
  • Perle di programmazione di Jon Bentley : questo non è un libro di testo sugli algoritmi, ma dimostra magnificamente come utilizzare le tecniche di progettazione degli algoritmi per risolvere problemi reali che hanno irritato i veri programmatori. :-) Questo potrebbe essere un buon inizio se hai qualche conoscenza preliminare sulla programmazione.

DPV non è ancora in stampa; è generalmente noto?
Raffaello

A causa del punteggio di questa risposta, ho incluso le risposte in una risposta aggregata . Per favore, considera di rimuovere la tua risposta per motivi di chiarezza.
Raffaello

@Raphael DPV è in stampa da diversi anni, ma è ancora ben disponibile online. Ho cercato di non collegarmi a un sito Web commerciale come Amazon.
Dai

@Dai: capisco. La pagina a cui ti colleghi dice "Questa è una penultima bozza del nostro libro di testo che presto apparirà", quindi la mia confusione.
Raffaello

7

Trovo il libro di Clarke un po 'troppo pesante per qualcuno che non ha esperienza nel TCS. Conosco (di persona) dottorandi che trovano difficile capire il libro.
Dai

@Dai, probabilmente hai ragione, l'ho cambiato in Principi di controllo modello di Baier
Daniil

Si può capire il controllo del modello senza basi nelle logiche e / o automi?
Raffaello

1
Il libro del drago è sicuramente un buon riferimento; è abbastanza teorico, però? (Onestamente non lo so)
Raffaello

@Raphael "Principles" fornisce in qualche modo un'introduzione alla logica (almeno alcune conoscenze necessarie) e agli automi. È anche un libro abbastanza grande, ~ 980 pagine. Per quanto riguarda The Dragon Book, ho pensato che i compilatori fossero un'area piuttosto teorica, no?
Daniil

6

Per la matematica necessaria nell'analisi dell'algoritmo, raccomando il solo e unico GKP:

Concrete Mathematics di Graham, Knuth, Patashnik
Un trattamento completo e di alta qualità praticamente di tutta la matematica di cui avrete bisogno negli algoritmi (di base). È una lettura divertente e include una vasta gamma di esercizi (e soluzioni).


Ho provato a leggere questo libro, ma non mi è piaciuto, perché mi è sembrato tutto molto ... goffo e raggruppato. Non ho sentito la bellezza della matematica lì. Confrontalo con lo schema della teoria degli automi di Sipsers o con i libri sulla logica di Smullyan o persino con l'algebra astratta di Dummit & Foote. Forse sono solo io, però.
Daniil

Io secondo Daniil. È una raccolta di strumenti eccellenti per i teorici. Ma è troppo secco e tecnico per essere divertente per i principianti. Mi piacciono molto i libri che ho menzionato sopra poiché sembrano avere le loro anime. Leggono come se qualcuno ti stesse raccontando storie, interessanti.
Dai

Sfortunatamente, non copre l'induzione strutturale, la coinduzione, la teoria dei domini e tutte le cose necessarie per il TCS di tipo B di teoria.
Dave Clarke,

@DaveClarke: corretto. Non sono sicuro che mi aspetto che un libro di matematica contenga qualcosa del genere. Ma poi, GKP dovrebbe essere un libro di matematica cs. Non contiene nemmeno logiche, quindi dovrei riformulare un po '.
Raffaello

2
@DaveClarke puoi per favore consigliarci alcuni libri sulla matematica della teoria B?
Daniil

5

Algorithms 4. Edizione R. Sedgewick

Un'introduzione all'analisi degli algoritmi P. Flajolet, R. Sedgewick

Introduzione alla teoria, alle lingue e al calcolo degli automi JE Hopcroft, JD Ullman, (R. Motwani)
La prima edizione del 1979 ha risultati più teorici che mancano nella seconda edizione del 2001. Non ho ancora visto il terzo Ed.

Introduzione alla teoria del linguaggio formale MA Harrison
È del 1978, ma mi piacerebbe ancora vederlo nell'elenco.

Logicomix: un'epica ricerca della verità A. Doxiadis, CH Papadimitriou
Perché è assolutamente fantastico!

Ancora 1979
Garey e Johnson's Computers and Intractability: A Guide to The Theory of NP-Completeeness

Mi piacerebbe avere TAoCP nella lista ma temo che l'approccio meticoloso di Don Knuth non sia nulla che possa essere considerato "introduttivo". Purtroppo...


Logicomix è certamente un gioiello, senza dire che gli altri non lo sono.
Dave Clarke,

Non mi piace molto il modo in cui Logicomix ha descritto i Logici come persone "pazze". Le idee nella logica, quando spiegate nel modo giusto, sono molto semplici e semplici, e non proprio così "pazze".
Dai

1
@Dai Dai un'occhiata alle vite di persone straordinarie come ad esempio Gödel, Wittgenstein, Nash, ecc. Erano ... beh straordinarie.
uli

Quali di questi sono davvero a prova di principiante?
Raffaello

@Raphael IMHO tutti loro, altrimenti non li avrei pubblicati qui. Alcuni potrebbero avere una ripida curva di apprendimento, ma penso che vada bene.
uli

4

Se sei del tutto nuovo nel campo del TCS, l' Introduzione alla teoria del calcolo di Sipser è sicuramente il libro migliore per iniziare. Ho letto altri libri introduttivi e nessuno di loro, secondo me, si avvicina al modo di Sipser di portare la questione.

Altri libri teorici più specifici e specifici sono:


Già menzionato sopra.
Dave Clarke,

@DaveClarke Avevo intenzione di aggiungere più risorse all'elenco come ho fatto ora con la mia modifica, ma volevo anche sottolineare quanto sia bello il libro di Sipser citandolo di nuovo! :-)
codd

1
Il libro di Pierce è un gioiello. Vorrei che fosse stato in giro quando ho fatto il mio dottorato di ricerca (in tipi).
Dave Clarke,

@DaveClarke Attualmente lo sto usando per la mia tesi di laurea su raccomandazione del mio consulente e ne sono anche molto colpito!
codd

1
Grazie per il riferimento, lo darò un'occhiata più tardi oggi. Vedo che sei un professore alla KUL, vengo lì l'anno prossimo per studiare Secure Software (software Veilige). Che piccolo mondo.
codd

3

Alcuni buoni libri che trattano la parte Teoria B di TCS:

  • Logica in CS : Logica in Informatica: modellazione e ragionamento sui sistemi di Michael Huth e Mark Ryan.
    Ampia copertura di vari usi della logica nell'informatica. Circa il 3 ° anno di livello universitario.

  • Il calcolo Lambda : Lambda-Calculus e Combinatori. Un'introduzione di J. Roger Hindley e Jonathan P. Seldin.
    Presenta il calcolo lambda, che è un ingrediente essenziale nelle basi dei linguaggi di programmazione. Circa il 3 ° anno di livello universitario.

  • Introduzione alla teoria dei domini : Introduzione a Lattices and Order (2a edizione) di Davey, BA e Priestley, HA Cambridge University Press. (2002).
    Tratta un argomento molto utile, specialmente se hai intenzione di lavorare con la semantica. È un po 'più matematico rispetto agli altri argomenti, ma i primi capitoli sono sicuramente di livello universitario avanzato.

  • Semantica : semantica con applicazioni: un antipasto di Hanne Riis Nielson e Flemming Nielson.
    Un'introduzione davvero piacevole alla semantica del linguaggio di programmazione. Piuttosto che approfondire un particolare formalismo, offre un'ampia presentazione e include applicazioni generalmente non considerate in altri libri sulla semantica. Potrebbe essere utile per gli studenti del secondo anno.


Non conosco nessuno di quelli nemmeno per reputazione, quindi non posso dire se siano buoni (anche se sono propenso a crederci sulla parola). : /
Raffaello

1
Ho aggiunto una descrizione di ogni libro. Sono tutti buoni.
Dave Clarke,

3

Questa è una risposta aggregata che contiene libri di risposte con punteggio almeno cinque. Si prega di discutere il suo contenuto nella chat .

Algoritmi e strutture dati

  • Introduzione agli algoritmi di Cormen, Leiserson, Rivest, Stein (3a edizione 2009)
    Un trattamento completo di algoritmi di base e strutture di dati e la loro analisi senza scavare troppo in profondità.
  • Algorithms di Dasgupta, Papadimitriou, Vazirani (2006)
    L'introduzione più intuitiva agli algoritmi con maggiore attenzione all'intuizione rispetto alle prove tecniche.

Computabilità e complessità

Linguaggi formali e automi

Teoria applicata

  • Principles of Model Checking di Baier, Katoen (2008)
    Libro voluminoso che può essere utilizzato come introduzione completa alla verifica dei modelli.
  • Programming Pearls di Jon Bentley (2nd ed 1999)
    Non è un libro di testo sugli algoritmi ma dimostra magnificamente come usare le tecniche di progettazione degli algoritmi per risolvere problemi reali. Potrebbe essere un buon inizio se hai qualche conoscenza preliminare sulla programmazione.

Questo non risponde alla domanda o, se è pensata, non è una buona risposta. Vuoi dire che qualcuno che inizia TCS deve leggere tutti questi libri? In caso contrario, come avrebbero scelto? Tieni presente che, secondo la tua regola, è probabile che questa risposta cresca fino a contenere centinaia di libri
il SO di Gilles

@Raphael Sei educato chiedere a qualcun altro di rimuovere la propria risposta? Di solito il richiedente può fare il lavoro di aggregazione delle sue risposte preferite modificando il proprio testo di domanda, ma non ho mai visto nessuno costringere un'altra persona a cancellare il proprio post per creare la propria risposta. Questo scambio di cs sta diventando strano con questi comportamenti narcisistici.
Dai

@Raphael: Renderlo un CW non rende giusto chiedere a qualcuno di cancellare la propria risposta. È come dire che scriverò un libro / documento di indagine (che pubblicherò online gratuitamente), quindi vado in giro e chiedo a tutti gli autori di cui cito di eliminare i loro articoli per evitare confusione.
Dai

@Raphael Non vedo da nessuna parte nelle licenze CC dire che il mio lavoro alla fine verrà richiesto rimosso da qualcun altro. Non so che tipo di fantasia hai con SE, ma sicuramente non è Wikipedia. So che stai lavorando duramente per "moderare" questo sito web, ma ti preghiamo di rispettare anche la libertà di parola e privacy di qualcun altro, e semplicemente lasciare che i voti su / giù si occupino del resto. Penso che l'obiettivo di cs SE sia quello di fornire un forum più amichevole di cstheory SE ai principianti, ma il micro livello di gestione che hai proposto qui ha peggiorato le cose.
Dai

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.