Most engineers know computer languages, as well as some data structures and algorithms. This may not be enough to write code for a real product. This course covers the use of efficient algorithms with powerful data structures in object-oriented code using the C++ programming language. The course begins with a quick review of C++, moving on to the analysis of complexity of algorithms. Emphasis is placed on common problems, implementation details, examples, and testing throughout the course. Each class session will include lecture and discussion of code. This course prepares students to achieve the skill level of practicing engineers in the software industries. Students write and test approximately 5000 lines of C++ code. Upon completion of this course, students are prepared to improve data structures and algorithms in existing code, as well as write industry standard code for a new product.
- A quick review of C++
- The importance of algorithms
- Introduction to the complexity of algorithms
- Dynamic array and stack
- Linked lists
- Searching and sorting
- Hash tables
- Heap and binary tree
- Graph algorithms using C++ templates
Skills Needed: Working knowledge of C++ is required.