MATH 273 - Introduction To Data Structures And Algorithms

    Recent Professors
    Not yet assigned
    Recent Semesters
    No scheduled sections on record
    Class Size
    Not published
    Credits
    4
    Prerequisite
    MATH 173
    Transfers To
    CSU
    Description
    This course is an introduction to the study of data structures and algorithms as well as an introduction to software development primarily in C++. The course begins with a short review of object-oriented programming, emphasizing utilizing and extending existing code through inheritance and interfaces. The review leads into more advanced topics including multiple inheritance, virtual inheritance, the diamond problem, templates, and multithreading. Complexity analysis, including Big-O notation, best case, worst case, average case, and amortized analysis are covered in detail. Data structures and algorithms are covered in a language-independent manner. Linked lists, stacks, queues, trees, heaps, and graphs are covered in detail along with associated implementation and memory management techniques. Algorithms for searching and sorting, including hashing, are covered in detail. Recursion, which was introduced in the previous course, is analyzed rigorously. The Standard Template Library is discussed in reference to each data structure and algorithm covered in the course. Software development is explored in the contexts of event-driven programming and video game programming. A large scale project requiring significant planning, collaboration, and documentation is required.