[Ann] Julia Quick Syntax Reference 2nd Edition (Springer)

Dear all, I am pleased to announce the availability of the 2nd edition of my Apress book “Julia Quick Syntax Reference” [Springer]. [Amazon]
Yes, it’s not that quick (361 pages, over 50% more than the 1st edition) and it goes far beyond just syntax, but that’s the name the publisher chose :roll_eyes:

Basically, it’s a compact (I won’t waste space reporting obvious code output - you can still clone the associated github repository) practical introduction to the language and its ecosystem, with a strong focus on data analysis (DataFrames & friends, Plots, various IO packages…), the use of scientific packages (JuMP, SymPy, LsqFit, Distributions…) and machine learning work based on the BetaML package that I also helped to develop (which includes algorithms for regression, classification, clustering, missing imputation, dimensionality reduction, predictive analysis…).

This second edition goes deeper into modules, environments and parallelism in Julia (including GPU). It covers random numbers, reproducibility in stochastic computations, and adds a section on probabilistic analysis. Finally, it provides some practical exercises and solutions (in the git repository) for self-study.

As a new book, I have a limited number of PDFs of the final book that the editor allowed me to share in exchange for a review of the book (good or bad, of course).
If you are interested in getting one, please contact me via private message.

Most of the content of the book is also available (although in a much more messy form) on my Julia Concise Tutorial and Scientific Programming And Machine Learning in Julia (SPMLJ) online course.

Click to browse the book index

(pages refer to an internal document)

First part (Julia core)

Title Page
1 Getting started 7
1.1 Why Julia 7
1.2 Installing Julia 8
1.3 Running Julia 10
1.4 Miscellaneous syntax elements 11
1.5 Modules and packages 12
1.6 Environments 15
1.7 Help system 17
2 Data types and Structures 19
2.1 Simple types (Non-Containers) 19
2.2 Strings 20
2.3 Arrays (lists) 21
2.4 Tuples 27
2.5 Named tuples 28
2.6 Dictionaries 29
2.7 Sets 30
2.8 Dates and times 30
2.9 Memory and copy issues 33
2.10 Various notes on data types 34
2.11 Random numbers 35
2.12 Missing, nothing and NaN 36
3 Control flow and functions 37
3.1 Code block structure and variable scope 37
3.2 Repeated iteration: for and while loops, list comprehension, maps 38
3.3 Conditional statements: if blocks, ternary operator 41
3.4 Functions 41
3.5 Do blocks 47
3.6 Exiting Julia 48
4 Custom Types 49
4.1 Primitive type definition 49
4.2 Structure definition 50
4.3 Object initialisation and usage 51
4.4 Abstract types and inheritance 53
4.5 Some useful functions related to types 57
4.6 Definition of common Julia terms 57
EXERCISE 1: The Schelling Segregation Model 59
5 Input - Output 65
5.1 Filesystem functions 65
5.2 Reading (Input) 66
5.3 Writing (Output) 72
5.4 Other specialised IO 76
6 Metaprogramming and macros 77
6.1 Symbols 78
6.2 Expressions 78
6.3 Macros 81
7 Interfacing Julia with other languages 84
7.1 Julia ⇄ C 85
7.2 Julia ⇄ C++ 86
7.3 Julia ⇄ Python 90
7.4 Julia ⇄ R 95
8 Efficiently write efficient code 101
8.1 Performances 101
8.2 Debugging 109
8.3 Managing run-time errors (exceptions) 115
9 Parallel Computing in Julia 116
9.1 GPU programming 116
9.2 Multi-threading (on the CPU) 119
9.3 Multi-processing 121

Second part (Packages Ecosystem)

Title Page
10 Working with data 124
10.1 Using the DataFrames package 125
10.2 IndexedTables 140
10.3 Using the Pipe operator 143
10.4 Plotting 144
11 Scientific libraries 153
11.1 JuMP, an optimisation framework 153
11.2 SymPy, a CAS system 163
11.3 LsqFit, a data fit library 166
11.4 Working with distributions 168
EXERCISE 2: Fitting a Forest Growth Model 171
12 AI with Julia 176
12.1 Machine Learning Goals and Approaches 176
12.2 The BetaML toolkit 178
12.3 Data pre-processing 181
12.4 Model fitting. An overview of the main algorithms 191
12.5 Model evaluation, interpretation and hyperparameter tuning 202
12.6 Specialized AI libraries in Julia 215
EXERCISE 3: Predict the values of houses in Boston 217
13 Utilities 222
13.1 Weave for dynamic documents 222
13.2 ZipFile 226
33 Likes

Congratulations!

By the way, I hope your book will soon be added to the list of books on the Julia-lang website.

1 Like

If you mean Books, it’s there (and so was the 1st edition…)

But thanks, I didn’t realize that I did update the record of the book but not the sorting (it is by publishing date)

1 Like