Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej
Matthew Flatt, Matthias Felleisen, Robert Bruce Findler, Shriram Krishnamurthi
Cena detaliczna: 69,00 zł
Twoja cena: 62,10 zł
Wydawnictwo: Helion
Oprawa: twarda
Numer katalogowy: 45521
Dostępność: produkt chwilowo niedostępny
Poleć znajomym:









Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej - opis
Umiejętność programowania nie ma już charakteru czysto zawodowego. Księgowi muszą się posługiwać arkuszami kalkulacyjnymi i edytorami tekstu, fotografowie korzystają z edytorów zdjęć, muzycy programują syntezatory, zaś profesjonalni programiści tworzą skomplikowane aplikacje. Programowanie jest więc bardzo pożądaną umiejętnością, potrzebną nie tylko informatykom.
Projektowanie oprogramowania wymaga takich samych zdolności analitycznych, jak matematyka. Jednak, w przeciwieństwie do matematyki, praca z programami jest aktywnym sposobem zdobywania wiedzy. Obcowanie z oprogramowaniem daje możliwość stałej interakcji, co pozwala na zgłębianie wiedzy, eksperymentowanie z nią oraz na stałą samoocenę.
Autorzy tej klasycznej publikacji stawiają tezę, iż "każdy powinien nauczyć się, jak projektować oprogramowanie" i właśnie nauka podstaw projektowania jest jej tematem głównym. W książce znajdziesz wiele podstawowych algorytmów, wyjaśnienia takich pojęć, jak akumulacja wiedzy czy równość ekstensjonalna i intensjonalna, słowem wszystko to, co stanowi teoretyczną podstawę wiedzy programistycznej.
Poznasz między innymi:
- Podstawowe struktury, z których składają się programy komputerowe
- Proste i złożony typy danych
- Metody przetwarzania danych
- Programowanie z użyciem rekurencji, algorytmy z nawracaniem
- Projektowanie abstrakcyjne
- Sposoby gromadzenia wiedzy
- Wykorzystanie wektorów
Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej - spis treści
Przedmowa (9)
1. Studenci, nauczyciele i komputery (21)
2. Liczby, wyrażenia i proste programy (23)
9. Dane złożone. Część 2.: Listy (129)
Część III Więcej o przetwarzaniu danych dowolnej wielkości (197)
14. Więcej rekurencyjnych definicji danych (199)
19. Podobieństwa w definicjach (283)
Część V Rekursja generatywna (351)
25. Nowa postać rekursji (353)
30. Utrata wiedzy (425)
34. Pamięć dla funkcji (469)
35. Przypisanie do zmiennych (475)
39. Hermetyzacja (541)
Skorowidz (635)
- Dlaczego każdy powinien uczyć się programować? (11)
- Metody projektowania (12)
- Wybór Scheme i DrScheme (14)
- Podział książki (15)
- Podziękowania (18)
1. Studenci, nauczyciele i komputery (21)
2. Liczby, wyrażenia i proste programy (23)
- Liczby i arytmetyka (23)
- Zmienne i programy (26)
- Problemy ze zrozumieniem treści zadań (29)
- Błędy (30)
- Projektowanie programów (33)
- Składanie funkcji (40)
- Definicje zmiennych (43)
- Proste ćwiczenia w tworzeniu funkcji (44)
- Wartości logiczne i relacje (47)
- Funkcje testujące warunki (50)
- Warunki i funkcje warunkowe (54)
- Projektowanie funkcji warunkowych (57)
- Proste ćwiczenia z symbolami (65)
- Struktury (69)
- Ćwiczenie rozszerzone: rysowanie prostych obrazów (72)
- Definicje struktur (75)
- Definicje danych (79)
- Projektowanie funkcji przetwarzających dane złożone (82)
- Rozszerzone ćwiczenie: przemieszczanie okręgów i prostokątów (87)
- Rozszerzone ćwiczenie: gra w szubienicę (91)
- Mieszanie i rozróżnianie danych (95)
- Projektowanie funkcji przetwarzających dane mieszane (100)
- Składanie funkcji - powtórka (104)
- Rozszerzone ćwiczenie: przesuwanie figur (107)
- Błędne dane wejściowe (108)
- Słownictwo języka Scheme (112)
- Gramatyka języka Scheme (112)
- Znaczenie w języku Scheme (114)
- Błędy 118
- Wyrażenia logiczne (121)
- Definicje zmiennych (122)
- Definicje struktur (124)
9. Dane złożone. Część 2.: Listy (129)
- Listy 129
- Definicje danych dla list o dowolnej długości (133)
- Przetwarzanie list o dowolnej długości (135)
- Projektowanie funkcji dla rekursywnych definicji danych (139)
- Więcej na temat przetwarzania prostych list (142)
- Funkcje zwracające listy (147)
- Listy zawierające struktury (152)
- Rozszerzone ćwiczenie: przemieszczanie obrazów (158)
- Definiowanie liczb naturalnych (161)
- Przetwarzanie liczb naturalnych dowolnej wielkości (163)
- Rozszerzone ćwiczenie: tworzenie list, testowanie funkcji (166)
- Alternatywne definicje danych dla liczb naturalnych (168)
- Więcej o naturze liczb naturalnych (173)
- Projektowanie skomplikowanych programów (177)
- Rekursywne funkcje zewnętrzne (178)
- Uogólnianie problemów i funkcji (183)
- Rozszerzone ćwiczenie: przestawianie słów (187)
Część III Więcej o przetwarzaniu danych dowolnej wielkości (197)
14. Więcej rekurencyjnych definicji danych (199)
- Struktury w strukturach (199)
- Rozszerzone ćwiczenie: drzewa poszukiwań binarnych (208)
- Listy w listach (212)
- Rozszerzone ćwiczenie: obliczanie wyrażeń języka Scheme (215)
- Listy struktur. Listy w strukturach (217)
- Projektowanie funkcji dla definicji danych zawierających wzajemne odwołania (223)
- Rozszerzone ćwiczenie: więcej na stronach WWW (225)
- Analiza danych (228)
- Definiowanie i ulepszanie klas danych (229)
- Ulepszanie funkcji i programów (232)
- Jednoczesne przetwarzanie dwóch list. Przypadek 1. (235)
- Jednoczesne przetwarzanie dwóch list. Przypadek 2. (237)
- Jednoczesne przetwarzanie dwóch list. Przypadek 3. (240)
- Upraszczanie funkcji (245)
- Projektowanie funkcji pobierających dwie złożone dane wejściowe (247)
- Ćwiczenia z przetwarzania dwóch złożonych danych wejściowych (248)
- Rozszerzone ćwiczenie: obliczanie wyrażeń języka Scheme. Część 2. (251)
- Równość i testowanie (253)
- Organizowanie programów za pomocą słowa local (261)
- Zasięg leksykalny i struktura blokowa (276)
19. Podobieństwa w definicjach (283)
- Podobieństwa w funkcjach (283)
- Podobieństwa w definicjach danych (292)
- Składnia i semantyka (297)
- Kontrakty dla abstrakcyjnych i polimorficznych funkcji (299)
- Abstrahowanie na podstawie przykładów (303)
- Ćwiczenia z abstrakcyjnymi funkcjami przetwarzającymi listy (309)
- Abstrakcja i pojedynczy punkt kontroli (311)
- Rozszerzone ćwiczenie: przemieszczanie obrazów jeszcze raz (312)
- Uwaga: Projektowanie abstrakcji na podstawie szablonów (314)
- Funkcje zwracające funkcje (317)
- Projektowanie abstrakcji z funkcjami jako wartościami (319)
- Pierwsze spojrzenie na graficzny interfejs użytkownika (322)
- Ciągi i szeregi (331)
- Ciągi i szeregi arytmetyczne (333)
- Ciągi i szeregi geometryczne (334)
- Pole powierzchni pod wykresem funkcji (338)
- Nachylenie funkcji (340)
Część V Rekursja generatywna (351)
25. Nowa postać rekursji (353)
- Modelowanie kuli na stole (354)
- Szybkie sortowanie (357)
- Zakończenie (365)
- Rekursja strukturalna a generatywna (368)
- Dokonywanie wyborów (369)
- Fraktale (375)
- Od plików do linii, od list do list list (380)
- Wyszukiwanie binarne (384)
- Metoda Newtona (390)
- Rozszerzone ćwiczenie: eliminacja Gaussa (392)
- Przechodzenie grafów (397)
- Rozszerzone ćwiczenie: szachowanie hetmanów (403)
- Czas konkretny, czas abstrakcyjny (405)
- Definicja wyrażenia "rzędu" (410)
- Pierwsze spojrzenie na wektory (412)
30. Utrata wiedzy (425)
- Problem przetwarzania strukturalnego (425)
- Problem rekursji generatywnej (429)
- Czy akumulator jest potrzebny? (433)
- Funkcje z akumulatorem (434)
- Przekształcanie funkcji na funkcje z akumulatorem (436)
- Rozszerzone ćwiczenie: akumulatory i drzewa (447)
- Rozszerzone ćwiczenie: misjonarze i ludożercy (452)
- Rozszerzone ćwiczenie: plansza gry Solitaire (455)
- Arytmetyka liczb o stałym rozmiarze (457)
- Przepełnienie (463)
- Niedomiar (464)
- Liczby w DrScheme (465)
34. Pamięć dla funkcji (469)
35. Przypisanie do zmiennych (475)
- Działanie prostych przypisań (475)
- Sekwencja wyrażeń obliczeniowych (477)
- Przypisania i funkcje (479)
- Pierwszy użyteczny przykład (482)
- Zapotrzebowanie na pamięć (485)
- Pamięć i zmienne stanu (487)
- Funkcje inicjalizujące pamięć (489)
- Funkcje zmieniające pamięć (489)
- Inicjalizacja stanu (497)
- Zmiana stanu przez interakcję z użytkownikiem (500)
- Zmiany stanu przez rekursję (508)
- Ćwiczenia na zmianach stanu (514)
- Rozszerzone ćwiczenie: zwiedzanie (516)
- Słownik Advanced Scheme (519)
- Gramatyka Advanced Scheme (519)
- Znaczenie Advanced Scheme (522)
- Błędy w Advanced Scheme (534)
39. Hermetyzacja (541)
- Abstrahowanie ze zmiennymi stanu (541)
- Ćwiczenia z hermetyzacji (551)
- Struktury z funkcji (553)
- Mutacja struktur funkcjonalnych (556)
- Mutacja struktur (558)
- Mutacja wektorów (565)
- Zmiana zmiennych, zmiana struktur (567)
- Po co mutować struktury (571)
- Zasady projektowania strukturalnego i mutacji, część 1. (572)
- Zasady projektowania strukturalnego i mutacji, część 2. (583)
- Ćwiczenie rozszerzone: ruchome obrazy po raz ostatni (594)
- Równość ekstensjonalna (595)
- Równość intensjonalna (596)
- Ćwiczenia praktyczne z wektorami (601)
- Zbiory struktur z cyklami (616)
- Nawracanie ze stanem (626)
- Technika obliczeniowa (629)
- Programowanie (630)
- Krok naprzód (631)
Skorowidz (635)



