Materiały dla matematyków chcących dowiedzieć się więcej informatyki

14

tło :

Kończę studia magisterskie z matematyki i rozpocznę doktorat z logiki w sierpniu. Im więcej logiki studiuję, tym bardziej teoretyczna jest informatyka, np. Teoria rekurencji, rachunek lambda, ale leżące u podstaw CS jest szczotkowane pod dywan. Moje główne obszary zainteresowań - teoria zbiorów i teoria kategorii - mają również zastosowania w informatyce, ale do tej pory studiowałem je tylko z punktu widzenia czystej matematyki.

Problem:

Brak jakiegokolwiek zaplecza informatycznego utrudnia czasem dostrzeżenie motywacji lub intuicji stojących za tym, co się dzieje, lub tego, jak można to zastosować. Radzę sobie, ale wydaje mi się, że zdrowiej byłoby trochę rozgałęzić się ... przychodzi mi do głowy, że z korzyścią dla moich przyszłych badań powinnam nauczyć się informatyki.

Większość książek o CS, na które patrzyłem, nie była zbyt odpowiednia do moich celów, ponieważ była zbyt podstawowa i nietechniczna lub zakładała rodzaj CS, którego nie mam. Wydaje się, że są skierowane do osób, które są dość obeznane z komputerem, ale mają niewielkie przeszkody w matematyce - moja sytuacja jest odwrotna.

Pytanie:

Jakie są książki lub inne zasoby, które mogłyby pomóc matematykowi, który został logikiem, w dążeniu do zdobycia praktycznej wiedzy z zakresu (teoretycznej) informatyki?

Szukam czegoś zdrowszego niż kilka wykładów seminaryjnych i bardziej dogłębnego niż The New Turing Omnibus , ale nie mam czasu ani zasobów, aby zrobić kolejny stopień licencjacki. (Być może proszę o coś, co nie istnieje).

Przepraszam, jeśli pytanie jest zbyt niejasne lub źle postawione. Czułem, że jest bardziej odpowiedni tutaj niż na MSE, ale chętnie przeprowadzę migrację, jeśli zajdzie taka potrzeba.

Clive Newstead
źródło
2
Informatyka teoretyczna ma o wiele większy sens, jeśli ktoś jest dobrym, a przynajmniej rozsądnym programistą, ponieważ w pewnym sensie cała (większość) TCS jest formalizacją (i uproszczeniem) tego, co robią programiści. Mieliśmy wątek na powiązane tematy
Martin Berger,
1
odpowiedziano na to w informatyce matoverflow dla matematyków, ale może jest miejsce na wersję
TCS.se
2
Co do obliczalności i podstawowej teorii złożoności, co powiesz na wprowadzenie Sipsera do teorii obliczeń? Zastanawiam się, że nie znalazłeś książek zorientowanych matematycznie, ponieważ jest ich mnóstwo. Na przykład Arora, Barak i Goldreich mają najnowsze książki z teorią złożoności dostępne online i jestem pewien, że istnieje wiele książek z teorii matematycznej.
Sasho Nikolov
2
Informatyka jest dość duża; czy możesz to zawęzić? Wygląda na to, że interesuje Cię głównie obliczalność, teoria typów / języki programowania i być może teoria złożoności; czy to brzmi dobrze?
usul
Podręcznik może być przydatny w celach informacyjnych.
Radu GRIGore

Odpowiedzi:

11

Zasadniczo prosisz o zasoby, które pozwolą ci przekształcić dotychczasową wiedzę z logiki, teorii rekurencji i teorii kategorii w wiedzę o teoretycznej informatyce. Sugerowałbym przyjrzenie się teorii wykonalności, szczególnie poprzez jej powiązania z teorią toposu i teorią dowodu kategorycznego .

Oto garść sugestii; moja rada to wybrać jedną i wejść w głąb. Z wyjątkiem książki Taylora (która to wyjaśnia), moje sugestie zakładają, że byłeś wystarczająco obciążony rachunkiem lambda i teorią kategorii, aby zobaczyć kategoryczne interpretacje rachunku lambda po prostu.

  • Książka Paula Taylora Praktyczne podstawy matematyki

    IMO, to prawdopodobnie najlepsze techniczne wprowadzenie do relacji między logiką, teorią kategorii i obliczeniami. Nie zakłada prawie żadnych warunków wstępnych, ale bardzo szybko wchodzi w dość głębokie wody i z pewnością opodatkuje (i znacznie poprawi) matematyczną dojrzałość.

  • Notatki Wesleya Phoa Wprowadzenie do fibracji, teorii toposów, skutecznych toposów i skromnych zestawów

    Oto kilka notatek z wykładów, które napisał Wesley Phoa. Jeśli jesteś biegły w kategoriach, te notatki oferują naprawdę szybką ścieżkę do zrozumienia niektórych najważniejszych konstrukcji w zakresie wykonalności i teorii toposu (a mianowicie konstrukcji skutecznych toposów).

  • Książka Barta Jacobsa Categorical Logic and Type Theory

    Jest to jedno z ostatecznych odniesień do kategorycznej semantyki teorii typów. Jest również bardzo duży.

W tym samym czasie, gdy czytasz jedną z tych książek, radzę pobrać i dowiedzieć się, jak korzystać z języka programowania Agda . Ten język implementuje wyrafinowane teorie typów opisane powyżej, a IMO jest niezwykle pomocne, aby zobaczyć, jak często dość subtelne konstrukcje semantyczne opierają się na teorii typów.

Andrej Bauer prawdopodobnie udzieli jeszcze lepszych porad. Być może uda się go przekonać do opublikowania. :)

Neel Krishnaswami
źródło
4

Dwie książki, które przychodzą na myśl, to:

Wprowadzenie do teorii obliczeń Sipsera

i

Wprowadzenie do algorytmów Cormena i in.

Zgadzam się z usulem, który powiedział, że informatyka teoretyczna jest szerokim obszarem i moglibyśmy podać lepsze referencje, gdybyś był bardziej szczegółowy na temat tego, czego chcesz się nauczyć.

Kevin A. Wortman
źródło
1
Nie polecałbym pełnego wprowadzenia do algorytmów . Jeśli ktoś chce zapoznać się z podstawowymi technikami algorytmicznymi, poleciłbym jeden z algorytmów Dasgupty, Papadimitriou i Vazirani, Projektowanie algorytmów Kleinberga i Tardosa lub Projektowanie i analiza algorytmów Kozen'a. Wprowadzenie do teorii obliczeń Sipsera jest oczywiście doskonałym wyborem. Dodałbym także książkę o złożoności obliczeniowej (uważam te autorstwa Papdimitriou, Arory i Baraka oraz Goldreich za doskonałe).
Bruno,
1
Osobiście preferuję teorię obliczeń Kozen'a (dość matematyczną, z większym pokryciem logiki i obliczeń) niż Sipser (która jest znacznie bliższa stylowi książce o informatyce stosowanej).
András Salamon,