-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Denis F. Cioffi, Ph.D. edited this page Oct 28, 2025
·
82 revisions
- Paul Barrett
- Erandi Chavez
- Abhro Rahman
- Denis Cioffi
N.B. Session lectures should be about 15 minutes, with the rest of the time for the students to work.
- Contextual history of Python and Julia
- Installation, if necessary
- Workshop outline
- Package management
- environments and their relationship to projects (Day 2; show Day 2 outline, too.)
- quick note of DrWatson.jl package
- A Julia sampler
- Measurements example and problems
- Unitful example and problems
- Symbol example and problems
- GPU example and problem
- 7+ problems (~5 minutes each)
-
Multidimensional Arrays
- Mathematics protocol, i.e., column major & 1 indexing
- Array creation, i.e., '
,' & ';' syntax - Array broadcasting, i.e., dot (
.) operator - Array fusion (
A.*B .+ C), i.e., implied for loop - Matrix multiplication (
*operator)
-
7+ problems (~5 minutes each)
-
Array and tuple comprehensions, i.e.,
[... for ...],(... for ...) -
Array comprehensions with "if statement"
-
Array slicing & indexing, i.e.,
[1:end,2] -
Array slicing with boolean array
-
Cartesian Index (?)
-
7+ problems (~5 minutes each)
==========================================
- Using Arrays with examples loading data examples
- loading data from a CSV file
- loading data from a text file
- Power of Julia with Arrays: Broadcasting and Fusion
- broadcasting as an implied for loop
- operations fused - huge benefit for performance
- show some benchmarks to emphasize optimization
- conciseness
- indexing and slicing
- don't need the NumPy overhead
- Quality of life improvements
- General interactions with arrays, and the benefits that comes from it being built-in to the language
- list & array comprehension
- Difference between element-by-element multiplication (
.*) and matrix multiplication(*) - tuples have less allocation: faster (can show benchmarks as exercise?) Let them play around with arrays while emphasizing the above points!
- Broadcasting with functions leads into function section, below.
-
introduce concept of multiple dispatch
-
contrast to python: Julia looks at all arguments
-
7+ problems (~5 minutes each)
-
deepen understanding of multiple dispatch
-
multiple dispatch can also use types to do multiple dispatch
-
7+ problems (~5 minutes each)
6. Does a brief discussion of AI go here? Point should be made that AI doesn't know Julia well, and so its specific commands will often be incorrect, but it can still give good ideas on how to proceed.
-
Perhaps come with a packaged example.
-
7+ problems (~5 minutes each)
- how does one translate code from one language to the next
- have students do group coding to translate code from Python to Julia, compare+contrast+discuss between all groups at the end
- Think Julia
- Julia As Your First Programming Language: A Book for Scientists
- Introduction to Computational Thinking, Fall 2020 course.
- MoJuWo | Modern Julia Workflows (stumbled across this --- no idea how good it is)
- Introduction to Julia | Matt Bauman | JuliaCon 2024 (three hours)
- 2025; with two more presenters (2.75 hours)