BPB Online LLP
Hands-On Julia Programming
Sambit Kumar Dash
Hands-On Julia Programming
US$ 19.95
The publisher has enabled DRM protection, which means that you need to use the BookFusion iOS, Android or Web app to read this eBook. This eBook cannot be used outside of the BookFusion platform.
Description
Contents
Reviews

Build production-ready machine learning and NLP systems using functional programming, development platforms, and cloud deployment.

Key Features
● In-depth explanation and code samples highlighting the features of the Julia language.
● Extensive coverage of the Julia development ecosystem, package management, DevOps environment integration, and performance management tools.
● Exposure to the most important Julia packages that aid in Data and Text Analytics and Deep Learning.

Description
The Julia Programming language enables data scientists and programmers to create prototypes without sacrificing performance. Nonetheless, skeptics question its readiness for production deployments as a new platform with a 1.0 release in 2018. This book removes these doubts and offers a comprehensive glimpse at the language's use throughout developing and deploying production-ready applications.

The first part of the book teaches experienced programmers and scientists about the Julia language features in great detail. The second part consists of gaining hands-on experience with the development environment, debugging, programming guidelines, package management, and cloud deployment strategies. In the final section, readers are introduced to a variety of third-party packages available in the Julia ecosystem for Data Processing, Text Analytics, and developing Deep Learning models.

This book provides an extensive overview of the programming language and broadens understanding of the Julia ecosystem. As a result, it assists programmers, scientists, and information architects in selecting Julia for their next production deployments.

What you will learn
● Get to know the complete fundamentals of Julia programming.
● Explore Julia development frameworks and how to work with them.
● Dig deeper into the concepts and applications of functional programming.
● Uncover the Julia infrastructure for development, testing, and deployment.
● Learn to practice Julia libraries and the Julia package ecosystem.
● Processing Data, Deep Learning, and Natural Language Processing with Julia.

Who this book is for
This book is for Data Scientists and application developers who want to learn about Julia application development. No prior Julia knowledge is required but knowing the basics of programming helps understand the objectives of this book.

Table of Contents
Module 1. The Julia Language
1. Getting Started
2. Data Types
3. Conditions, Control Flow, and Iterations
4. Functions and Methods
5. Collections
6. Arrays
7. Strings
8. Metaprogramming
9. Standard Libraries
Module 2. The Development Environment
10. Programming Guidelines in Julia
11. Performance Management
12. IDE and Debugging
13. Package Management
14. Deployment
Module 3. Packages in Julia
15. Data Transformations
16. Text Analytics
17. Deep Learning

Language
English
ISBN
9789391030889
Cover Page
Title Page
Copyright Page
Foreword
Dedication Page
About the Author
About the Reviewers
Acknowledgement
Preface
Errata
Table of Contents
1. Getting Started
Introduction
Structure
Objectives
Purpose of Julia
1. Performance is the core
2. Modern programming language
3. Integration with other platforms
4. Designed for researchers
5. Metaprogramming
6. Development toolset
7. Package ecosystem
8. Server platforms support
9. Open source and flexible licensing
10. Enterprise-friendly architecture
11. Active community
12. Get under the hood
A brief history
The book outline
Module 1. The Julia language
Chapter 1. Getting started
Chapter 2. Data types
Chapter 3. Conditions, control flow, and iterations
Chapter 4. Functions and methods
Chapter 5. Collections
Chapter 6. Arrays
Chapter 7. Strings
Chapter 8. Metaprogramming
Chapter 9. Standard libraries
Module 2. The development environment
Chapter 10. Programming guidelines in Julia
Chapter 11. Performance management
Chapter 12. IDE and debugging
Chapter 13. Package management
Chapter 14. Deployment
Module 3. Packages in Julia
Chapter 15. Data transformations
Chapter 16. Text analytics
Chapter 17. Deep learning
Setting up Julia
Downloading installer binaries
Julia versions
Linux (x86)
Windows
Read-Eval-Print Loop (REPL)
Interactive Julia and Jupyter
Julia programs
Conclusion
Exercises
2. Data Types
Introduction
Structure
Objectives
Types in Julia
Variables
Definition versus initialization
Constants
Literals
Tuples
Built-in types
Nothing
Numeric types
Bool
Integral types
Floating point numbers
Abstract types
Primitive types
Bit types
Rational and complex
Char
String
User-defined types
struct
mutable struct
Members
Any
Parametric data types
Operations on types
typeof
isa
supertype
Printing data types
show
print
string
Conclusion
Exercises
3. Conditions, Control Flows, and Iterations
Introduction
Structure
Objectives
Compound statements
begin…end
Conditional execution
if…else
The Missing switch…case
Unstructured branching
Iterative execution
for
Continue and break
for…in
Multiple range objects
while
Missing do…while
Exception handling
try…catch
throw/rethrow
finally
Information from exceptions
Stack traces
Parallel execution
Conclusion
Exercises
4. Functions and Methods
Introduction
Structure
Objectives
Introduction
8-Queens problem
Two mutually safe queens
Operators
Short form
Anonymous Functions
Input arguments
Fixed arguments length
Variable number of arguments
Default values
Slurping and splatting
Return value
Type safety
Multiple values
Recursion
Tail call
Polymorphic methods
Data types
Multiple dispatch
Constructors
Return value
Parametric data type
Dispatch interface
Type interaction
Conversion
Promotion
Conclusion
Exercises
5. Collections
Introduction
Structure
Objectives
Predefined data structures
Tuple
NTuple
Tuple as a collection
Integers as type parameters
Value parameters
Singleton
Ranges
UnitRange
StepRange
Decreasing ranges
Array
Memory layout and indexing
Effects of paging
Some useful functions
Constructors
zeros and ones
trues and falses
fill and similar
collect
reshape
hcat, vcat, and hvcat
Associative collection
Dict
get Methods
setindex! Method
Hashing
Set
Union and intersection
Iteration
for loop
function…do
Iteration framework
Iterate methods
Optional methods
Example
Generators and comprehensions
Conclusion
Exercises
6. Arrays
Introduction
Structure
Objectives
Containers
Dimensions
Indexing
Scalars
Ranges
Vectors
Linear index
Cartesian index
Boolean index
Assignment
Special indices
Interface
Slicing
Broadcasting
Performance
broadcast versus map
Reduction
Associativity
Map and reduce
Slices
Abstract array types
Sparse arrays
Sparse vector storage
Sparse matrix storage
Efficiency
Linear algebra
Conclusion
Exercises
7. Strings
Introduction
Structure
Objectives
Background
Strings
Characters
Encoding
ASCII
ISO-8859
The ‘C’ Encoding
Unicode
Unicode transformations
Unicode support in Julia
Fonts and Glyphs
String
String methods
Comparison
Iteration
Split and concatenate
Case conversion
Pattern matching
Regular expressions
Encodings
Useful functions
Character array
Custom strings
AbstractChar
AbstractString
Conclusion
Exercises
8. Metaprogramming
Introduction
Structure
Objectives
Background
Abstract Syntax Trees (AST)
Symbols and interned strings
Inline evaluations
Multiline expressions
Nested quotes and interpolation
Functions
Macros
Calling conventions
Custom string literals
Generated functions
Commonly used macros
Source locations
eval
assert
time
Conclusion
Exercises
9. Standard Libraries
Introduction
Structure
Objective
Background
Modules
Standard modules
System
Filesystem
Parallel programming
Asynchronous programming
Tasks
Channels
Locks
Multithreading
Distributed computing
I/O and network
Default streams
Text I/O
Binary I/O
File I/O
Delimited files
Network communication
Memory and I/O
Constants
Notable modules
Dates
Logging
Statistics
Random numbers
Conclusion
Exercises
10. Programming Guidelines in Julia
Introduction
Structure
Objective
Background
Guidelines for maintainability
Coding style
Functional programming principles
Declarative programming
Functions with no side effects
Higher-order functions
Immutability
Commonly used patterns
Interfaces
Super types
Holy traits
Delegation
Accessor methods
Contributing to open source
Contributing to Julia
Conclusion
Exercises
11. Performance Management
Introduction
Structure
Objective
Background
The right level of optimization
Resources
The choice of algorithm
Optimize wisely
Julia versus competition
Benchmarking
Code generation tools
Type stability
Unnecessary allocations
Parametric data types
Remove unnecessary code
Profiling
Guidelines for high-performance code
Memoization
Global variables
Conclusion
Exercises
12. IDE and Debugging
Introduction
Structure
Objective
Background
Editor integration
vim
Emacs
Notepad++
IDE
Atom
Visual Studio Code
Debugging
print, log, and @assert
Unit tests
REPL
Line debugging in IDE
Code-Run-Fix
Conclusion
Exercises
13. Package Management
Introduction
Structure
Objective
Background
Projects, modules, and packages
Modules
Projects
Libraries
Packages
N-Queens revisited
Creating a new package
Problem statement
Package initialization
Developing the functionality
Registering in GitHub
Test automation
Coverage
Documentation
Documenter configuration
Continuous integration
Visualization of code coverage
Binary dependencies
Using native binaries
Environments
Package architecture
REPL command
Pkg Module
Conclusion
Exercises
14. Deployment
Structure
Objective
Cloud environments
Deploying Julia
REST-based web services
Docker containers
Kubernetes
Orchestrating AKS from Julia
Public cloud infrastructures
Amazon Web Services
Microsoft Azure
Google Cloud Platform
Conclusion
Exercises
15. Data Transformations
Introduction
Structure
Objective
Setting up the environment
FileIO
Text data
Delimited files
XML files
HTML files
PDF files
Microsoft office documents
Image data
Tabular data
Data visualization
Conclusion
Exercises
16. Text Analytics
Introduction
Structure
Objective
Text processing pipeline
Preprocessing
Tokenization
Word representations
Embeddings
Semantic analysis
Classifiers
Extractive summarization
Evaluation metrics
Named entity recognition
ULMFiT
Conclusion
Exercises
17. Deep Learning
Introduction
Structure
Objective
Deep learning
What is Flux?
Model Zoo
Types of neural network
Fully connected
CNN
RNN
Conclusion
Exercises
Index
The book hasn't received reviews yet.
You May Also Like
Data Scientist Pocket Guide
$19.95
Mohamed Sabri
Data Scientist Pocket Guide
Data Science Fundamentals and Practical Approaches
$19.95
Dr Gypsy Anand/ Dr Rupam Sharma
Data Science Fundamentals and Practical Approaches
Learn AI with Python
$19.95
Gaurav Leekha
Learn AI with Python
Artificial Intelligence and Deep Learning for Decision Makers
$19.95
Dr. Jagreet Kaur, Navdeep Singh Gill
Artificial Intelligence and Deep Learning for Decision Makers
Essentials of Deep Learning and AI
$19.95
Shashidhar Soppin, Dr. Manjunath Ramachandra, B N Chandrashekar
Essentials of Deep Learning and AI
Natural Computing with Python
$19.95
Giancarlo Zaccone
Natural Computing with Python
Hands-on Supervised Learning with Python
$19.95
Gnana Lakshmi T C, Madeleine Shang
Hands-on Supervised Learning with Python