Julia for Quantum Cryptography by edX

I am taking an online course from edX on Quantum Cryptography.

The course uses Julia for programming, and it is an important part of the learning experience. The Julia notebooks for this course are written for version 0.6.2, and it seems that the course organizers have not maintained their code since the release of the course. The github repository for the course can be found here.

I am running Julia 1.6.2 on my local, and unfortunately I have encountered so many errors, and I think it is beyond my expertise to solve all of them on my own (and there are a lot of errors at each step of the way). The course organizers have advised to use JuliaBox as an alternative. But that also is not an option anymore. Is there another alternative that can run the codes without much problem and preferably is a free service?

1 Like

Why do you need JuliaBox, you can just download 0.6.4 here:

The best thing to do if you want to run the course on a newer Julia version is probably to just run things on Julia 0.7 - that way you get deprecation warnings for things that broke in the transition to 1.0, and if you fix those there’s a good chance you’ll be pretty close to having things run on Julia 1.7.3 (the latest release, not much point using 1.6.2 imho).

You might of course still run into issues with breaking changes in packages, those will probably be dealt with on a case by case basis.

3 Likes

Thank you for the suggestion. I had already tried installing Julia 0.6.4, but that also came with its own errors and problems.

Based on your suggestion, I downloaded Julia 0.7.0. It had less error compared to 0.6.4; however, I am still unable to run code in Jupyter notebook. The kernel does not get connected. This is the error that I see in anaconda terminal:

ERROR: LoadError: MethodError: no method matching setindex!(::Ptr{Nothing}, ::Ptr{Nothing})
Stacktrace:
 [1] start_heartbeat(::ZMQ.Socket) at C:\Users\josh\.julia\packages\IJulia\AQu2H\src\heartbeat.jl:20
 [2] init(::Array{String,1}) at C:\Users\josh\.julia\packages\IJulia\AQu2H\src\init.jl:100
 [3] top-level scope at none:0
 [4] include at .\boot.jl:317 [inlined]
 [5] include_relative(::Module, ::String) at .\loading.jl:1038
 [6] include(::Module, ::String) at .\sysimg.jl:29
 [7] exec_options(::Base.JLOptions) at .\client.jl:239
 [8] _start() at .\client.jl:432
in expression starting at C:\Users\josh\.julia\packages\IJulia\AQu2H\src\kernel.jl:24

And through Julia command line, the jupyter notebook does not even launch. Please let me know how to proceed.

Maybe IJulia hasn’t restricted compatibility to older Julia versions, and Pkg is installing the latest IJulia which might not work with Julia 0.7?

You could try an older IJulia version which was current arount Julia 0.6/0.7 times: Releases · JuliaLang/IJulia.jl · GitHub