Thank you for participation in the “Julia in the classroom” session and thank you for your comments and insights.
Following the discussion during the BOF meeting, please find below some quick notes and conclusion. Please fell free to comment and add your materials that you can share.
The points here are what we were able to note down. Some of them are obviously commonly known issues, but still we think it is good to voice them.
If we are missing something important then just add a comment please!
Currently Julia is taught to very heterogeneous groups of students:
- across many domains (engineering, mathematics, physics, economics/business)
- different level of studies (undergraduate, graduate, doctoral)
- students have different levels of programming background and expectations
- with either focus on programming or just as a tool that helps to solve a problem in a particular domain
Crucial issues when teaching Julia:
- It would be very good to have a good book with introduction to Julia 1.0.
- Making sure that core packages install on all major platforms in a stable way.
- Cutting down Julia latency (actually this is most crucial when teaching).
- New users need to be pointed to a collection of packages that just work and are their best-of-breed (e.g. several packages for plotting exist, the choice is not obvious and changes over time)
Some thoughts on “selling” Julia to students:
- Do not focus on performance or language comparisons at start.
- Highlight programmer productivity (e.g. LOC, LOC vs speed compared to other languages).
- Highlight readability (Julia code is almost 1-2-1 with written algorithm in the documentation)
- Ability to understand internals by the students to improve their understanding of the topic (the internals are usually written in Julia)
- In many courses just focus on problem solving and sell Julia as a tool (do not concentrate on just teaching Julia). Similarly teaching good programming practices and using Julia as a tool is a good approach.
- Have a portfolio of good showcases (please share showcases in the comments below to help others!).
- It is actually important to teach students how they can reach out to Julia community to get help.
- PyPlot.jl is currently considered as plotting option that is simplest to use (providing good plotting is crucial, DataVoyager.jl here is very promising).
- Julia type system and multiple dispatch can be effectively used to teach students that problems have structure (e.g. different types of data call for different kinds of plots or data analysis techniques).
We are looking forward to your comments,
Przemyslaw and Bogumil