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. 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 stacks, queues, matrices, trees, and graphs. Students will practice programming a variety of algorithms and learn several algorithmic design techniques (recursion, divide-and-conquer, greedy algorithms, and dynamic programming). The course will include excursions illustrating the application of these techniques in Electrical Engineering.
Credits: 3.
Teaching assistants:
- Manning Chen
- Cecelia Schricker
- Alejandro La Serna Silva
- Cole Miller
The syllabus can be found here.
New this year: in-class quizzes.