We may earn an affiliate commission when you visit our partners.
Course image
Juan H Klopper and Henri Laurie

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.

Read more

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.

Enroll now

What's inside

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
Read more
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.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides hands-on labs and interactive materials
Develops professional skills or deep expertise
Taught by Juan H. Klopper and Henri Laurie
Explores scientific computing using Julia
Strong fit for those with no programming background and those with a strong programming background
Uses a Jupyter notebook for a programming environment

Save this course

Save Julia Scientific Programming to your list so you can find it easily later:
Save

Reviews summary

Great introductory course for beginners in julia scientific programming

Learners say that this course is a great introductory course for beginners in Julia Scientific Programming. It is well-organized, engaging, and provides a solid foundation in the language and its applications. The course covers a wide range of topics, including data structures, plotting, data frames, and even touches on real-world applications such as epidemiological modeling. However, some learners may find that the course is a bit basic or outdated, and that it could be improved by providing more advanced content and updated materials.
The course is well-presented and easy to follow.
"The explanation was clear and crisp at all times."
"This course was a good introduction to Julia, and it has helped me start to use Julia regularly for data analysis."
The course provides plenty of opportunities for hands-on learning.
"The course is hands on and provides a lot of information about Julia language which is essential and hard to discover."
This course is a great fit for beginners in Julia.
"This course is a great introductory course for beginners in Julia Scientific Programming."
"It is well-organized, engaging, and provides a solid foundation in the language and its applications."
The course covers basic concepts in Julia.
"This course is a good introduction to Julia, and it has helped me start to use Julia regularly for data analysis."
"I think the course would benefit from being longer and covering a greater number of topics, as it really just scratches the surface of using a coding language for scientific analysis"
The course content is somewhat outdated.
"The course needs to update the content to the current version of Julia, including the new functions, functionalities and software support available."
"Some of the code used in the course is now deprecated, but using the error messages it is not that difficult to debug and update"

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Julia Scientific Programming with these activities:
Refresh your mathematics skills
Revise your mathematics skills to improve your understanding of the mathematical concepts used in the Julia programming language.
Browse courses on Mathematics
Show steps
  • Review your notes from previous mathematics courses.
  • Work through practice problems from textbooks or online resources.
  • Enroll in an online or in-person mathematics course or workshop.
Review Linear Algebra
Review the fundamentals of linear algebra, which are essential for understanding many of the concepts in this course, such as matrix operations and solving systems of linear equations.
Browse courses on Linear Algebra
Show steps
  • Go over your notes from a previous linear algebra course.
  • Work through practice problems from a textbook or online resource.
Complete Julia Tutorials
Explore online tutorials and resources to supplement your understanding of Julia's features and capabilities.
Browse courses on Online Learning
Show steps
  • Go through the official Julia documentation and tutorials.
  • Follow video tutorials on YouTube or other online platforms.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Practice Julia Coding Exercises
Regularly practice coding exercises to strengthen your understanding of Julia syntax and improve your programming skills.
Show steps
  • Solve coding challenges from online platforms like HackerRank or LeetCode.
  • Work through the practice problems provided in the course materials.
Practice coding challenges
Improve your Julia programming skills by solving coding challenges on platforms like LeetCode or HackerRank.
Show steps
  • Choose a coding challenge platform and sign up.
  • Select a challenge that matches your skill level.
  • Read the problem statement carefully and analyze the requirements.
  • Implement your solution in Julia.
  • Submit your solution and review the feedback.
Contribute to Julia Open Source Projects
Participate in open-source Julia projects to gain practical experience and contribute to the development of the Julia ecosystem.
Browse courses on Community Involvement
Show steps
  • Identify open-source Julia projects that align with your interests.
  • Review the project documentation and contribute bug reports or feature requests.
  • Write code and submit pull requests to the project.
Build a data visualization project
Demonstrate your proficiency in data visualization by creating an interactive dashboard or visualization using Julia packages like Plots.jl and DataFrames.jl.
Show steps
  • Identify a dataset that is relevant to your interests.
  • Import the dataset into Julia and explore its structure.
  • Choose appropriate visualizations to represent the data.
  • Use Julia packages to create the visualizations.
  • Deploy your dashboard or visualization online.

Career center

Learners who complete Julia Scientific Programming will develop knowledge and skills that may be useful to these careers:
Data Analyst
Data analysts typically collect, analyze and interpret large datasets to identify trends and patterns. They use statistical methods and techniques to extract meaningful insights from data, and to develop predictive models.
Data Scientist
Data scientists use scientific methods, processes and algorithms to extract knowledge and insights from data. They typically work with large datasets to identify patterns and trends that can be used to make predictions and develop solutions to problems.
Statistician
Statisticians collect, analyze and interpret data to provide insights and make predictions. They use statistical methods and techniques to identify trends and patterns in data, and to develop models that can be used to make predictions about future events.
Geophysicist
Geophysicists typically study the physical properties and behavior of the Earth, including its atmosphere, oceans and landmasses. They use a variety of techniques to collect data about the Earth, including seismic waves, gravity measurements and magnetic surveys.
Mathematician
Mathematicians typically work in research and academia, developing new mathematical theories and solving problems in various fields. They use mathematical methods and techniques to analyze data, develop models and simulations, and solve problems in areas such as finance, engineering and science.
Biostatistician
Biostatisticians typically work with scientists and doctors to design studies that collect and analyze large sets of biological or health-related data. They use statistical methods to test the validity of scientific theories and hypotheses, and to develop mathematical models that can be used to predict the outcomes of experiments and studies. They could also be involved in the development of new drugs and treatments.
Astrophysicist
Astrophysicists, often called space scientists, typically study the universe beyond our solar system. They examine the physical properties and behavior of galaxies, stars and other celestial objects. They often concentrate on single stars or star systems, or on specific types of galaxies. They could also study the universe as a whole, including its origin, structure and evolution.
Physicist
Physicists typically work in research and academia, developing new theories and solving problems in various fields of physics. They use mathematical methods and techniques to analyze data, develop models and simulations, and solve problems in areas such as astrophysics, particle physics and nuclear physics.
Chemical Engineer
Chemical engineers combine elements of physics, chemistry, biology and mathematics to produce products such as food, pharmaceuticals, clothing and plastics.
Quantitative Analyst
Quantitative analysts typically use mathematical and statistical methods to analyze financial data. They develop models and simulations to identify trends and patterns, and to make predictions about financial markets. They also work with traders and portfolio managers to develop investment strategies.
Operations Research Analyst
Operations research analysts typically use mathematical and analytical methods to solve complex problems in business and industry. They develop models and simulations to analyze data, identify trends and patterns, and to make recommendations on how to improve efficiency and profitability.
Financial Analyst
Financial analysts typically provide advice to individuals and organizations on investment decisions. They analyze financial data to identify trends and patterns, and to make recommendations on how to invest money. They could also work in corporate finance, where they would analyze the financial performance of companies and make recommendations on how to improve profitability.
Software Engineer
Software engineers typically design, develop and maintain software applications. They use programming languages and software development tools to create software that meets the needs of users.
Civil Engineer
Civil engineers typically design and supervise the construction of infrastructure such as roads, bridges and buildings. They also work on projects such as water supply and waste management systems, and coastal protection.
Systems Analyst
Systems analysts typically work with businesses and organizations to analyze their systems and processes. They identify areas for improvement and then design and implement solutions to improve efficiency and productivity.

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Julia Scientific Programming.
Provides a practical introduction to data science using R, which can be a useful complement to this course, providing a different perspective on data analysis.
Covers the use of Julia for financial applications, including financial modeling, risk management, and trading strategies, making it suitable for those interested in using Julia for financial tasks.
Provides a practical approach to using Julia, covering various aspects of the language and its applications, including numerical computing, data analysis, and machine learning.
Provides a comprehensive overview of data structures and algorithms in Java, which can be a useful reference for those looking to enhance their programming skills in this course.
Offers a collection of recipes and solutions to common problems and tasks encountered when using Julia, providing practical guidance for Julia programmers.
Provides a practical introduction to machine learning using Python, which can be a useful complement to this course, providing a different perspective on the topic.
Provides a comprehensive overview of statistics and data analysis for financial engineering, which can be a useful reference for those looking to apply Julia to financial applications.
Provides a comprehensive overview of bioinformatics algorithms, which can be a useful reference for those looking to apply Julia to bioinformatics applications.
Provides a practical introduction to parallel programming in Julia, which can be a useful reference for those looking to enhance their parallel programming skills in this course.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser