Algorytmy to skończone ciągi jasno zdefiniowanych czynności, prowadzących do wykonania określonych zadań. Niniejszy podręcznik, skupiony na algorytmach imperatywnych (od łacińskiego słowa imporo – rozkazywać) wprowadza podstawowe pojęcia algorytmiki niezbędne do nauki programowania. Uczy projektowania, zapisywania i analizy poprawności, jak również podstaw szacowania złożoności czasowej i pamięciowej algorytmów. Wraz z książką, którą tr...
Finanse i Python. Łagodne wprowadzenie do teorii finansów Rozwój technologii i dostęp do danych finansowych stały się ogromnym ułatwieniem w korzystaniu z globalnych rynków finansowych. Jeśli zechcesz, możesz szybko zacząć przygodę na przykład z handlem algorytmicznym. Wystarczy, że masz niewielkie pojęcie o matematyce, programowaniu i ekonomii. Niestety, nieliczne programy nauczania o finansach integrują ze sobą te trzy dziedziny. Tymczasem koncepcje ma...
Hardware i testy penetracyjne. Przewodnik po metodach ataku i obrony Wraz z rozwojem internetu rzeczy, a także upowszechnianiem się elektronicznego sterowania i kontrolowania różnych procesów przestępcy doskonalą techniki łamania zabezpieczeń systemów wbudowanych. Konsekwencje skutecznego ataku na jakiś kluczowy element infrastruktury mogą się okazać dotkliwe i niezwykle kosztowne. Oznacza to, że testowanie pod kątem bezpieczeństwa powinno dotyczyć sprzę...
Majsterkowiczów wyróżnia ciekawość. Pasjonuje ich wyjaśnianie, jak działają poszczególne obiekty, i praktyczne zastosowanie wiedzy w coraz to ambitniejszych projektach. Bogatym źródłem inspiracji dla wszystkich złotych rączek jest inżynieria mechaniczna. Przydaje się również odrobina wiedzy o prawidłach fizyki i matematyki. Można ją zdobyć podczas lektury trudnych podręczników akademickich albo na wyczerpujących studiach inżynierskich...
Baw się ― i ucz się programowania! Programowanie to dziś niezwykle ważna umiejętność. I wszystko wskazuje na to, że jego znaczenie będzie tylko rosło. Warto więc zawczasu pomyśleć o przyszłości swojego dziecka i pomóc mu rozpocząć przygodę z programowaniem. Tym bardziej że istnieje Scratch ― język kodowania, wokół którego skupia się liczna społeczność internetowa ― pozwalający tworzyć własne interaktywne historie, gry i animacje i dziel...
Większość poważnych organizacji docenia wartości płynące z danych. Doświadczeni analitycy potrafią nie tylko wyciągać z ich zbioru informacje niezbędne do podejmowania decyzji biznesowych, ale także zastosować odpowiednie style wizualizacji danych i tworzyć przekonujące narracje cyfrowe. Przy tym wszystkim konieczne jest pełne wdrożenie zasad bezpieczeństwa danych. Niezastąpionym narzędziem dla specjalisty BI może być pakiet samoobsługowych narzędzi analitycznych Microsoft Po...
Doskonałe opanowanie dowolnego języka programowania nie wystarczy do tego, aby stać się świetnym programistą czy deweloperem. Konieczne jest również zdobycie praktycznej wiedzy dotyczącej algorytmów. Oznacza to, że aby pisać lepszy kod, podczas rozwiązywania rzeczywistych problemów trzeba umieć korzystać z algorytmów, włączając w to ich budowanie, modyfikację i implementację. Niezależnie od tego, jaką dziedziną informatyki się zajmujesz, biegłość w...
Książka Sylwestra Walczaka jest poświęcona Django, wolnej, otwartoźródłowej platformie programistycznej służącej do tworzenia aplikacji internetowych. Autor udowadnia, że wbrew obiegowym opiniom Django jako framework nadaje się do budowy mikroserwisów - autonomicznych usług, które współpracują ze sobą, tworząc na przykład serwis internetowy. Odwołuje się przy tym do API potrzebnego do obsługi kawiarni. Jest to więc swojego rodzaju instrukcja, kt&oa...
Linux cieszy się dużą popularnością wśród administratorów i użytkowników. Znakomicie sprawdza się nawet na bardzo skromnym sprzęcie. Działa na komputerach Raspberry Pi, na maszynach wirtualnych i na komputerach marsjańskich łazików. Niezależnie od tego systemy linuksowe są cały czas rozwijane i dostosowywane do najnowszych trendów i technologii systemów informatycznych. Niezależnie od tego, czy używasz Linuksa do programowania, do two...
Mimo że osiągnięcia matematyczne stały się podwalinami algorytmiki, wielu inżynierów nie w pełni rozumie reguły matematyki dyskretnej. Nawet jeśli nie stanowi to szczególnego problemu w codziennej pracy, w końcu okazuje się, że matematyka dyskretna jest niezbędna do osiągnięcia prawdziwej biegłości w operowaniu algorytmami i w pracy na danych. Co więcej, znajomość tej dziedziny bardzo ułatwia rozwiązywanie problemów z zakresu uczenia maszynowego. W ten sp...
Uczenie maszynowe staje się wszechobecne. Dzięki coraz lepszym narzędziom służącym do tworzenia aplikacji szczegóły techniczne związane z obliczeniami i modelami matematycznymi są często pomijane przez projektantów. Owszem, to wygodne podejście, ale wiąże się z ryzykiem braku świadomości co do wszystkich konsekwencji wybranych rozwiązań projektowych, szczególnie ich mocnych i słabych stron. A zatem bez ugruntowanych podstaw matematyki nie można mów...
Poznaj podstawy programowania funkcyjnego w Javie Java jest obiektowym, bazującym na klasach, współbieżnym językiem programowania. Niezwykłą popularność zawdzięcza on między innymi niezależności od platformy, łatwości pisania w nim programów i klarownemu kodowi. Nic więc dziwnego, że Javę pokochało wielu programistów. To do nich jest skierowana dwuczęściowa publikacja Java. Zadania z programowania, której autorem jest Mirosław J. Kubiak. Jej drug...
Programowanie w Javie - szybko i konkretnie "Jeśliby posadzić milion małp przy milionie klawiatur, któraś z nich napisze w końcu program w Javie. Reszta zrobi to w Perlu" - głosi jedna z informatycznych anegdot punktujących Javę. Cokolwiek by jednak mówić o tym języku programowania, trzeba przyznać, że powstały w nim kod jest niezależny od systemu operacyjnego i procesora. Właśnie ta cecha stanowi o ogromnej popularności Javy. Jeśli chcesz dołączyć d...
Go pojawił się w 2009 roku, służy do tworzenia usług internetowych. Pozwala na łatwe pisanie wydajnych aplikacji. Zdobył popularność, jednak wielu programistów nie wykorzystuje w pełni jego możliwości. Dotyczy to zwłaszcza osób, które przy pisaniu kodu Go korzystają z konstrukcji właściwych dla innych języków. Nie jest to właściwa metoda programowania. Aby tworzyć przejrzysty, prawidłowy kod w Go, należy do niego podejść w sposób idiomatyczn...
Najlepszą metodą unikania udanego cyberataku jest utrzymywanie w gotowości zabezpieczeń systemowych. Szczególna rola na tym polu przypada pentesterom, którzy używając tych samych technik co napastnicy, wyszukują podatności i przełamują zabezpieczenia. To pozwala lepiej dostroić działanie mechanizmów obronnych. Ulubionym systemem pentesterów jest Kali - popularna i potężna dystrybucja Linuxa. Zawiera ona przebogatą bibliotekę narzędzi służących do p...
Zabaw się w elektronika! Poznaj kolejne etapy powstawania układów Zaprojektuj układy analogowe i cyfrowe Zbuduj przydatne urządzenia elektroniczne Czy ktoś, kto pisze o bramkach (logicznych), opowiada o sporcie? Czy miejsce multiwibratora jest na półce w sklepie z gadżetami erotycznymi? Czy słowo "negator" oznacza osobę będącą zawsze na "nie"? Odpowiedzi na te (tendencyjne!) pytania znajdziesz w najnowszej, książce z serii Elektronika ...
Elektronik, zwłaszcza gdy pracuje nad trudniejszymi projektami, musi mieć dostęp do rzetelnych i sprawdzonych informacji. Oczywiście, jakieś dane są dostępne w kartach produktów, biuletynach producentów czy internecie. Tyle że wyszukiwanie i weryfikowanie tych źródeł bywa czasochłonne. Każdy elektronik, zarówno zawodowiec, jak i amator, doceni więc zamysł, by niezbędne informacje zebrać w jednym miejscu, w formie dobrze zorganizowanego zestawienia,...
Król Excel do Twoich usług Czterysta lat. Tyle czasu zajęłoby Ci uzupełnienie ― choćby jednym znakiem ― wszystkich komórek w arkuszu Excela. A tych w nowszych wersjach programu jest ponad 17 miliardów ― przeszło milion wierszy i dobrze ponad 16 tysięcy kolumn. Ktoś kiedyś dokonał takich (chyba zbędnych?) komórkowo-czasowych obliczeń. Po co? Pewnie dla zabawy. Gdzie? Może… w arkuszu Excela? Właściwie dlaczego nie. Wszak Exc...
Język Python jest znany jako wszechstronny, elastyczny i łatwy do nauczenia. Te zalety doceniają naukowcy, programiści i oczywiście hakerzy. Testowanie penetracyjne bowiem wymaga umiejętności szybkiego tworzenia skutecznych narzędzi, a do tego Python nadaje się znakomicie. Jednak wiedza o mrocznej stronie Pythona przydaje się nie tylko pentesterom i napastnikom. Świadomość o możliwościach kodu Pythona jest pomocna również podczas pracy administratorów i programi...
Blockchain, czyli łańcuch bloków, niefortunnie kojarzy się z kryptowalutami i przestępczością. Tymczasem potencjał tej technologii jest ogromny i zapewne wciąż nie znamy wszystkich możliwych jej zastosowań. Łańcuch bloków jest w istocie publicznym rejestrem, który może się stać ogólnoświatową, zdecentralizowaną księgą służącą do rejestrowania, inwentaryzacji i organizowania transferów wszelkiego rodzaju aktywów. Najwyższy więc czas, a...
Scratch jest projektem MIT Media Lab. Początkowo miał służyć młodym ludziom do nauki programowania, ale szybko zaczął pełnić również inne funkcje. Jest jak cyfrowa piaskownica, w której każdy może nie tylko nauczyć się podstaw kodowania, ale także ćwiczyć kreatywność, umiejętność pracy w zespole i zdolność do wynajdywania nieszablonowych rozwiązań, na przykład podczas projektowania gier. Scratch jest bowiem świetnym narzędziem do tworzenia najróżniejszych...
Matematyka jest… prosta! Wielu uczniom ― ale także ich skazanym na opłacanie kosztownych korepetycji rodzicom ― matematyka kojarzy się jak najgorzej. Nie każdy nauczyciel bowiem potrafi przekazać swoją pasję do tego przedmiotu w taki sposób, by zainspirować młodego człowieka. Nie każdy też umie wytłumaczyć (pozornie) skomplikowane reguły algebraiczne i nauczyć trików pozwalających liczyć prościej, sprytniej i zupełnie bez problemów.&nb...
Spośród wielu koncepcji tworzenia oprogramowania na szczególną uwagę zasługuje model programowania sterowanego testami, znany jako TDD. Technika ta opiera się na integracji procesów projektowania aplikacji i pisania kodu z prowadzeniem testów. Mimo że taki sposób pracy wydaje się dość wymagający dla zespołów deweloperów, łatwo się przekonać, że TDD pozwala na stałe uzyskiwanie dobrych efektów, a opracowane tą metodą apli...
Systemy oparte na uczeniu maszynowym są coraz bardziej wyrafinowane. Spośród wielu narzędzi służących do implementacji algorytmów uczenia maszynowego najpopularniejszy okazał się Python wraz z jego bibliotekami. Znajomość tych narzędzi umożliwia sprawne tworzenie systemów uczących się, jednak uzyskanie spektakularnych wyników wymaga doświadczenia i wprawy. Konieczne są więc ćwiczenia i praktyka w samodzielnym rozwiązywaniu problemów._x005F_x...