EEL4837 Programming for Electrical Engineers II (Spring 2023)

This course covers the fundamentals of data structures and algorithms, including lists, queues, stacks, divide-and-conquer, dynamic programming, trees, tables, graphs, and recursive techniques. It also investigates the role of specific data structures in electrical engineering applications.

Programming has become an essential component of virtually every aspect of Engineering.  However, writing correct and efficient programs requires an understanding of the underlying foundations, including implementation, manipulation, and analysis of structured data, understanding how algorithms are built on top of such data, and navigating trade-offs between program performance and resource constraints. This course covers the foundations of programming specifically targeted toward Electrical Engineers. It will cover the implementation and use of data structures in solving programming problems, including queues, trees, tables, and graphs.  Algorithm development including recursive techniques will be discussed, and several algorithmic design techniques (greedy, dynamic programming, branch and bound) will be presented.  The course will include excursions illustrating the use of these techniques in a variety of Electrical Engineering domains.

Credits: 3. 

The complete syllabus can be found here.