Programming Applications for Engineers

Eugene Mahmoud
Mt. San Antonio College

Summary

Programming Applications for Engineers is an integrated, lecture-lab, semester-long course that introduces lower-division engineering and physics students to numerical analysis and computational problem solving. Students will use applied mathematical techniques, plotting, logic operations, data acquisition, and graphical user interfaces to design, test, and debug numerical algorithms. The assessment of student learning outcomes is evaluated primarily by each student's documentation of laboratory activities, development of authentic computational models and project solutions with industry standard software.


Course Size:
15-30

Course Format:
Integrated lecture and lab

Course Context:

I teach a numerical modeling course that primarily serves lower-division engineering transfer students. The only prerequisite is a semester of Calculus I. In California, some 4-year engineering programs (i.e. UCSB) will not accept transfer students without a programming course in MATLAB.

Course Content:

Students will use applied mathematical techniques, plotting, logic operations, data acquisition, and graphical user interfaces to design, test, and debug numerical algorithms. The course is structured around 3 projects that would provide evidence of students' scientific writing ability, problem solving approaches, and numerical modeling approaches to practical scientific and engineering problems.

Course Goals:

Students will:
1. Identify, formulate, and solve computational problems using a methodical approach. Design algorithms to facilitate programming and problem solution.
2. Create, test, and debug computer programs using procedural and object-oriented approaches.
3. Apply numeric techniques and computer simulations to solve engineering-related computational problems.
4. Create and apply MATLAB computer programs to analyze data and to generate tables, charts, and graphs.
5. Communicate analytical approaches and results according to standard engineering practices.
6. Design and document computer programs in a careful and complete manner so as to facilitate analysis and debugging by another programmer, and to anticipate and resolve user errors.
7. Create embedded programs to run on a microcontroller.

Course Features:

This is a project-based course rather than a topic-based course, and you will learn the computational and problem solving skills needed to complete your projects rather than progressing through a typical programming text. Students are responsible for figuring out what you need different ways to solve problems and I will help them in their approach.

Course Philosophy:

Each student n this course intends to be either a scientist or an engineer, and as such, they must develop a set of skills that are unique to these fields. In this course, they will use their knowledge to make things work in a real-world context. They will calculate, compute, solve, troubleshoot, design, analyze, propose, design, build, present and experience some failure as part of their process.

Assessment:

All projects will be graded using rubrics directly related to the course measurable objectives. Students are also assessed through one-on-one interviews, problem set submissions, and laboratory forum posts.

Syllabus:

Syllabus (Acrobat (PDF) 427kB Aug16 18)

References and Notes:

Moore, Holly, Matlab for Engineers, 4th Edition
This text was designed for freshmen engineering students in introductory programming courses at two-year colleges.