This repository introduces the Julia programming language by replicating Schelling, Thomas C. "Dynamic models of segregation." Journal of mathematical sociology 1.2 (1971): 143-186..
From the creator's themselves:
We are greedy: we want more.
We want a language that's open source, with a liberal license. We want the speed of C with the dynamism of Ruby. We want a language that's homoiconic, with true macros like Lisp, but with obvious, familiar mathematical notation like Matlab. We want something as usable for general programming as Python, as easy for statistics as R, as natural for string processing as Perl, as powerful for linear algebra as Matlab, as good at gluing programs together as the shell. Something that is dirt simple to learn, yet keeps the most serious hackers happy. We want it interactive and we want it compiled.
It's a classical paper in the social science literature with wide influence in urban studies, economics, sociology among other disciplines. The model is brilliantly simple - one could replicate it with a checkers board set, with remarkably profound conclusions.
There are many other tutorials and introductory material out there that I recommend and have learnt from:
- The Reference Docs
- Quantitative Economics with Julia
- From Zero to Julia
- Julia for Data Science
- And many others...
I take a slightly different approach. Rather than going over concepts (Types, Loops, Control Statements etc.), I take a problem-driven approach - given a particular problem, how can we solve it using Julia. This is my favourite way to learn something new, try it on an actual problem and see where we end up. The idea is that this will be an incremental learning repository where we learn something new and apply it to our problem.
Some prior experience in lanaguages like Python or R and knowledge of git would be useful.
For development, this code is written in Julia v1.4, using both the Jupyter Notebook inteface as well as the vscode plugin for editing .jl files.
Follow the instructions over here to setup Jupyter for Julia and julia-vscode plugin.