SE2440 Introduction to Scientific Programming

This course offers an introduction to computer system operations and program development using NPS computer facilities. The main goal of the course is to provide an overview of different structured programming techniques, along with introduction to MATLAB/Simulink/GUIDE and to use modeling as a tool for scientific and engineering applications. The course discusses the accuracy of digital computations, ways to incorporate symbolic computations, and presents numerical methods in MATLAB functions. AE2440, EC2440, and SE2440 are the same course. Prerequisites: None.

Lecture Hours

3

Lab Hours

2

Course Learning Outcomes

Upon successful completion of this course, students will be able to:

  1. Discuss the difference between the high-level vs low-level programming language and between the domain-specific vs general-purpose language; difference between different programming paradigms (imperative, procedural, functional, declarative, and object-oriented) and execution modes (interpreted vs compiled) 
  2. Understand and effectively utilize programming language fundamentals (data types and operations) and the basic programming concepts (sequenceselection, iteration, etc.) 
  3. Utilize all the tools of the MATLAB/Simulink development environment and exploit appropriate programming techniques of MATLAB, Symbolic Math Toolbox, Simulink, and GUIDE / App Designer 
  4. Follow the program development process (requirements, specifications, design, implementation, testing and correctness proof, verification and validation) 
  5. Understand and control accuracy and precision of digital computations 
  6. Apply MATLAB for scientific and engineering applications including writing script and function files; 2-D and 3-D visualization and graphics object programming; heterogeneous and time-stamped data import, storage, processing, and analysis; flow control; producing meaningful and readable solutions (reports) 
  7. Recognize engineering applications of various numerical methods coded in MATLAB functions and effectively use these methods while evaluating alternative solutions and understanding limitations of each numerical method, especially the conditions under which it may fail to converge to a solution 
  8. Model continuous and discrete dynamic systems represented by differential equations, block diagrams, and transfer functions 
  9. Apply MATLAB code generation tools for execution acceleration and integration with other programming languages