Skip to content

hbarquanta/Julia

Repository files navigation

Julia Tutorials Repository

Overview

Welcome to the Julia Tutorials Repository! This repository contains a comprehensive collection of tutorials designed to help you master the Julia programming language. The tutorials are divided into three levels: Basics, Intermediate, and Expert. Each level is available in both Jupyter Notebook and Pluto.jl formats, providing you with flexible learning options.

Table of Contents

Getting Started

If you are new to Julia, we recommend starting with the Julia Basics tutorial. For those who are already familiar with the basics, you can dive into the Intermediate and Expert tutorials. Each tutorial is designed to build upon the previous one, progressively introducing more advanced concepts and techniques.

Repository Structure

The repository is structured as follows:

/Julia-Tutorials
│
├── notebooks
│   ├── Julia01_Basics.ipynb
│   ├── Julia02_Intermediate.ipynb
│   └── Julia03_Expert.ipynb
│
├── pluto_notebooks
│   ├── Julia01_Basics.jl
│   ├── Julia02_Intermediate.jl
│   └── Julia03_Expert.jl
│
└── README.md
  • notebooks: Contains the Jupyter Notebook files for each tutorial level.
  • pluto_notebooks: Contains the Pluto.jl Notebook files for each tutorial level.

Tutorial Descriptions

Julia Basics

File: Julia01_Basics.ipynb | Julia01_Basics.jl

This tutorial introduces the fundamentals of Julia, including:

  • Julia setup and environment
  • Basic syntax and data types
  • Control flow (loops, conditionals)
  • Functions and scope
  • Basic plotting

Julia Intermediate

File: Julia02_Intermediate.ipynb | Julia02_Intermediate.jl

This tutorial dives deeper into more advanced Julia concepts, such as:

  • Advanced data structures
  • File I/O operations
  • Error handling
  • Module creation and usage
  • Broadcasting functions
  • Intermediate plotting techniques

Julia Expert

File: Julia03_Expert.ipynb | Julia03_Expert.jl

This tutorial covers expert-level topics and advanced numerical techniques, including:

  • Advanced numerical linear algebra
  • Eigenvalue and eigenvector computations
  • Optimization techniques
  • GPU computing with CUDA.jl
  • Parallel and distributed computing
  • Advanced plotting with Makie.jl

Installation and Usage

Jupyter Notebooks

  1. Clone the repository:

    git clone https://github.com/your-username/Julia-Tutorials.git
    cd Julia-Tutorials/notebooks
  2. Install Jupyter and IJulia:

    julia -e 'using Pkg; Pkg.add("IJulia")'
  3. Open Jupyter Notebook:

    jupyter notebook
  4. Navigate to the desired notebook and start learning!

Pluto.jl Notebooks

  1. Clone the repository:

    git clone https://github.com/your-username/Julia-Tutorials.git
    cd Julia-Tutorials/pluto_notebooks
  2. Install Pluto.jl:

    julia -e 'using Pkg; Pkg.add("Pluto")'
  3. Run Pluto.jl:

    julia -e 'using Pluto; Pluto.run()'
  4. Open the desired notebook file (.jl) in Pluto.jl and start learning!

Contributing

We welcome contributions from the community! If you would like to contribute to this repository, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bugfix.
  3. Commit your changes and push to your fork.
  4. Submit a pull request with a detailed description of your changes.

Please make sure your contributions adhere to our coding standards and include relevant tests.

License

This repository is licensed under the MIT License. See the LICENSE file for more details.