COP 3530 Data Structures and Algorithms

Orientation

About this course

Catalog Course Description

  • Data structure design, implementation, application, and analysis are explored. Abstract data types (ADTs) are introduced and use of interfaces is emphasized. Topics include stacks, queues, linked lists, trees, and graphs. Recursion is revisited, functions as data is considered, and computational complexity of searching and sorting algorithms are explored.

  • Prerequisite(s)

    • COP 3003 Object Oriented Programming with minimum grade of C

    • MAD 3107 Discrete Math with minimum grade of C

      • Introduction to concepts of discrete mathematics, as as used by computer scientists. Topics include symbolic logic and Boolean algebra, propositional and predicate calculus, sets, functions, and relations, enumeration and counting principles, introduction to graphs, trees, spanning trees, shortest path and matching algorithms, finite state automata, Turing machines.

        • Prerequisite(s) MAC 2312 for level Undergraduate with minimum grade of C

Course Learning Outcomes (SLOs)

  • At the completion of the course, students will be able to:

    • 1. Be able to implement and apply basic data structures: linked-lists, stacks, queues, and trees.

    • 2. Be able to use recursion to solve problems.

    • 3. Understand different searching and sorting algorithms: tree searching, heap sort, quick sort, etc.

    • 4. Understand the big-oh notation.

    • 5. Be able to compare different searching and sorting algorithms using the big-oh notation.

Design Influence

Course Overview / Student Expectations

  • Attend every class meeting

  • Contact me for assistance / clarification

  • Productively spend 2-3 hours on classwork outside of class (6-9 / week) for every hour in class (3 / week).

    • Workload / sample schedule for most weeks:

      • Learn. Engage with topic resources, take notes in OneNote, answer Lesson questions (3 hours, similar to traditional class meeting time)

        • Generally, lesson questions come straight from the resources and do not require higher order thinking, they are primarily to ensure you caught the most important concepts and have a foundation to complete the exercises and labs

      • Apply. Complete exercises, reaching out for assistance if needed (4-6 hours)

      • Synthesize. Complete labs and other assignments (2-3 hours)

    • If you cannot dedicate at least 6 hours outside of class on this course per week, do not expect to do very well.

    • If you are able to meet the requirements for assignments in less time, challenge yourself and go above and beyond. There will be varying levels of experience and ability in the class. Your goal should be improvement.

    • If you find that you need more than 9 hours per week outside of class to understand and complete assignments you probably need a different approach. Please speak to the professor and / or instructional support.

  • There will be a cumulative final exam