Course Syllabus: Numerical Computing with Julia
Course Title: Numerical Computing with Julia
Course Description: This course introduces students to numerical computing using the Julia programming language. It covers the fundamentals of numerical methods and how they are implemented in Julia for solving real-world scientific and engineering problems. Students will learn to utilize Julia’s high-performance capabilities to handle large-scale numerical computations efficiently. The course includes both theoretical understanding and practical applications, ensuring students can effectively apply numerical methods to various problems.
Prerequisites:
Basic knowledge of calculus and linear algebra
Familiarity with programming concepts (experience with any programming language is beneficial)
Course Objectives:
Understand the core principles of numerical computing
Develop proficiency in using Julia for numerical methods
Implement and analyze numerical algorithms
Apply numerical techniques to solve scientific and engineering problems
Enhance skills in mathematical modeling and computational efficiency
Week 1: Introduction to Julia and Numerical Computing
Overview of Julia programming language
Basic syntax and operations in Julia
Introduction to numerical computing concepts
Importance and applications of numerical methods
Week 2: Numerical Linear Algebra
Solving systems of linear equations (direct and iterative methods)
Matrix factorizations (LU, QR, Cholesky)
Eigenvalues and eigenvectors
Implementing linear algebra algorithms in Julia
Week 3: Root-Finding Methods
Bisection method
Newton-Raphson method
Secant method
Implementing root-finding algorithms in Julia
Week 4: Interpolation and Extrapolation
Polynomial interpolation (Lagrange, Newton)
Spline interpolation
Extrapolation techniques
Implementing interpolation methods in Julia
Week 5: Numerical Differentiation and Integration
Finite difference methods
Numerical differentiation techniques
Trapezoidal and Simpson’s rule for integration
Implementing differentiation and integration algorithms in Julia
Week 6: Numerical Solutions of Ordinary Differential Equations (ODEs)
Initial value problems (IVPs)
Euler’s method and improved Euler’s method
Runge-Kutta methods
Implementing ODE solvers in Julia
Week 7: Numerical Solutions of Partial Differential Equations (PDEs)
Classification of PDEs
Finite difference methods for PDEs
Solving heat and wave equations
Implementing PDE solvers in Julia
Week 8: Optimization Methods
Unconstrained optimization (gradient descent, Newton’s method)
Constrained optimization (linear and quadratic programming)
Implementing optimization algorithms in Julia
Practical applications and case studies
Week 9: Monte Carlo Methods and Simulations
Introduction to Monte Carlo methods
Random sampling techniques
Monte Carlo integration and simulations
Implementing Monte Carlo methods in Julia
Week 10: High-Performance Computing with Julia
Parallel and distributed computing
Performance optimization techniques
Using Julia packages for high-performance computing
Practical examples and projects
Week 11: Final Project
Students will work on a comprehensive project
Apply the concepts and techniques learned throughout the course
Present findings and insights using Julia
Week 12: Review and Exam Preparation
Review of key concepts
Practice problems and Q&A
Exam preparation strategies
Week 13: Final Exam
- Comprehensive exam covering the course material
Assessment:
Weekly assignments and quizzes
Midterm project
Final project presentation
Final exam
Textbooks and Resources:
“Think Julia: How to Think Like a Computer Scientist” by Ben Lauwens and Allen Downey
“Numerical Analysis” by Richard L. Burden and J. Douglas Faires
Online documentation and resources from the Julia Language website
Additional readings and resources provided during the course
Instructor Contact:
Office hours: [Specify time]
Email: [Instructor’s email]
Course website: [Provide link]
This syllabus provides a detailed structure for a university course on numerical computing with Julia, ensuring a thorough understanding of numerical methods and their applications.