# Issues encountered teaching classes with Julia for the first time

**URL:** <https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553>\
**Category:** New to Julia\
**Created:** [March 5, 2021, 1:35pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553 "2021-03-05T13:35:03Z")\
**Posts on this page:** 20\
**Page:** 4

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [March 12, 2021, 6:48am UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/61 "2021-03-12T06:48:12Z")

</div>

> [@compleat](#):
>
> Package Manager problems, leading to fixes like having to manually delete ‘Registry.toml’. Packages (e.g. Flux) spontaneously break irretrievably.

This happened when a user forcibly interrupted the registry download (with e.g. Ctrl-C) and resulted in a “partial” registry which was unexpected and things then behaved badly. This is fixed on the upcoming 1.6 so it should at leat not happen anymore after that.

---

<div class="post-metadata">

**Author:** ![compleat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/compleat/32/8958_2.png) [@compleat](https://discourse.julialang.org/u/compleat)\
**Post date:** [March 12, 2021, 1:06pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/62 "2021-03-12T13:06:35Z")

</div>

> [@kristoffer.carlsson](#):
>
> This happened when a user forcibly interrupted the registry download (with e.g. Ctrl-C) and resulted in a “partial” registry which was unexpected and things then behaved badly. This is fixed on the upcoming 1.6 so it should at leat not happen anymore after that.

That sounds promising!  
[Thanks for letting me know!]

---

<div class="post-metadata">

**Author:** ![compleat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/compleat/32/8958_2.png) [@compleat](https://discourse.julialang.org/u/compleat)\
**Post date:** [March 12, 2021, 1:16pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/63 "2021-03-12T13:16:35Z")

</div>

> [@baggepinnen](#):
>
> I do not agree with this at all. GR has been very robust for a long time but PyPlot on the other hand can be messed up by all sorts of things and I, and many around me have not been able to use PyPlot for the last couple of years. Installing MKL.jl used to be an easy way to make PyPlot unusable, not sure if this particular problem is true anymore though.

I have had it break fairly often using it on different platforms. Unfortunately, once that starts happening, it is a total mess, and is virtually unfixable. I had once figured out a workaround which allowed me to keep using Plots, via plotting to png, which I have now forgotten. Perhaps, if there were an easy ‘safety net’, where I could tell my students ‘if you get GR errors, try this’, that would go a long way to minimising my own issues (as teacher) in this regard.

---

<div class="post-metadata">

**Author:** ![StatisticalMouse](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/statisticalmouse/32/43370_2.png) [@StatisticalMouse](https://discourse.julialang.org/u/StatisticalMouse)\
**Post date:** [March 12, 2021, 1:43pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/64 "2021-03-12T13:43:15Z")

</div>

GR has just worked for me, but I have a Mac. In the Computational Thinking discussion forums some guy was complaining it not working on Windows.

---

<div class="post-metadata">

**Author:** ![compleat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/compleat/32/8958_2.png) [@compleat](https://discourse.julialang.org/u/compleat)\
**Post date:** [March 12, 2021, 1:55pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/65 "2021-03-12T13:55:00Z")

</div>

I have not had any problem with it on my Mac, but I did remotely connecting to Linux from my Mac… however this seems to have been fixed by the recent (unexpected) update of XQuartz. You might be right about it being a Windows problem.

---

<div class="post-metadata">

**Author:** ![widged](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/widged/32/18739_2.png) [@widged](https://discourse.julialang.org/u/widged)\
**Post date:** [March 12, 2021, 2:46pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/66 "2021-03-12T14:46:37Z")

</div>

To get around any issue that might come from issues with the computer that the student is using or as a backup in case of problems, you can always use a katacoda sandbox with the libraries that you will need for the course of the day already preinstalled. Each student will open its own version of the sandbox and will be free to work autonomously.

I set up a sandbox myself just to try out - [https://www.katacoda.com/widged/scenarios/julia-sandbox](https://www.katacoda.com/widged/scenarios/julia-sandbox). All you need to do, as starter, is copy the code in [katacoda-scenarios/julia-sandbox at master · widged/katacoda-scenarios · GitHub](https://github.com/widged/katacoda-scenarios/tree/master/julia-sandbox) into the katacoda-scenarios repo that you can create using their easy to follow step by step helpers

---

<div class="post-metadata">

**Author:** ![Paul\_Soderlind](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/paul_soderlind/32/1753_2.png) [@Paul\_Soderlind](https://discourse.julialang.org/u/Paul_Soderlind)\
**Post date:** [March 12, 2021, 2:47pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/67 "2021-03-12T14:47:31Z")

</div>

This might help:

```julia
ENV["GRDIR"]=""
] build GR

```

---

<div class="post-metadata">

**Author:** ![compleat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/compleat/32/8958_2.png) [@compleat](https://discourse.julialang.org/u/compleat)\
**Post date:** [March 12, 2021, 3:30pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/68 "2021-03-12T15:30:46Z")

</div>

Thanks, yes, this one has come in handy quite a few times. [I tend to forget about it, though and then rediscover it]

I wonder if maybe development people might even add this suggestion in the GR error messages? [Or even figure out a way to prevent errors caused by this?]

Thanks!

---

<div class="post-metadata">

**Author:** ![Oscar\_Reula](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_reula/32/14396_2.png) [@Oscar\_Reula](https://discourse.julialang.org/u/Oscar_Reula)\
**Post date:** [March 15, 2021, 9:20pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/69 "2021-03-15T21:20:34Z")

</div>

Have the same problem, for first years students it is better to have an ordered code, reactivity is confusing to them. How did you deactivate it?

---

<div class="post-metadata">

**Author:** ![compleat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/compleat/32/8958_2.png) [@compleat](https://discourse.julialang.org/u/compleat)\
**Post date:** [March 15, 2021, 9:33pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/70 "2021-03-15T21:33:04Z")

</div>

I did it by getting some programming help to fix it and creating Neptune!

Have your students try Neptune.jl

[btw, it also allows multi-line cells by default, which Pluto doesn’t]

---

<div class="post-metadata">

**Author:** ![Oscar\_Reula](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_reula/32/14396_2.png) [@Oscar\_Reula](https://discourse.julialang.org/u/Oscar_Reula)\
**Post date:** [March 15, 2021, 9:48pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/71 "2021-03-15T21:48:50Z")

</div>

Great! Thanks!

---

<div class="post-metadata">

**Author:** ![compleat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/compleat/32/8958_2.png) [@compleat](https://discourse.julialang.org/u/compleat)\
**Post date:** [January 3, 2022, 10:41pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/72 "2022-01-03T22:41:22Z")

</div>

Since starting this post, I have taught again using Julia and this time, it went much more smoothly. The issues with package management have smoothed out alot, and run much faster, and everything is seeming alot more stable. In fact, Julia was very popular in a Financial Theory class of 200 students. We made heavy use of JuMP, which has a much-improved interface that students liked. I used Jupyter Notebooks, and I have found this to work much better since the JupyterLab standalone app. The GR issue and the CSV issues I had pointed out still came up, but with much lower frequency [actually these issues are avoided entirely, so long as you warn students to add CSV before IJulia]

There also are a few helpful online courses now, so students having difficulty catching on can get extra support.

All in all, a great improvement in teacher (and I think student) experience.

Thanks All!

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [January 3, 2022, 10:49pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/73 "2022-01-03T22:49:49Z")

</div>

Great to hear this has improved!

---

<div class="post-metadata">

**Author:** ![ptoche](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ptoche/32/23554_2.png) [@ptoche](https://discourse.julialang.org/u/ptoche)\
**Post date:** [January 4, 2022, 1:27am UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/74 "2022-01-04T01:27:11Z")

</div>

Thanks for the feedback on this. You’re a pioneer! Do you have some of the class material in a public repo, just out of curiosity (particularly to see the instructions and FAQs for students)?

> [@compleat](#):
>
> I used Jupyter Notebooks, and I have found this to work much better since the JupyterLab standalone app.

No longer using Neptune? Did you use extensions with Jupyter Lab or just the basics?

---

<div class="post-metadata">

**Author:** ![mcreel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mcreel/32/30088_2.png) [@mcreel](https://discourse.julialang.org/u/mcreel)\
**Post date:** [January 4, 2022, 8:00am UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/75 "2022-01-04T08:00:19Z")

</div>

I recently taught a course using Julia for all the examples, it went very smoothly. Time to first plot is no longer an issue, given that it’s simple to use a system image. VS code gives an interface that is appealing to students, and allows for easily switching themes and using zoom to give a good presentation when projecting. Compared to Matlab, which I also had to use, it’s a lot nicer to use Julia!

---

<div class="post-metadata">

**Author:** ![liuyxpp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/liuyxpp/32/9870_2.png) [@liuyxpp](https://discourse.julialang.org/u/liuyxpp)\
**Post date:** [January 4, 2022, 10:14am UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/76 "2022-01-04T10:14:43Z")

</div>

May I ask why not choose Jupyter notebook or Pluto?

---

<div class="post-metadata">

**Author:** ![mcreel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mcreel/32/30088_2.png) [@mcreel](https://discourse.julialang.org/u/mcreel)\
**Post date:** [January 4, 2022, 11:46am UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/77 "2022-01-04T11:46:08Z")

</div>

I just prefer scripts, in general. It’s possible to execute lines or blocks, or the whole script. That’s good enough for what I do. I have the scripts embedded in a document, which has the explanations.

---

<div class="post-metadata">

**Author:** ![compleat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/compleat/32/8958_2.png) [@compleat](https://discourse.julialang.org/u/compleat)\
**Post date:** [January 4, 2022, 1:50pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/79 "2022-01-04T13:50:19Z")

</div>

> [@ptoche](#):
>
> No longer using Neptune? Did you use extensions with Jupyter Lab or just the basics?

I just use JupyterLab out of the box (with IJulia). I use Neptune less since standalone JupyterLab. I have it there for backup, but I need it less and less.

---

<div class="post-metadata">

**Author:** ![compleat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/compleat/32/8958_2.png) [@compleat](https://discourse.julialang.org/u/compleat)\
**Post date:** [January 4, 2022, 1:57pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/80 "2022-01-04T13:57:24Z")

</div>

> [@liuyxpp](#):
>
> May I ask why not choose Jupyter notebook or Pluto?

Some purists like the reactivity of Pluto, but it’s not for me (except as a novelty), which is why I created Neptune.

Compared to Jupyter, I prefer the standalone JupyterLab app, on which I can run Jupyter. I like not having to worry about starting/running a server process or worrying what happens to my work if I restart my browser or if/when it crashes or I accidentally close a window.

---

<div class="post-metadata">

**Author:** ![compleat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/compleat/32/8958_2.png) [@compleat](https://discourse.julialang.org/u/compleat)\
**Post date:** [January 4, 2022, 2:00pm UTC](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553/81 "2022-01-04T14:00:18Z")

</div>

> [@mcreel](#):
>
> I just prefer scripts, in general. It’s possible to execute lines or blocks, or the whole script. That’s good enough for what I do. I have the scripts embedded in a document, which has the explanations.

For the student experience of incremental learning (and, for incremental development) I have found the Notebook interface to be very helpful. Horses for courses

[Previous page](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553.md?page=3)

[Next page](https://discourse.julialang.org/t/issues-encountered-teaching-classes-with-julia-for-the-first-time/56553.md?page=5)
