MECH 415 Advanced Programming for Mechanical and Industrial Engineers

Instructor

Brandon W. Gordon, Email:

Phone: 514-848-2424 x3151, Office: EV4.227

Textbook

There is no formal textbook for this course. References will be posted on the course web page:

Please check the web page regularly. I will normally update the web page an hour or two after class with all the lecture material.

C++ Compiler

Microsoft Visual Studio 2013 is required. Please use the 2013 version to maintain compatibility with the examples and the lab computers. The instructions for installation are located at the top of the course webpage.

Grading Scheme

Assignments10 %

Project20 %

Midterm Exam25 %

Final Exam 45 %

The project will involve the development and documentation of a significant C++ programming application related to the material in this course. Students are encouraged to develop an application related to their previous work or current interests in mechanical, industrial, or aerospace engineering.

Lecture Topics

I) Object Oriented C++ Programming

1. Encapsulation

Designing classes and member functions

Constructors and destructors

2. Inheritance

3. Polymorphism

Function and operator overloading

Virtual functions

4. Pointers and dynamic memory allocation

5. Software development techniques (design, debugging, testing, documentation, etc.)

II) Programming Applications

1. Modelling and simulation of mechanical systems

State-variable equations

Numerical simulation

2. Introduction to real-time systems

Definition and characteristics of real-time systems

Virtual prototype simulations

3. Introduction to DirectX computer graphics and visualization

Point, line, and triangle primitives

Mesh objects and x-files

4. Additional topics (matrix algebra, optimization, network communication, audio processing, multi-threaded programs, parallel processing, mechatronics, robotics, etc.)

Students are also encouraged to perform additional readings and self-study on other topics related to their project (ask the instructor for suggestions).

Note: In the event of extraordinary circumstances beyond the University's control, the content and/or evaluation scheme in this course is subject to change.

COURSE LEARNING Outcomes (CLOs)

Upon successful completion of MECH 415, the students will be able to:

1)Understand the usage of advanced C++ syntax including classes, constructors, destructors, overloading, inheritance, and virtual functions.

2)Understand advanced C++ programming topics including pointers, bit operators, shared memory, communication, binary file I/O, 3D graphics, and real-time systems.

3)Debug and test programs using symbolic debuggers.

4)Apply the C++ topics listed above to solve problems including numerical simulation, real-time simulation, virtual reality, signal processing, mechatronics, and optimization.

5)Design and implement functions and classes to develop modular object oriented programs.