AMS 595, Fundamentals of Computing
This course provides an introduction to several modern approaches for developing computer
programs and their use to solve mathematical problems. It will cover the fundamentals
of programming in MATLAB, Python, and C/C++, including scripting, basic data structures,
algorithms, scientific computing, performance optimization, software engineering and
program development tools. No previous programming experience is required.
Fall semester, 1-9 credits, ABCF grading
Prerequisite: Familiarity of linear algebra and discrete mathematics at undergraduate level are required. No previous programming experience is required.
Antirequisite: AMS 561
Learning Outcomes:
Knowledge of the basic elements of computer programming languages. An understanding
of the use of several different programming interfaces. Practical programming skills
including:
1. Proficiency in MATLAB programming: including scripting, procedural programming,
GUI, debugging, plotting, and profiling
2. Proficiency with Python programming, including scripting, object-oriented programming,
and commonly used Python libraries
3. Fundamentals of programming in C/C++, including compilers, performance optimization,
STL
4. Familiarity with selected program development tools
5. Best practices in scientific software engineering, including code modularization,
debugging and testing, version control, and documentation, etc.