Advanced Programming Techniques for Engineering Applications
(2-0-3-3)
CMPE Degree: This course is Selected Elective for the CMPE degree.
EE Degree: This course is Selected Elective for the EE degree.
Lab Hours: 0 supervised lab hours and 3 unsupervised lab hours.
Technical Interest Groups / Course Categories: Threads / ECE Electives
Course Coordinator:
Prerequisites: ECE 2035 [min C] or ECE 2036 [min c]
Catalog Description
Course covers a number of programming techniques for distributed and parallel computing and other advanced methods, such as multiprecision arithmetic and nonblocking I/O.Textbook(s)
Course Outcomes
Develop multi-threaded C++ applications using standard threading models.
Develop 3D enabled C++ applications using OpenGL.
Develop distributed C++ applications on (high performance computing) HPC systems.
Develop C++ applications using shortest path algorithms and optimization techniques.
Develop distributed C++ applications using TCP and UDP sockets for communication.
Develop GPU enabled C++ applications.
Strategic Performance Indicators (SPIs)
N/A
Topic List
- Distributed programming with MPI (2 or 3 lectures)
- Parallel programming with standard threading models (3 lectures)
- Introduction to graphics programming using OpenGL (3 lectures)
- Object--Oriented code templates (2 lectures)
- Introduction to UDP and TCP sockets (3 lectures)
- Using non-blocking system I/O (2 lectures)
- Introduction to GP GPU programming (2 lectures)