Algorytmy
Fabrizio Romano, Benjamin Baka, Dusty Phillips
This Learning Path helps you get comfortable with the world of Python. It starts with a thorough and practical introduction to Python. You’ll quickly start writing programs, building websites, and working with data by harnessing Python's renowned data science libraries. With the power of linked lists, binary searches, and sorting algorithms, you'll easily create complex data structures, such as graphs, stacks, and queues. After understanding cooperative inheritance, you'll expertly raise, handle, and manipulate exceptions. You will effortlessly integrate the object-oriented and not-so-object-oriented aspects of Python, and create maintainable applications using higher level design patterns. Once you’ve covered core topics, you’ll understand the joy of unit testing and just how easy it is to create unit tests.By the end of this Learning Path, you will have built components that are easy to understand, debug, and can be used across different applications.This Learning Path includes content from the following Packt products:• Learn Python Programming - Second Edition by Fabrizio Romano• Python Data Structures and Algorithms by Benjamin Baka• Python 3 Object-Oriented Programming by Dusty Phillips
GODOT ENGINE I GDSCRIPT POSWOJSKU Część 2: Od pustego projektu do pierwszego
Gołębiowski Dariusz
Nie wystarczy poznać kilka poleceń. Trzeba jeszcze sprawić, aby kod zaczął podejmować decyzje, reagować na zdarzenia i naprawdę sterować grą czy aplikacją. UWAGA! PORADNIK JEST KONTYNUACJĄ CZĘŚCI 1: Wprowadzenie do świata gier i pierwsze skrypty. Dla lepszego zrozumienia zawartości tej książki, Autor i Wydawnictwo zalecają rozpocząć naukę GODOT Engine od Części 1. "Godot Engine i GDScript poswojsku. Część 2: Od pustego projektu do pierwszego programu"- prowadzi Czytelnika przez kolejny etap nauki programowania w Godot Engine. Krok po kroku. Bez zbędnego komplikowania. Z naciskiem na zrozumienie, praktykę i samodzielne tworzenie. W tej części nauczysz się budować logikę programu przy użyciu instrukcji warunkowych oraz pętli. Dowiesz się, jak wykorzystywać operatory `and`, `or` i `not`, czym różnią się pętle `for` oraz `while`, kiedy stosować `break` i `continue`, a także dlaczego niewłaściwie zaprojektowana pętla potrafi zatrzymać całą grę. Poznasz również jedno z najważniejszych pojęć w tworzeniu gier - `delta`. Zobaczysz, jak dzięki niej uzyskać płynny ruch niezależny od liczby klatek na sekundę, sterować obiektem `CharacterBody2D` oraz przygotować prawidłowe odliczanie czasu. Ale sama teoria to za mało. Dlatego wspólnie zbudujemy mini-grę "Klikaj, zanim czas minie!". Przygotujesz scenę, napiszesz skrypt gry, połączysz sygnały i zobaczysz, jak poszczególne elementy zaczynają ze sobą współpracować. Otrzymasz także zadania dodatkowe pozwalające rozwinąć projekt o punkty specjalne, poziomy wyniku oraz nowe zasady rozgrywki. W kolejnym module wejdziesz w świat funkcji, zdarzeń i sygnałów. Nauczysz się porządkować kod, przekazywać parametry, zwracać wyniki oraz rozpoznawać, kiedy użyć funkcji, a kiedy sygnału. Poznasz sygnały wbudowane, nauczysz się tworzyć własne i łączyć je zarówno w edytorze, jak i bezpośrednio w kodzie. W praktycznym projekcie zbudujesz scenę ze statkiem kosmicznym przekazującym punkty graczowi. Przygotujesz gracza, scenę główną oraz komunikację pomiędzy obiektami. Sprawdzisz również, jak jeden sygnał może docierać do kilku odbiorców i jak oczekiwać na zdarzenia za pomocą `await`. To nie jest podręcznik do biernego czytania. To zaproszenie do eksperymentowania, zmieniania kodu, popełniania błędów i odkrywania, dlaczego program działa - albo dlaczego jeszcze nie działa. Osobne zestawienia najczęstszych problemów pomogą Ci rozpoznać błędne wcięcia, niepołączone sygnały, nieskończone pętle, niewłaściwe użycie `delta` i inne pułapki początkujących twórców. Ta książka jest dla Ciebie, jeżeli: * chcesz nauczyć się programowania poprzez tworzenie gier; * znasz już absolutne podstawy GDScriptu i chcesz zrobić kolejny krok; * zależy Ci na rozumieniu kodu, a nie tylko jego przepisywaniu; * chcesz tworzyć własne mechaniki, zdarzenia i interakcje; * szukasz przewodnika napisanego prostym, ludzkim językiem. Nie musisz od razu znać odpowiedzi na wszystkie pytania. Wystarczy ciekawość, Godot Engine i gotowość do napisania kolejnych linijek kodu. Najpierw pojawi się warunek. Potem pętla. Następnie funkcja, sygnał i zdarzenie. Aż w pewnym momencie pusty projekt zacznie reagować, poruszać się i żyć zgodnie z regułami, które sam mu nadasz. Od pustego projektu do pierwszego programu. Od pierwszej instrukcji do działającej mechaniki. Praktycznie. Zrozumiale. Poswojsku. Dariusz Gołębiowski - trener, nauczyciel, programista, pisarz oraz doradca specjalizujący się w cyberbezpieczeństwie, sztucznej inteligencji i nowych technologiach. Autor i współautor wielu gier, m.in. Ucieczka z Siódmej Planety. Od lat zajmuje się przekładaniem trudnych zagadnień technicznych na zwyczajny, zrozumiały język. Jest autorem książek, ebooków, poradników, materiałów edukacyjnych i kursów publikowanych pod marką poswojsku.pl. W swojej pracy łączy doświadczenie programisty i nauczyciela z przekonaniem, że technologii najlepiej uczyć poprzez praktykę, eksperymentowanie oraz samodzielne tworzenie. Jest również twórcą Sagi CyberJestestwa - rozbudowanego uniwersum łączącego fantastykę, science fiction, filozofię, sztuczną inteligencję i cyberbezpieczeństwo. Rozwija je poprzez powieści, komiksy, materiały multimedialne, a także projektowaną grę. Seria "Godot Engine i GDScript poswojsku" powstała z potrzeby pokazania, że rozpoczęcie programowania i tworzenia własnych gier jest możliwe niezależnie od wieku oraz wcześniejszego doświadczenia. Więcej materiałów Autora: poswojsku.pl poswojsku.eu
Dr. Basant Agarwal, Benjamin Baka
Data structures allow you to store and organize data efficiently. They are critical to any problem, provide a complete solution, and act like reusable code. Hands-On Data Structures and Algorithms with Python teaches you the essential Python data structures and the most common algorithms for building easy and maintainable applications.This book helps you to understand the power of linked lists, double linked lists, and circular linked lists. You will learn to create complex data structures, such as graphs, stacks, and queues. As you make your way through the chapters, you will explore the application of binary searches and binary search trees, along with learning common techniques and structures used in tasks such as preprocessing, modeling, and transforming data. In the concluding chapters, you will get to grips with organizing your code in a manageable, consistent, and extendable way. You will also study how to bubble sort, selection sort, insertion sort, and merge sort algorithms in detail.By the end of the book, you will have learned how to build components that are easy to understand, debug, and use in different applications. You will get insights into Python implementation of all the important and relevant algorithms.
Claus Matzinger
Rust has come a long way and is now utilized in several contexts. Its key strengths are its software infrastructure and resource-constrained applications, including desktop applications, servers, and performance-critical applications, not forgetting its importance in systems' programming. This book will be your guide as it takes you through implementing classic data structures and algorithms in Rust, helping you to get up and running as a confident Rust programmer. The book begins with an introduction to Rust data structures and algorithms, while also covering essential language constructs. You will learn how to store data using linked lists, arrays, stacks, and queues. You will also learn how to implement sorting and searching algorithms. You will learn how to attain high performance by implementing algorithms to string data types and implement hash structures in algorithm design. The book will examine algorithm analysis, including Brute Force algorithms, Greedy algorithms, Divide and Conquer algorithms, Dynamic Programming, and Backtracking. By the end of the book, you will have learned how to build components that are easy to understand, debug, and use in different applications.
Andrew Johnson
Functional programming allows developers to divide programs into smaller, reusable components that ease the creation, testing, and maintenance of software as a whole. Combined with the power of Rust, you can develop robust and scalable applications that fulfill modern day software requirements. This book will help you discover all the Rust features that can be used to build software in a functional way.We begin with a brief comparison of the functional and object-oriented approach to different problems and patterns. We then quickly look at the patterns of control flow, data the abstractions of these unique to functional programming. The next part covers how to create functional apps in Rust; mutability and ownership, which are exclusive to Rust, are also discussed. Pure functions are examined next and you'll master closures, their various types, and currying. We also look at implementing concurrency through functional design principles and metaprogramming using macros. Finally, we look at best practices for debugging and optimization. By the end of the book, you will be familiar with the functional approach of programming and will be able to use these techniques on a daily basis.
Hands-On Game Development without Coding. Create 2D and 3D games with Visual Scripting in Unity
Lucas Bertolini
Hands-On Game Development without Coding is the first Visual Scripting book in the market. It was tailor made for a non programing audience who are wondering how a videogame is made.After reading this book you will be able to develop your own 2d and 3d videogames and use it on your presentations, to speed up your level design deliveries, test your game design ideas, work on your proofs of concept, or even doing it just for fun.The best thing about Hands-On Game Development without Coding is that you don’t need any previous knowledge to read and understand the process of creating a videogame. It is our main focus to provide you with the opportunity to create a videogame as easy and fast as possible.Once you go through the book, you will be able to create player input interaction, levels, object behaviours, enemy AI, creating your own UI and finally giving life to your game by building it.It’s Alive!
Abid Khan, Igor Kucherenko
Kotlin is an object-oriented programming language. The book is based on the latest version of Kotlin. The book provides you with a thorough understanding of programming concepts, object-oriented programming techniques, and design patterns. It includes numerous examples, explanation of concepts and keynotes. Where possible, examples and programming exercises are included. The main purpose of the book is to provide a comprehensive coverage of Kotlin features such as classes, data classes, and inheritance. It also provides a good understanding of design pattern and how Kotlin syntax works with object-oriented techniques. You will also gain familiarity with syntax in this book by writing labeled for loop and when as an expression. An introduction to the advanced concepts such as sealed classes and package level functions and coroutines is provided and we will also learn how these concepts can make the software development easy. Supported libraries for serialization, regular expression and testing are also covered in this book. By the end of the book, you would have learnt building robust and maintainable software with object oriented design patterns in Kotlin.
Information Theory. A Tutorial Introduction to the Principles and Applications of Information Theory
James V Stone
This book offers a comprehensive journey through the fascinating world of information theory, beginning with the fundamental question: what is information? Early chapters introduce key concepts like entropy, binary representation, and data compression, providing a clear and accessible foundation. Readers explore Shannon's source coding theorem and practical tools like Huffman coding to understand how information is quantified and optimized.Building on these basics, the book delves into advanced topics such as the noisy channel coding theorem, mutual information, and error correction techniques. It examines entropy in continuous systems, channel capacity, and rate-distortion theory, making complex ideas accessible through real-world examples. Connections between information and thermodynamics are also explored, including Maxwell’s Demon, the Landauer Limit, and the second law of thermodynamics.The final chapters tie information theory to biology and artificial intelligence, investigating its role in evolution, the human genome, and brain computation. With practical examples throughout, this book balances theoretical depth with hands-on learning, making it an essential resource for mastering information theory. A basic mathematical foundation will be beneficial but is not required to engage with the material.