返回课程
AI015 专业级

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)以及机器精度(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.