reklama - zainteresowany?

Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej - Helion

Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej
Autor: Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
Tytuł oryginału: How to Design Programs
Tłumaczenie: Bartosz Grabski, Mikołaj Szczepaniak
ISBN: 83-7197-922-3
stron: 648, Format: B5, okładka: twarda
Data wydania: 2003-09-28
Księgarnia: Helion

Cena książki: 69,00 zł

Dodaj do koszyka Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej

Tagi: Techniki programowania

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
Z lektury książki "Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej" skorzystają zarówno studenci informatyki, jak też i słuchacze innych kierunków oraz wszystkie osoby, które chcą podbudować swoją wiedzę praktyczną solidnymi i przydatnymi podstawami teoretycznymi.

Dodaj do koszyka Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej

 

Osoby które kupowały "Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej", wybierały także:

  • F# 4.0 dla zaawansowanych. Wydanie IV
  • Systemy reaktywne. Wzorce projektowe i ich stosowanie
  • Scratch. Komiksowa przygoda z programowaniem
  • GameMaker. Kurs video. Kompleksowy przewodnik tworzenia gier platformowych
  • JavaScript. Kurs video. Programowanie funkcyjne i reaktywne

Dodaj do koszyka Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej

Spis treści

Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej -- spis treści

Przedmowa (9)

  • Dlaczego każdy powinien uczyć się programować? (11)
  • Metody projektowania (12)
  • Wybór Scheme i DrScheme (14)
  • Podział książki (15)
  • Podziękowania (18)

Część I Przetwarzanie prostych typów danych (19)

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)

3. Program składa się z funkcji i definicji zmiennych (39)

  • Składanie funkcji (40)
  • Definicje zmiennych (43)
  • Proste ćwiczenia w tworzeniu funkcji (44)

4. Instrukcje warunkowe i funkcje (47)

  • Wartości logiczne i relacje (47)
  • Funkcje testujące warunki (50)
  • Warunki i funkcje warunkowe (54)
  • Projektowanie funkcji warunkowych (57)

5. Informacje symboliczne (63)

  • Proste ćwiczenia z symbolami (65)

6. Dane złożone. Część 1.: Struktury (69)

  • 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)

7. Rodzaje danych (95)

  • 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)

W1. Składnia i semantyka (111)

  • 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)

Część II Przetwarzanie danych dowolnej wielkości (127)

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)

10. Więcej na temat przetwarzania list (147)

  • Funkcje zwracające listy (147)
  • Listy zawierające struktury (152)
  • Rozszerzone ćwiczenie: przemieszczanie obrazów (158)

11. Liczby naturalne (161)

  • 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)

12. Łączenie funkcji. Powtórka (177)

  • Projektowanie skomplikowanych programów (177)
  • Rekursywne funkcje zewnętrzne (178)
  • Uogólnianie problemów i funkcji (183)
  • Rozszerzone ćwiczenie: przestawianie słów (187)

W2. Skracanie list (191)

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)

15. Wzajemne odwołania w definicjach danych (217)

  • 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)

16. Tworzenie programów metodą iteracyjnego ulepszania (227)

  • Analiza danych (228)
  • Definiowanie i ulepszanie klas danych (229)
  • Ulepszanie funkcji i programów (232)

17. Przetwarzanie dwóch skomplikowanych elementów danych (235)

  • 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)

W3. Lokalne definicje i zasięg leksykalny (261)

  • Organizowanie programów za pomocą słowa local (261)
  • Zasięg leksykalny i struktura blokowa (276)

Część IV Projektowanie abstrakcyjne (281)

19. Podobieństwa w definicjach (283)

  • Podobieństwa w funkcjach (283)
  • Podobieństwa w definicjach danych (292)

20. Funkcje są wartościami (297)

  • Składnia i semantyka (297)
  • Kontrakty dla abstrakcyjnych i polimorficznych funkcji (299)

21. Projektowanie funkcji abstrakcyjnych na podstawie przykładów (303)

  • 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)

22. Projektowanie abstrakcji (317)

  • Funkcje zwracające funkcje (317)
  • Projektowanie abstrakcji z funkcjami jako wartościami (319)
  • Pierwsze spojrzenie na graficzny interfejs użytkownika (322)

23. Przykłady matematyczne (331)

  • 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)

W4. Bezpośrednie definiowanie funkcji (345)

Część V Rekursja generatywna (351)

25. Nowa postać rekursji (353)

  • Modelowanie kuli na stole (354)
  • Szybkie sortowanie (357)

26. Projektowanie algorytmów (363)

  • Zakończenie (365)
  • Rekursja strukturalna a generatywna (368)
  • Dokonywanie wyborów (369)

27. Różne algorytmy rekurencyjne (375)

  • Fraktale (375)
  • Od plików do linii, od list do list list (380)
  • Wyszukiwanie binarne (384)
  • Metoda Newtona (390)
  • Rozszerzone ćwiczenie: eliminacja Gaussa (392)

28. Algorytmy z nawracaniem (397)

  • Przechodzenie grafów (397)
  • Rozszerzone ćwiczenie: szachowanie hetmanów (403)

W5. Koszt obliczeniowy oraz wektory (405)

  • Czas konkretny, czas abstrakcyjny (405)
  • Definicja wyrażenia "rzędu" (410)
  • Pierwsze spojrzenie na wektory (412)

Część VI Gromadzenie wiedzy (423)

30. Utrata wiedzy (425)

  • Problem przetwarzania strukturalnego (425)
  • Problem rekursji generatywnej (429)

31. Projektowanie funkcji z akumulatorem (433)

  • Czy akumulator jest potrzebny? (433)
  • Funkcje z akumulatorem (434)
  • Przekształcanie funkcji na funkcje z akumulatorem (436)

32. Dalsze użycie akumulacji (447)

  • Rozszerzone ćwiczenie: akumulatory i drzewa (447)
  • Rozszerzone ćwiczenie: misjonarze i ludożercy (452)
  • Rozszerzone ćwiczenie: plansza gry Solitaire (455)

W6. Natura liczb niedokładnych (457)

  • Arytmetyka liczb o stałym rozmiarze (457)
  • Przepełnienie (463)
  • Niedomiar (464)
  • Liczby w DrScheme (465)

Część VII Zmiana stanu zmiennych (467)

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)

36. Projektowanie funkcji z pamięcią (485)

  • Zapotrzebowanie na pamięć (485)
  • Pamięć i zmienne stanu (487)
  • Funkcje inicjalizujące pamięć (489)
  • Funkcje zmieniające pamięć (489)

37. Przykłady zastosowania pamięci (497)

  • 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)

W7. Końcowa składnia i semantyka (519)

  • Słownik Advanced Scheme (519)
  • Gramatyka Advanced Scheme (519)
  • Znaczenie Advanced Scheme (522)
  • Błędy w Advanced Scheme (534)

Część VIII Zmiana wartości złożonych (539)

39. Hermetyzacja (541)

  • Abstrahowanie ze zmiennymi stanu (541)
  • Ćwiczenia z hermetyzacji (551)

40. Mutacja struktur (553)

  • Struktury z funkcji (553)
  • Mutacja struktur funkcjonalnych (556)
  • Mutacja struktur (558)
  • Mutacja wektorów (565)
  • Zmiana zmiennych, zmiana struktur (567)

41. Projektowanie funkcji zmieniających struktury (571)

  • 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)

42. Równość (595)

  • Równość ekstensjonalna (595)
  • Równość intensjonalna (596)

43. Zmiana struktur, wektorów i obiektów (601)

  • Ćwiczenia praktyczne z wektorami (601)
  • Zbiory struktur z cyklami (616)
  • Nawracanie ze stanem (626)

Zakończenie (629)

  • Technika obliczeniowa (629)
  • Programowanie (630)
  • Krok naprzód (631)

Dodatki (633)

Skorowidz (635)

Dodaj do koszyka Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.