Description
In this course, you will :
- Introduce you to the language and the main concepts: control structures, data types and how to do input and output..
- Explain how to adapt object oriented thinking to Julia and get you into a more functional way of thinking about programming challenges..
- Cover many of the amazing ways Julia can increase both developer productivity through parametrized types, macros, code generation and utilizing existing libraries in other languages. Also learn how to write high performance Julia code..
Syllabus :
1. Installation and Setup
- The Course Overview
- Downloading Julia
- Setting up an Editor
- Using the Julia REPL
2. Learning Basics in Julia
- Numbers
- Strings
- Arrays
- Control Flow
- Functions
- Variables
- Dictionaries
- Practical Usage of Functions
3. Working with Types
- Inspecting Types
- Type Hierarchies and Multiple Dispatch
- Conversion and Promotion
- Defining Your Own Types
4. Input and Output
- Reading and Writing to Files
- Networking
- Dealing with Different File Formats
5. Modules and Packages
- Using Modules
- Networking
- Reading and Writing CSV Files
6. Object-Oriented Programming
- Interfaces
- Maze Builder
- Graphics Editor
- Implementation Inheritance
7. Functional Programming in Julia
- Higher Order Functions
- Function Composition
- Functional Approach
- Functional Interpreter Pattern
8. Collections
- Common Traits
- Collection Types
- Multidimensional Arrays
- Sets
9. Type Unions
- Introducing Type Unions
- Code Reuse Through Type Unions
10. Parametric Types
- Why Parametric Types?
- Creating a Generic Collection
- Pitfalls
- Nullable
11. Debugging and Testing
- Debugging Approaches
- Writing Debuggable Code
- Writing Tests
12. Metaprogramming
- Debugging Approaches
- Macros
- Code Generation
13. Performance
- Compilation
- Abstract Versus Concrete Types
- Type Stability