Author: Imran Ahmad
1
Ebook

40 Algorithms Every Programmer Should Know. Hone your problem-solving skills by learning different algorithms and their implementation in Python

Imran Ahmad

Algorithms have always played an important role in both the science and practice of computing. Beyond traditional computing, the ability to use algorithms to solve real-world problems is an important skill that any developer or programmer must have. This book will help you not only to develop the skills to select and use an algorithm to solve real-world problems but also to understand how it works.You’ll start with an introduction to algorithms and discover various algorithm design techniques, before exploring how to implement different types of algorithms, such as searching and sorting, with the help of practical examples. As you advance to a more complex set of algorithms, you'll learn about linear programming, page ranking, and graphs, and even work with machine learning algorithms, understanding the math and logic behind them. Further on, case studies such as weather prediction, tweet clustering, and movie recommendation engines will show you how to apply these algorithms optimally. Finally, you’ll become well versed in techniques that enable parallel processing, giving you the ability to use these algorithms for compute-intensive tasks.By the end of this book, you'll have become adept at solving real-world computational problems by using a wide range of algorithms.

2
Ebook

40 algorytmów, które powinien znać każdy programista. Nauka implementacji algorytmów w Pythonie

Imran Ahmad

Wiedza o algorytmach jest niezbędna każdemu, kto rozwiązuje problemy programistyczne. Algorytmy są również ważne w teorii i praktyce obliczeń. Każdy programista powinien znać możliwie szeroki ich zakres. Powinien też umieć z nich korzystać przy rozwiązywaniu rzeczywistych problemów, w tym przy projektowaniu algorytmów, ich modyfikacji i implementacji. Niezależnie od tego, czy zajmujesz się sztuczną inteligencją, zabezpieczaniem systemów informatycznych lub inżynierią danych, musisz dobrze zrozumieć, czym właściwie są i jak działają algorytmy. Ta książka jest praktycznym wprowadzeniem do algorytmów i ich zastosowania. Znalazły się w niej podstawowe informacje i pojęcia dotyczące algorytmów, ich działania, a także ograniczeń, jakim podlegają. Opisano też techniki ich projektowania z uwzględnieniem wymagań dotyczących struktur danych. Zaprezentowano klasyczne algorytmy sortowania i wyszukiwania, algorytmy grafowe, jak również wiele zagadnień związanych ze sztuczną inteligencją: algorytmy uczenia maszynowego, sieci neuronowych i przetwarzania języka naturalnego. Ważną częścią publikacji są rozdziały poświęcone przetwarzaniu danych i kryptografii oraz algorytmom powiązanym z tymi zagadnieniami. Wartościowym podsumowaniem prezentowanych treści jest omówienie technik pracy z problemami NP-trudnymi. W książce między innymi: struktury danych i algorytmy w bibliotekach Pythona algorytm grafowy służący do wykrywania oszustw w procesie analizy sieciowej przewidywanie pogody przy użyciu algorytmów uczenia nadzorowanego rozpoznawanie obrazu za pomocą syjamskich sieci neuronowych tworzenie systemu rekomendacji filmów szyfrowanie symetryczne i asymetryczne podczas wdrażania modelu uczenia maszynowego Oto algorytm: poznaj, zaimplementuj, zastosuj!

3
Ebook

50 Algorithms Every Programmer Should Know. Tackle computer science challenges with classic to modern algorithms in machine learning, software design, data systems, and cryptography - Second Edition

Imran Ahmad, Somaieh Nikpoor

The ability to use algorithms to solve real-world problems is a must-have skill for any developer or programmer. This book will help you not only to develop the skills to select and use an algorithm to tackle problems in the real world but also to understand how it works.You'll start with an introduction to algorithms and discover various algorithm design techniques, before exploring how to implement different types of algorithms, with the help of practical examples. As you advance, you'll learn about linear programming, page ranking, and graphs, and will then work with machine learning algorithms to understand the math and logic behind them.Case studies will show you how to apply these algorithms optimally before you focus on deep learning algorithms and learn about different types of deep learning models along with their practical use.You will also learn about modern sequential models and their variants, algorithms, methodologies, and architectures that are used to implement Large Language Models (LLMs) such as ChatGPT.Finally, you'll become well versed in techniques that enable parallel processing, giving you the ability to use these algorithms for compute-intensive tasks.By the end of this programming book, you'll have become adept at solving real-world computational problems by using a wide range of algorithms.

4
Ebook

50 algorytmów, które powinien znać każdy programista. Klasyczne i nowoczesne algorytmy z dziedzin uczenia maszynowego, projektowania oprogramowania, systemów danych i kryptografii. Wydanie II

Imran Ahmad

Wiedza o algorytmach jest niezbędna przy rozwiązywaniu problemów programistycznych i prowadzeniu złożonych obliczeń. Każdy programista powinien dobrze znać algorytmy, musi też umieć je zaprojektować, modyfikować i stosować. Niezależnie od tego, czy zajmujesz się uczeniem maszynowym, kwestiami bezpieczeństwa, czy inżynierią danych, rzetelne zrozumienie algorytmów jest Ci bardzo potrzebne. Dzięki tej książce nauczysz się stosować algorytmy w praktycznych sytuacjach i zrozumiesz mechanizmy ich działania. Liczne przykłady pozwolą Ci się zapoznać z kilkoma sposobami ich projektowania i implementacji. Następnie poznasz algorytm określania pozycji stron w wynikach wyszukiwarek internetowych, związane z nimi grafy i algorytmy uczenia maszynowego, a także logikę. Zaznajomisz się ponadto z nowoczesnymi modelami sekwencyjnymi i ich wariantami, jak również algorytmami, metodykami i architekturami implementacji dużych modeli językowych, takich jak ChatGPT. W ostatniej części tego przewodnika znajdziesz opis technik przetwarzania równoległego, przydatnego w zadaniach wymagających dużej mocy obliczeniowej. W książce między innymi: projektowanie algorytmów przeznaczonych do złożonych zadań sieci neuronowe i techniki uczenia głębokiego struktury danych i algorytmy dostępne w bibliotekach Pythona algorytm grafowy służący do wykrywania oszustw za pomocą analizy sieciowej najnowocześniejsze algorytmy przetwarzania języka naturalnego tworzenie systemu rekomendacji filmów sekwencyjne modele uczenia maszynowego i nowoczesne modele LLM Algorytmy: klucz do sukcesu w programowaniu!

5
Ebook

Build Your Own Programming Language. A programmer's guide to designing compilers, interpreters, and DSLs for modern computing problems - Second Edition

Clinton L. Jeffery, Imran Ahmad

There are many reasons to build a programming language: out of necessity, as a learning exercise, or just for fun. Whatever your reasons, this book gives you the tools to succeed.You’ll build the frontend of a compiler for your language and generate a lexical analyzer and parser using Lex and YACC tools. Then you’ll explore a series of syntax tree traversals before looking at code generation for a bytecode virtual machine or native code. In this edition, a new chapter has been added to assist you in comprehending the nuances and distinctions between preprocessors and transpilers. Code examples have been modernized, expanded, and rigorously tested, and all content has undergone thorough refreshing. You’ll learn to implement code generation techniques using practical examples, including the Unicon Preprocessor and transpiling Jzero code to Unicon. You'll move to domain-specific language features and learn to create them as built-in operators and functions. You’ll also cover garbage collection.Dr. Jeffery’s experiences building the Unicon language are used to add context to the concepts, and relevant examples are provided in both Unicon and Java so that you can follow along in your language of choice.By the end of this book, you'll be able to build and deploy your own domain-specific language.