Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit


MAT420

Scientific Computing Syllabus


Objectives

Expose students to programming paradigms, languages, and libraries for scientific computing and visualization in a Unix environment. On completion of the course, students should be able to understand and/or implement strategies for data handling and the numerical solution of various scientific problems.


Prerequisites

Second semester programming course (CSE 205 with C or better)

familiarity with programming concepts such as variables, control structures, subroutines, ...

Linear Algebra (MAT 342, 343, or equivalent with C or better)

familiarity with matrix/vector operations, matrix factorization (LU, QR, diagonalization)

Differential equations (MAT 274 or 275 with C or better)

familiarity with basic ODE solvers (Euler, RK methods, etc)


Text

No textbook is required. The course is a survey of various ideas and languages and no specific text covers all the discussed topics. Instead, course notes, internet resources, suggested reading, and additional information about the course will be posted on the course Canvas.


Contents

● Basics of shell programming and file manipulation (GNU Bash, AWK, sed)

● Programming strategies (recursive, divide & conquer, floating-point arithmetic)

● Scientific programming (Python, Matlab/Octave/Scilab, Fortran, R)

● Scientific modules & libraries (anaconda, Netlib, blas, lapack,...)

● Parallelization (GNU Parallel, Python multiprocessing, OpenMP)

● Visualization (Matlab, Gnuplot, tikz, pgfplots, picture & video manipulation,...)

● Reporting, text processing, databases, version control (LATEX, SQL, git)

● IDEs and APIs (kile, jupyter,...)

● Applications in Population Dynamics, Computer Science, Fluids, and more.


Evaluation

● Assignments (60%). Collaboration on homework must be acknowledged.

● Exams (40%).