ENGR 138: Computer Programming and Numerical Methods for Engineers

Citrus College Course Outline of Record

Citrus College Course Outline of Record
Heading Value
Effective Term: Fall 2023
Credits: 4
Total Contact Hours: 108
Lecture Hours : 54
Lab Hours: 54
Hours Arranged: 0
Outside of Class Hours: 108
Total Student Learning Hours: 216
Prerequisite: MATH 190 or higher.
Transferable to CSU: Yes
Transferable to UC: Yes - Approved
Grading Method: Standard Letter

Catalog Course Description

Engineering computation using MATLAB and VBA. Topics include programming fundamentals, matrix computation, statistical analysis, data graphing, data extraction from spreadsheets and solving mathematical problems using numerical methods. 54 lecture hours, 54 lab hours.

Course Objectives

  • Identify, formulate and solve computational problems.
  • Design algorithms and flowcharts to facilitate programming.
  • Create, test and debug programs using procedural and object oriented approaches.
  • Write programs requiring subroutine call outs and importing of data from files.
  • Write MATLAB programs to analyze data and generate tables, charts and graphs.
  • Write VBA programs to assist in extracting information from a spreadsheet to analyze and generate tables, charts and graphs.

Major Course Content

  1. Introduction to computer programming
    1. Basic computer programming concepts
    2. Programing languages
    3. Matlab language attributes
  2. Linear algebra and array concepts
    1. Linear equation applications and solutions
    2. Definitions and operations of arrays
  3. Problem-solving methods, scripting, inputs and outputs
    1. Relational and logical operators, IF, IF-ELSE statements
    2. IF Ladders, flowcharting
    3. FOR loops, series approximation and indexing
    4. Nested FOR loops, vectorization and 3D plots
    5. WHILE loops, newton and bisection methods
  4. Problem solving applications
    1. Interpolation, least squares regression, linearization
    2. Heat transfer and stress applications
    3. Solving 1st order ordinary differential equations, exponential growth
    4. Monte Carlo simulation
  5. Program organization and debugging
    1. Strings
    2. Cell arrays and structures
    3. Sorting and searching
  6. Introduction to Microsoft Excel VBA and macros
    1. Spreadsheet low-level file input/output
    2. Object-oriented programming, graphical objects
    3. Graphical user interfaces
    4. Exporting data to MATLAB from a spreadsheet
    5. Importing data from MATLAB

Lab Content

  1. Writing and correcting expressions in Matlab
    1. Working with arrays
    2. Developing databases
    3. Sorting lists
    4. Plotting with advanced techniques
  2. Problem solving applications
    1. Solving circuits and statics problem
    2. Analyzing projectile motion
    3. Calculating areas and volumes of solids
    4. Analyzing solid object stress data
    5. Analyzing heat transfer data
    6. Solving functions of one variable
  3. Introduction to Excel VBA
    1. Data input and extraction form spreadsheet
    2. Writing Macros to process data
    3. Developing simple graphic user interfaces (GUI)
    4. Transfer spreadsheet data to MATLAB, process data and report results on graph or chart

Suggested Reading Other Than Required Textbook

Engineering journals or periodicals from professional engineering organizations such as ASME, SAE, IEEE, ASCE, etc.

Examples of Required Writing Assignments

Each section will have questions to answer from the textbooks in short answer form. e.g. Describe how a program can be written to cause an infinite loop to occur.

Examples of Outside Assignments

Section practice problems: - Given the matrix representation for the planar circuit, solve the matrix. Apply your technique to the given DC circuit. Now modify your solution to deal with AC circuits of variable frequency. - Enter the following list into an Excel spreadsheet. Write a program in VBA to divide the Velocity, Time and the 'X' and 'Y' distances into arrays on a separate sheet. Write a MATLAB program that will read the divided data and plot the data as a graph representing the projectile's position with respect to time and velocity.

Instruction Type(s)

Lab, Lecture, Online Education Lab, Online Education Lecture