Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

University of Cape Town

Julia Scientific Programming

University of Cape Town via Coursera


This course introduces you to Julia as a first programming language. Julia is a high-level, high-performance dynamic programming language developed specifically for scientific computing. This language will be particularly useful for applications in physics, chemistry, astronomy, engineering, data science, bioinformatics, and many more. You can start programming with Julia within Coursera and it can also be used from the command line, program files, or a Jupyter notebook.

Julia is designed to address the requirements of high-performance numerical and scientific computing while being effective for general-purpose programming. You will be able to access all the available processors and memory, scrape data from anywhere on the web, and have it always accessible through any device you care to use as long as it has a browser. Join us to discover new computing possibilities. Let's get started on learning Julia.

By the end of the course you will be able to:
- Programme using the Julia language by practicing through assignments
- Write your own simple Julia programs from scratch
- Understand the advantages and capacities of Julia as a computing language
- Work in Jupyter notebooks using the Julia language
- Use various Julia packages such as Plots, DataFrames and Stats

The course is delivered through video lectures, on-screen demonstrations, quizzes, and practical peer-reviewed projects designed to give you an opportunity to work with the packages.


  • Welcome to the course
    • A warm welcome to Julia Scientific Programming. Over the next four weeks, we will provide you with an introduction to what Julia can offer. This will allow you to learn the basics of the language, and stimulate your imagination about how you can use Julia in your own context. This is all about you exploring Julia - we can only demonstrate some of the capacity and encourage you to take the first steps. For those of you with a programming background, the course is intended to offer a jumpstart into using this language. If you are a novice or beginner programmer, you should follow along the simple coding but recognising that working through the material will not be sufficient to make you a proficient programmer in four weeks. You could see this as the ‘first date’ at the beginning of a long and beautiful new relationship. There is so much you will need to learn and discover. Good luck and we hope you enjoy the course! Best wishes, Henri and Juan
  • A context for exploring Julia: Working with data
    • In our case study we use Julia to store, plot, select and slice data from the Ebola epidemic. Taking real data, we explain how to work in Julia using arrays, and for loops to work with the structures. By the end of this module, you will be able to: create an array from data; learn to use the logical structures IF and FOR ; conduct basic array slicing, getting the incidence data and generating total number of cases; use Plots to generate graphs and plot data; and combine the Ebola data outputs to show a plot of disease incidence in several countries.
  • Notebooks as Julia Programs
    • in this week, we demonstrate how it is possible to use Julia in the notebook environment to interpret a model and its fit to the data from the Ebola outbreak. For this, we apply the well-known SIR compartmental model in epidemiology. The SIR model labels three compartments, namely S = number susceptible, I =number infectious, and R =number recovered. By the end of this module, you will be able to: understand the SIR models; describe the basic parameters of an SIR model; plot the model-predicted curve and the data on the same diagram; adjust the parameters of the model so the model-predicted curve is close (or rather as close as you can make it) to the data.
  • Structuring data and functions in Julia
    • As a scientific computing language, Julia has many applications and is particularly well suited to the task of working with data. In this last module, we will use descriptive statistics as our topic to explore the power of Julia. You should see this week as offering you a chance to further explore concepts introduced in week one and two. You will also be introduced to more efficient ways of managing and visualizing your data. We have also included additional, honors material for those who want to explore further with Julia around functions and collections. By the end of this module, you will be able to: 1. Practice basic functions in Julia 2.Creating random variables from data point values 3. Build your own Dataframes 4. Create a variety of data visualisations 5. Conduct statistical tests 6. Learn how to export your data.

Taught by

Juan H Klopper and Henri Laurie


4.2 rating, based on 31 Class Central reviews

4.4 rating at Coursera based on 425 ratings

Start your review of Julia Scientific Programming

  • Anonymous
    I was not satisfied with the course, mostly because I felt that it taught a lot of syntax without giving good explanations of the logic underlying it. Put differently, in contrast with other coding courses I have taken before (including the fantasti…
  • Anonymous
    Nice and easy accessible introduction to Julia. Makes hungry for more. So more advanced courses, or advanced topics in like maths, statistics etc. with Julia, would be very welcome.
    The course uses Julia version 1.0 where, as of writing this comment, Julia 1.9.4 is the current version. Differences between the versions are easy to overcome (partly thanks to the course), but it would be nice to upgrade the course to a more recent version of Julia.
  • Anonymous
    With all due respect, this is the worst course I followed on Coursera. - First of all week 1 is extremely basic. I would think that most people learning Julia are coming from Python ann/or data-science background with programming knowledge. Yet the…
  • Anonymous
    The course was a good overview of Julia, starting from the very basics. This makes it relevant for programming beginners at the start. As the course builds up, it nicely introduces Julia's complexity in the assignments, and introduced many of Julia's must-know features such as multiple dispatch and user defined types, without getting too daunting. The explanation was clear and crisp at all times. More content could be covered for data analysis and perhaps more forum discussion could be encouraged. The course didn't take a great deal of time to complete. I would recommend this course for those who want to get to know Julia and many key libraries in it for data analysis and visualization.
  • Anonymous
    This is a very nice introduction to Julia that should be accessible even for people for no background in programming. Honors track gives an opportunity to get acquainted with Julia's great type system.

    In the beginning it seemed that the course would be too basic and simple, but after the second week it gets more involved, so these first two week are perhaps meant to give a gentle introduction before the harder part.

    It would be really nice if the authors launched a more advanced course for Julia, preferably with some applied examples from data science, data visualization and/or numerical computing.
  • Anonymous
    This was a great, first course and introduction to Julia. New learners should first check to make sure that their version of Julia (e.g. 1.0.3) is what the current course content describes. Previously, the course did not catch up to the current level of the releases of the language.

    Except for this, both instructors are great, patient and teach at a rate and style that is fun and straightforward. I would take this class again, and as well any future courses they would teach.
  • Luis Enrique Quispe Paredes
    Excelente curso, aunque algunos comandos ya no funcionan (en el video), en los notebooks compartidos están actualizados, y además con las ganas de aprender y de conseguir los mismos resultados, uno puede encontrar la documentacion y ejemplos en internet.
  • Anonymous
    I do a lot of courses and this is one of the courses I enjoyed most.

    I am a data scientist using Python currently, but I did this course to learn more about Julia. I found the content to be well presented and well-structured. The lectures were easy to follow and just about the right length. Both presenters are engaging.

    For anybody starting out on Julia, this is a great course to get you going.
  • The course is appropriate to beginners. I have a background in Python and R so I took this course to learn Julia to replace both of them. I didn't learned new "scientific material" but I learned useful tools in a wonderful language: Julia.
    The only downside of the course is that Julia is evolving quickly, and some given code might require a google search or two because methods are deprecated.
  • Anonymous
    The course is really well organized, which makes it easier to learn and practice the language. The course includes details about Reading, Evaluation, Printing, Assignment, Iteration, Visualization and Vectorization. This is sufficient to explore the advance feature or Packages of Julia which are Domain Specific. The course is easy to follow.
  • Profile image for Subhankar Ghosh
    Subhankar Ghosh
    I am in the 3rd week now. This course seems too trivial for a CS major. I joined the course to learn Julia but 80% of the lectures till now are on biology stuffs. Even quiz questions are asking about ebola virus! Seriously, could have been a far better course if the content was more focused on Julia and less on viruses.
  • Anonymous
    Thanks to the entire team of Julia at the University of Cape Town. Realmente has been very important for me to finish the course. A month ago, at the beginning of the course, I was not in the ideal situation to continue it: 1- First handicap an…
  • Anonymous
    Firstly, the positive. Both lecturers are very clear, give good examples and I think overall provide a very useful and fun introduction to Julia. The range of topics covered in this course provides a nice foundation for further exploration into what…
  • Anonymous
    The course is excelent for a beginner in julia and goes at a reasonable pace, though some familiarity with packages intallation and prior programming is helpful. The video lessons explain in detail the basic concepts and everything that is said in them, can be checked and practiced in the notebooks. The questions of the quizzes are selected in a way to efficiently test the knowledge and skills learned from the lessons, they are a mixed of muliple choice and write-in questions, some of the questions need to execute code. For the peer reviewed homeworks, clear instructions are given, and so are the instructions for reviewing a peer's work. In my view, the peer reviewed homeworks create a nice learning environment.
  • Profile image for Lee Yi-Hsuan李怡宣
    Lee Yi-Hsuan李怡宣
    As a student with a biology background, I find the examples used in this course and the way they demonstrated each step fairly useful and practical. Although for mediate level learners or people who have previous experience in other languages this course might be too basic to take, for me as a beginner, I like the content and how they explained in detailed some reasons behind. Another trivial and probably not important thing I like about the course was the dry sense of humor both lecturers gave.

    Overall speaking I have learned a lot and benefited from this course. Recommend this course and the good experience!
  • Good if you already know a coding language. This course is a good start if you ever wanted to learn Julia. Do not take it as a complete course but rather as an introduction to some aspects of Julia (starting from the basics).

    I found the peer-review assignments too easy.

    If you want to learn Julia but don't know anything about it, just go for this course, it's a very good start! If you are looking for great challenges where you would have to push your limits, then maybe pick up another course.
  • Oswaldo De Jesús Lara Cervantes
    It needs some updating. the course uses Julia 1.0 but the current version is 1.5 (August 2020). Not because it wont provide with the necessary information, but because it mght be missing new things from the current version. Also, it is mostly listening someone (The profesor) reading what is written in a notebook (Jupyter Notebook) and showing some examples. There would be a nice opportunity to use some visual elements to explain topics.
  • Profile image for Daniel DuPlessis
    Daniel DuPlessis
    I do a lot of courses and this is one of the courses I enjoyed most.

    I am a data scientist using Python currently, but I did this course to learn more about Julia. I found the content to be well presented and well-structured. The lectures were easy to follow and just about the right length. Both presenters are engaging.

    For anybody starting out on Julia, this is a great course to get you going.
  • Anonymous
    All of the course is ok, if they had include one week more in order to explain and got deeper on the tools shown in last week of the course, I would have been using Julia straightaway instead of another programming language.
    Anyway, I'm too pleased with the course, before it I had no idea about Julia and it's world, yet now I can continue by my self :)
  • Anonymous
    finished this course from Coursera and I really enjoyed this one. They provided an interesting analytical programming language that I belived most people haven't heard nor used it. I really recommended everyone to give it a try, because Julia provided a unique environment for analyze data. And this course provides us a fundamental knowledge of Julia.

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.