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

Online Course

Julia Scientific Programming

University of Cape Town via Coursera

Overview

This four-module course introduces users to Julia as a first 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. As open source software, you will always have it available throughout your working life. It can also be used from the command line, program files or a new type of interface known as a Jupyter notebook (which is freely available as a service from JuliaBox.com).

Julia is designed to address the requirements of high-performance numerical and scientific computing while also 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 practising 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.

Syllabus

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

Reviews

4.3 rating, based on 23 reviews

Start your review of Julia Scientific Programming

  • Anonymous

    Anonymous completed this course.

    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 fantastic...
  • Anonymous

    Anonymous completed this course.

    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

    Anonymous completed this course.

    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

    Anonymous completed this course.

    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.
  • Anonymous

    Anonymous completed this course.

    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.
  • Clément completed this course, spending 2 hours a week on it and found the course difficulty to be easy.

    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

    Anonymous completed this course.

    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 G.

    Subhankar is taking this course right now, spending 1 hours a week on it and found the course difficulty to be very easy.

    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

    Anonymous completed this course.

    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 and...
  • Anonymous

    Anonymous completed this course.

    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 Julia...
  • Anonymous

    Anonymous is taking this course right now.

    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.
  • Oswaldo C.
    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.
  • Daniel completed this course, spending 3 hours a week on it and found the course difficulty to be medium.

    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

    Anonymous completed this course.

    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.
  • Anonymous

    Anonymous completed this course.

    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

    Anonymous is taking this course right now.

    This course uses a pre-release version of Julia. They don't say which version you should use, but many of the notebooks don't work with version 1.0.3, even when correcting for new syntax.

    The subject of this course, modeling an ebola outbreak, is very interesting. But this course needs to be updated for v 1.0 of Julia.
  • Anonymous

    Anonymous completed this course.

    Gives a good introduction to Julia and gives example uses cases to get started with the language. Does not cover many advanced topics. The notebooks are a little outdated and will commonly run into depreciated use cases but not too difficult to fix. Instructors explain concepts quite well.
  • Anonymous
    Astonishingly good. I knew Python before taking this course, so I didn't have any trouble dealing with the concepts. Anyway, it is easy to follow up the lectures if you are not a programmer already. By the way, as a foreigner, I found a bit difficult to understand your pronunciation.
  • Anonymous

    Anonymous completed this course.

    It is a very good introduction to Julia. I really like the most the text and details which were provided as notebook which you can refer anytime.
    However, some part particularly the part talking about the SIR model is confusing and I suggest use another practical example.
  • Mark completed this course.

    This is an excellent and enjoyable course. It's well presented, the resources provided are good and the assignments are manageable. If you don't have a programming background or some coding experience leave yourself a bit of extra time to get the peer graded assignments done.

Related Courses

Class Central

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

Sign up for free

Never stop learning Never Stop Learning!

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

Sign up for free