This course builds upon prior knowledge to introduce the fundamental concepts of data structures and the algorithms that proceed from them. It focuses on recursion, the underlying philosophy of object-oriented programming, fundamental data structures (such as ques, tacks, linked lists, has tables, trees and graphs), sorting and searching techniques, and the basics of algorithmic analysis. Additional lecture time will be devoted to the Standard Template Library and its' four components. The lab components provide hands-on programming experience that is vital for beginning programmers and computer science students. 3/2/0