Collecting experiences from new Julia users?

I’m teaching a class on computational science in fall 2022, and was interested in trying to collect experiences from new Julia users to understand what common hangups are and how to ease transitions into the language.

I was considering having students add their issues to a public wiki for the class, and maybe offer some small extra credit related to participation. Has anyone done something similar before? If so, I’d love to hear any suggestions or tips for managing this data (or what data would be useful).

10 Likes

To be helpful, don’t ask for just random feedback. Ask everyone for one actionable item, like error message they found confusing, or one tutorial that had a bug, etc. There’s lots of generic data, but finding bits to act on is how you actually get it fixed

11 Likes
  1. Coming from languages like Typescript and Python, one thing that i had an issue with was that Julia doesn’t support OOP, things like inheritance, object methods, etc. So i had to change the way i looked at the problems instead of creating classes and objects. But once you get used to it, it makes a lot of sense because of how Julia works with multiple dispatch and such.

  2. Another thing that i had a problem with is the Module system in Julia. When you want to split your program in multiple files, you have to include all the files, and you have to be careful to not include twice, and also the order matters. So when you developing packages, often you have the entry file of your package containing all the include statements. It was something i had to get used to, but i would really enjoy if i could just write from file import x like in Python.

3 Likes

Good idea, thanks. Will make it easier to give credit for student feedback too.

If the students are used to Python, you can certainly draw from Noteworthy Differences from other Languages · The Julia Language to anticipate their most frequent issues.
As for me, I often come back to the Julia documentation itself. Since it is quite large, here are my top go-to pages, which I think contain a lot of the Julia spirit:

1 Like

@tknopp is teaching a scientific programming course and we have a number of Pluto exercise sheets accompanying the lecture. Inspired by Introduction to Computational Thinking. These actually do provide great feedback on where the students struggle.

From our experience it is worthwhile to take enough time to elaborate Julia’s type system and the multiple dispatch feature. E.g. we have them write a quaternion type with a basic interface, which is simple with the complex numbers as blueprint.

1 Like

That site looks amazing!

I wish I had the time to focus just on Julia. Unfortunately, this is our computational science course where we are expected to cover C and C++ too…Julia is only about 1/3 of the course.

1 Like

:eyes:

How do you have time to teach 3 languages (especially C++!) and also teach them some computational science (numerical algorithms, floating-point arithmetic, not to mention the problem domains…)?

6 Likes

Veeeeeery limited foray into C++, it’s basically taught as C with classes. We don’t cover numerical algorithms either (that’s another course), and there’s not much done on problem domains. We’ve typically chosen one linear-algebra like problem (Laplace’s equation with Jacobi method, explicit wave propagation using finite differences, a least squares solve, etc) and just used it as a vehicle to present concepts and implementations in each language.

1 Like