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

  1. Distributed programming with MPI (2 or 3 lectures)
  2. Parallel programming with standard threading models (3 lectures)
  3. Introduction to graphics programming using OpenGL (3 lectures)
  4. Object--Oriented code templates (2 lectures)
  5. Introduction to UDP and TCP sockets (3 lectures)
  6. Using non-blocking system I/O (2 lectures)
  7. Introduction to GP GPU programming (2 lectures)