home contactus
okladka
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: 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.
Przedmowa (9)
Część I Przetwarzanie prostych typów danych (19)
1. Studenci, nauczyciele i komputery (21)
2. Liczby, wyrażenia i proste programy (23)
3. Program składa się z funkcji i definicji zmiennych (39)
4. Instrukcje warunkowe i funkcje (47)
5. Informacje symboliczne (63)
6. Dane złożone. Część 1.: Struktury (69)
7. Rodzaje danych (95)
W1. Składnia i semantyka (111)
Część II Przetwarzanie danych dowolnej wielkości (127)
9. Dane złożone. Część 2.: Listy (129)
10. Więcej na temat przetwarzania list (147)
11. Liczby naturalne (161)
12. Łączenie funkcji. Powtórka (177)
W2. Skracanie list (191)
Część III Więcej o przetwarzaniu danych dowolnej wielkości (197)
14. Więcej rekurencyjnych definicji danych (199)
15. Wzajemne odwołania w definicjach danych (217)
16. Tworzenie programów metodą iteracyjnego ulepszania (227)
17. Przetwarzanie dwóch skomplikowanych elementów danych (235)
W3. Lokalne definicje i zasięg leksykalny (261)
Część IV Projektowanie abstrakcyjne (281)
19. Podobieństwa w definicjach (283)
20. Funkcje są wartościami (297)
21. Projektowanie funkcji abstrakcyjnych na podstawie przykładów (303)
22. Projektowanie abstrakcji (317)
23. Przykłady matematyczne (331)
W4. Bezpośrednie definiowanie funkcji (345)
Część V Rekursja generatywna (351)
25. Nowa postać rekursji (353)
26. Projektowanie algorytmów (363)
27. Różne algorytmy rekurencyjne (375)
28. Algorytmy z nawracaniem (397)
W5. Koszt obliczeniowy oraz wektory (405)
Część VI Gromadzenie wiedzy (423)
30. Utrata wiedzy (425)
31. Projektowanie funkcji z akumulatorem (433)
32. Dalsze użycie akumulacji (447)
W6. Natura liczb niedokładnych (457)
Część VII Zmiana stanu zmiennych (467)
34. Pamięć dla funkcji (469)
35. Przypisanie do zmiennych (475)
36. Projektowanie funkcji z pamięcią (485)
37. Przykłady zastosowania pamięci (497)
W7. Końcowa składnia i semantyka (519)
Część VIII Zmiana wartości złożonych (539)
39. Hermetyzacja (541)
40. Mutacja struktur (553)
41. Projektowanie funkcji zmieniających struktury (571)
42. Równość (595)
43. Zmiana struktur, wektorów i obiektów (601)
Zakończenie (629)
Dodatki (633)
Skorowidz (635)