MECH 415 Advanced Programming for Mechanical and Industrial Engineers Instructor: Brandon W. Gordon, Email: [email protected] 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: http://users.encs.concordia.ca/~bwgordon/mech415.html 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. You can’t use Linux software or some other option. This compiler is installed on the faculty computers. I also recommend installing the Express version on your own computer using the instructions on the course web page. Note that the Express (free) version is essentially the same as the regular version except that it takes less disk space. Grading Scheme: Assignments Project Midterm Exam Final Exam 10 % 20 % 25 % 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 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/industrial systems Numerical simulation 3D particle and rigid body systems 2. Introduction to real-time systems Definition and characteristics of real-time operating 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, control systems, 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.