返回課程
AI015 專業人士

Julia 程式語言入門

一份全面的指南,介紹 Julia 程式語言。Julia 是一種高性能、通用的動態程式語言,非常適合科學與數值計算。本課程涵蓋從基本語法和資料類型到進階主題,包括元程式設計、資料框、網路通訊以及資料庫介接等內容。

4.9
30.0h
913 學習者
10 lessons
0 讚好
人工智能
開始學習

課程總覽

📚 內容摘要

一份關於 Julia 編程語言的全面指南,這是一種高性能、通用型的動態語言,非常適合科學計算與數值運算。本課程涵蓋從基本語法和資料類型到高階主題(如元程式設計、資料框架、網路通訊以及資料庫介接)的全部內容。

以 C 語言的速度掌握高性能科學計算,同時享有 Python 的易用性。

作者: Tutorials Point (I) Pvt. Ltd.

致謝: 版權所有 2020 年由 Tutorials Point (I) Pvt. Ltd. 所有內容與圖形均屬 Tutorials Point 所有。

🎯 學習目標

  1. 定義 Julia 編程語言,並識別其核心特性與歷史背景。
  2. 從效能與語法角度區分 Julia 與其他技術計算語言的不同之處。
  3. 成功在 Linux、Windows 及 macOS 系統上安裝並設定 Julia 環境與 REPL。
  4. 適用 Julia 的風格規範進行變數命名,並使用單行或多行註解來撰寫程式碼文件。
  5. 利用範圍物件、生成器、巢狀式表示法及內建函數(如 zeros()ones())建立各種類型與維度的陣列。
  6. 使用布林邏輯、end 關鍵字與帶驚嘆號的函數(例如 push!splice!)執行進階的陣列索引與變更操作。
  7. 建立與操作元組(Tuples)與命名元組(Named Tuples),包含其作為函數關鍵字參數的應用。
  8. 識別並管理整數溢位行為與除法錯誤,使用標準與任意精度類型。
  9. 分析浮點數表示方式,包括符號零、特殊值(NaN、Inf)與機器誤差(machine epsilon)。
  10. 執行並結合算術、位元運算與更新運算子來操控資料類型。

課程

Lesson

This lesson introduces the Julia programming language and its ability to solve the "two-language problem" by providing high-level, readable syntax that executes with the speed of low-level languages. Students will learn how to set up their development environment and understand how Julia’s LLVM-based compilation eliminates the need to rewrite prototypes for production.

This lesson introduces the fundamentals of Julia programming, focusing on variable naming conventions, type inference, and the use of snake_case. Students will also learn how to manage the Julia environment, execute scripts using the include() function, and implement proper documentation standards through single and multi-line comments.

This lesson introduces tuples in Julia as fixed-length, immutable collections that ensure data integrity by preventing accidental modifications. Students will learn how to define and index tuples, utilize tuple unpacking, and leverage their performance advantages for storing fixed-size data.

This lesson introduces the landscape of operators in Julia, covering arithmetic, bitwise, and logical operations, as well as the use of compound updating assignments. Students will learn how to apply these operators effectively while managing type-specific behaviors and operator precedence to solve computational problems.

This lesson explores the distinction between Julia’s 32-bit Char primitives and immutable UTF-8 Strings, emphasizing their unique type hierarchies and memory handling. Students will learn to perform character arithmetic, implement functional transformations, and optimize text processing through efficient byte-based indexing and SubString views.

This lesson explores flow control in Julia, focusing on implementing complex conditional logic, iterative loops, and key-value data structures. Students will also learn to leverage Julia's multiple dispatch system and the Dates module to manage and manipulate temporal data types efficiently.

This lesson explores the Julia Dates module, focusing on the hierarchical management of temporal data through Date, Time, and DateTime types. Students will learn to perform precise calendar arithmetic, utilize stream-based I/O, and apply metaprogramming techniques to build flexible, reusable code.

This lesson introduces the Julia visualization ecosystem, focusing on the Plots.jl metapackage that provides a unified syntax for various rendering backends. Students will learn how to switch between backends like GR and UnicodePlots to optimize workflows for both high-resolution graphical output and terminal-based data analysis.

This lesson explores the four pillars of scientific computing in Julia: high-performance data handling, statistical rigor, modular architecture, and versatile graphics. Students will learn how to integrate diverse data streams, apply weighted statistical metrics, and utilize various libraries for both low-level and declarative data visualization.

This lesson explores Julia’s networking and database ecosystem, focusing on using the Multiple Dispatch paradigm to interface with high-performance tools like Gaston and PGFPlots for data visualization and reporting. It also introduces practical byte-stream communication, contrasting the reliability of TCP and Named Pipes with the speed-focused nature of UDP.